1.Zabbix简介及安装-上
内存利用率
CPU利用牢
磁盘利用率
网卡利用率
1.4.2.1:数据采集:周期性时序数据
主机/对象:服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象...
采集目标:监控项,指标数据(metrics data)
1.4.2.2:数据存储:
监控数据存储系统
SQL: MySQL/MariaDB(zabbix)
NosQL: Redis(open-falcon)
rrd: Round Robin Database(Cacti)
1.4.2.3:数据类型:
历史数据:每个监控项采集到的每个监控值
趋势数据:趋势表里主要保留某个监控项一个小时内历史数据的最大信、最小值和平均信以及该监控项一个小时内所采集到的数据个数。
1.4.2.4:阔值:
可按照预定义的阅值等级实现分层报警
1.4.2.5:告警机制;
ernail,短信,微信,语音.故障自治愈
1.4.3: zabbix核心任务:
1.4.1︰数据采集:
数据采集方式: zabblx-server,zabbix-proxy,zabbix-agent
Agentless: SNMP,Teinet,ssh,IPMI,JMX,Agent: zabbix agent
1.4.2∶数据存储:
zabbix database
1.4.3:数据展示:
zabbix web:
graph -> screen -> slideshow[将多个screen以幻灯片的方式进行轮治展示)
grafana:
以zabbix为数据源展示更绚丽的界面
1.4.4∶告警通知:
hast ( host groups ) <- templates #从模板继承告警配置
host -> items -o triggers -> action(条件-conditions,操作-operations)#白定义告警配置
172.31.7.31 zabbix-server 172.31.7.32 proxy-active 172.31.7.33 proxy-passive
172.31.7.34 mysql-master
172.31.7.32 proxy-active
--------------------------
install zabbix repository
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
安装Zabbix server,Web前端,agent
# apt-get -y install zabbix-server-mysql zabbix-frontend-php zabbix-agent
172.31.7.34 mysql-master
-------------------------
在mysql maser安装数据库并授权zabbix使用
# apt-get install -y mysql-server mysql-client #或者安装mariadb-server mariadb-client
# vim /etc/mysql/mysql.conf.d/mysqld.cnf #修改监听地址
bind-address = 0.0.0.0
# systemctl restart mysql
# mysql #进入数据库创建账户并授权
mysql> create database zabbixtest character set utf8 collate utf8_bin;
mysql> create user zabbix@"172.31.7.%" identified by '1';
mysql> grant all privileges on zabbixtest.* to zabbix@"172.31.7.%";
172.31.7.32 proxy-active
===========================
安装mysql-client
# apt-get install -y mysql-client
远程连接mysql数据库
# mysql -uzabbix -p1 -h172.31.7.34
修改zabbix主配置文件
# vim /etc/zabbix/zabbix_server.conf
ListenPort=10051
DBHost=172.31.7.34
DBName=zabbixtest
DBPassword=1
启动zabbix服务
# systemctl restart zabbix-server.service
查看zabbix-server端口开启状态
# ss -ntl
LISTEN 0 128 [::]:10050
# lsof -i:10050
初始化数据库
导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -h172.31.7.34 -p1 zabbixtest #连接到自己远程主机的账号与数据库上
重新启动服务
# systemctl restart zabbix-server.service
修改php时区
# vim /etc/zabbix/apache.conf
<IfModule mod_php7.c> #此处改动的php7时区
php_value date.timezone Asia/Shanghai
重新启动
# systemctl restart zabbix-server zabbix-agent apache2
172.31.7.34 mysql-master
--------------------------
查看生成的表数据
mysql> use zabbixtest;
mysql> show tables;
访问:
172.31.7.32/zabbix
数据库主机 172.31.7.34
数据库端口 3306 0-使用默认端口
数据库名称 zabbixtest
用户 zabbix
密码 1
Host 172.31.7.32
Port 10051
Name Zabbix Server zhgedu
修改前端配置
172.31.7.32
# vim /usr/share/zabbix/conf/zabbix.conf.php
登陆Zabbix
Username
Admin
Password
zabbix
创建成功
2.Zabbix简介及安装-下
编译安装zabbix:
编译安装zabbix server与agent
下载源码包
https://jaist.dl.sourceforge.net/progect/zabbix/ZABBIX%20Latest%20table #下载地址
# pwd
# groupadd -g 1001 zabbix #创建zabbix用户和组
# useradd -u 1001 -g 1001 zabbix
# useradd -u 1001 -g 1001 zabbix #验证用户id
Ubuntu1804
===========
172.31.7.31
------------
apt-get install -y apache2 apache2-bin apache2-data apache2-utils fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapache2-mod-php7.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors4 libsnmp-base libsnmp30 libsodium23 libssh2-1 libtiff5 libwebp6 libxpm4 php-bcmath php-common php-gd php-ldap php-mbstring php-mysql php-xml php7.2-bcmath php7.2-cli php7.2-common php7.2-gd php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml snmpd ssl-cert ttf-dejavu-core libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev openjdk-8-jdk curl libcurl4-openssl-dev
install base 命令
# apt-get install -y iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute
gcc openssh-server lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip
解压源码包
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\zabbix-4.0.30 .tar.gz
# cd /usr/local/src
# tar xvf zabbix-4.0.30_.tar.gz
Compile install Zabbix:
# cd zabbix-4.0.30/
# ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java;
# make && make install
172.31.7.34 mysql-master
-----------------------------
创建新的数据库
mysql> create database zabbix_server character set utf8 collate utf8_bin;
授权
mysql> grant all privileges on zabbix_server.* to zabbix@"172.31.7.%" identified by '1';
刷新一下权限
mysql> flush privileges;
登录数据库
# mysql -uzabbix -p1 -h172.31.7.34
172.31.7.31 zabbix-server
----------------------------
修改zabbix配置文件
# vim /apps/zabbix_server/etc/zabbix_server.conf
DBHost=172.31.7.34
DBName=zabbix_server
DBPassword=1
初始化数据库
创建zabbix proxy与zabbix server服务
# apt-get install -y mysql-client
安装zabbix proxy服务所需要的数据
# cd /usr/local/src/zabbix-4.0.30/database/mysql
# mysql -uzabbix -p1 -h172.31.7.34 zabbix_server < schema.sql
安装zabbix server服务所需的数据
# mysql -uzabbix -p1 -h172.31.7.34 zabbix_server < images.sql
# mysql -uzabbix -p1 -h172.31.7.34 zabbix_server < data.sql
创建普通用户
# useradd zabbix
编辑zabbix server启动配置文件:
# vim /lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadb.service
[Service]
Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_server.conf" #修改配置文件位置
EnvironmentFile=-/etc/default/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/apps/zabbix_server/run/zabbix_server.pid #修改pid文件位置
KillMode=control-group
ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE #修改配置文件位置
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
修改zabbix配置文件
# vim /apps/zabbix_server/etc/zabbix_server.conf
PidFile=/apps/zabbix_server/run/zabbix_server.pid #pid文件不配置起不来
AllowRoot=1
User=root
创建存放pid的目录
# mkdir /apps/zabbix_server/run -p
启动zabbix服务
# systemctl daemon-reload
# systemctl restart zabbix-server
或者
直接启动,监听在10051,后期重启杀进程
# /apps/zabbix_server/sbin/zabbix_server -c /apps/zabbix_server/etc/zabbix_server.conf
配置web界面
拷贝web界面程序
# mkdir /var/www/html/zabbix
# cd /usr/local/src/zabbix-4.0.30/frontends/php
# cp -a . /var/www/html/zabbix/ #拷贝php文件到apache-web目录中
# systemctl restart apache2
访问172.31.7.31/zabbix页面
编译安装zabbix-php检查失败
修改php配置文件
# vim /etc/php/7.2/apache2/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
重启apache
# systemctl restart apache2
数据库类型 的MySQL
数据库主机 172.31.7.34
数据库端口 3306 0-使用默认端口
数据库名称 zabbix_server
用户 zabbix
密码 1
主持人 172.31.7.31
港口 10051
Name Zabbix Server
# cd /var/www/html/zabbix/conf/
上传此文件
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\var\www\html\zabbix\conf\ zabbix.conf.php
刷新页面
登录
Admin
zabbix
172.31.7.31
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\lib\systemd\system
配置agent启动文件
# vim /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/apps/zabbix_server/run/zabbix_server.pid
KillMode=control-group
ExecStart=/apps/zabbix_server/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
启动zabbix-agent服务
# systemctl restart zabbix-agent
查看zabbix-agent是否存活 10051
ubuntu系统安装中文语言环境:
172.31.7.31
安装并设置中文简体语言环境
# sudo apt-get install language-pack-zh*
添加中文语言环境变量
# sudo vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
LANG="zh CN.UTF-8"
重新设置环境变量
# sudo dpkg-reconfigure locales
按空格选中
按回车
配置成功
重启服务
# systemctl restart apache2
设置中文
设置中文字体防止乱码
C:\Windows\Fonts
上传字体zabbix web 目录:
将windows字体文件上传至zabbix web目录,具体路径为/ZABIX/WEB/PATH/assets/fonts/,如下:
# pwd
# cd /var/www/html/zabbix/assets/fonts #上传楷体字体文件到这里
# chown zabbix.zabbix ./* #更改权限为zabbix用户和组
修改zabbix文件调用新字体:
# pwd
# cd /var/www/html/zabbix
# vim include/defines.inc.php
72 define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file n ame
113 define('ZBX_FONT_NAME', 'simkai');
2.5.2.4:验证字体是否生效:
通常不需要重启zabblx及apache,修改后的字体文件即可直接生效。
3.Zabbix配置 文件详解
# vim /apps/zabbix_server/etc/zabbix_server.conf
ListenPort=10051 #zabbix-server监听端口
LogFile=/apps/zabbix_server/logs/zabbix_server.log #修改zbbix-server的服务日志文件位置 mkdir
/apps/zabbix_server/logs -p
LogFileSize=500 #指定日志滚动写入大小,当达到指定大小时,会删除就日志重新从头写入新日志,500M
DebugLevel=3 #指定日志级别,数字越大的越详细
PidFile=/apps/zabbix_server/run/zabbix_server.pid
SocketDir=/apps/zabbix_server/run/ #用于本机通讯的socket文件
DBHost=172.31.7.34
DBName=zabbix_server
DBUser=zabbix
DBPassword=1
StartPollers=8 #预启动多少个实例数量
StartPreprocessors=3 #预启动工作进程数,预启动多少个进程用于处理zabbix agent数据
StartPollersUnreachable=2 #不可达主机的轮询进程的初始实例启动数量
StartTrappers=5 #预启动的Trappers进程数据,作为数据异常的报警
StartPingers=5 #ICMP ping进程的初始实例数量,zabbix通过ping检测网络设备的可用性,预启动多少个进行去监控它们的状态
StartDiscoverers=3 #预启动多少个工作进程经行主动发现,让zabbix自动添加zabbix-agent,一般不用。资源消耗比较多,每隔一段时间扫描一下各网段主机是否存活,消耗zabbix-server的cpu性能
StartHTTPPollers=3 #预启动多少http进程来响应web请求,一个进程可以处理多个web请求的
StartTimers=3 #计时器实例数量,计时器用于计算问题的发生时间和步骤同步等,记录每个事件所产生的时间,以及到时间产生报警的操作
SNMPTrapperFile=/apps/zabbix_server/run/zabbix_traps.tmp #spmp触发器临时文件路径
StartSNMPTrapper=1 #SNMP触发器预启动数量,agent发送的信息是否超过设定的进程数量,超过了就触发报警,1为开启状态
HousekeepingFrequency=24 #多少小时清理次代理端数据库的 history数据,24小时
MaxHousekeeperDelete=1000000 #每次最多删除历史数据的行数
CacheUpdateFrequency=60 #Zabbix更新缓存 数据的频率,单位为秒,范围是1-3600
StartDBSyncers=6 #预启动多少进程与Zabbix同步数据
HistoryCacheSize=126M #当在Zabbix读取数据时,就会先把数据放到缓存里面.对Zabbix进行性能提升,公司一般都在1-2G
HistoryIndexCacheSize=32M #历史数据索引缓存的大小
TrendCacheSize=16M #用于设置划分多少系统共享内存用于存储计算出来的趋势数据,此参数值从一定程度上可影响数据库读压力,范围是128K 2G
ValueCacheSize=16M #历史值缓存的大小,用于缓存历史数据请求的共享内存大小。
Timeout=30 #数据获取等待超时时间,获取一个agent监控项,最长多常时间没有返回数据就认为agent挂了,连接超时
UnavailableDelay=60 #当主机不可用了,多久检查一次该主机的可用性,单位为秒,范围是1.3600
Fping6Location=/usr/bin/fping #fping可以ping出网络状态,alive与unreachable两种状态
TmpDir=/apps/zabbix_server/run/ #把临时的数据放在指定的目录里面
StartProxyPollers=3 #启用多少子进程与代理端通信,若代理较多可考虑加大此数值,范围是0-250
ProxyConfigFrequency=60 #proxy被动模式下,server多少秒同步配置文件至proxy,该参数仅用于被动模式下的代理,范围是1-3600*24*7
ProxyDataFrequency=60 #被动模式下,zabbix server间隔多少秒向proxy请求历史数据
AllowRoot=1 #允许root使用
User=root #指定zabbix使用用户
# mkdir /apps/zabbix_server/logs -p
# systemctl restart zabbix-server.service
通过消息队列的状态查看哪个服务的接收信息比较慢, 所有为0为正常,当右队列在等待,肯定是有某个地方出现问题
4.linux系统和tomcat监控
zabbix-agent允许访问的地址
-s 主机地址,获取那个主机的数据
-k 监控项的名称
# /apps/zabbix_server/bin/zabbix_get -s 127.0.0.1 -p 10050 -k "agent.ping"
1 #返回值为1表示正常
修改agent配置文件
# vim /apps/zabbix_server/etc/zabbix_agentd.conf
94 Server=0.0.0.0,127.0.0.1,172.31.7.31 #允许任何一个主机获取数据
135 ServerActive=172.31.7.31
重启服务
# systemctl restart zabbix-agent.service
测试访问结果
# /apps/zabbix_server/bin/zabbix_get -s 172.31.7.31 -p 10050 -k "agent.ping"
1
三:Zabbix监控入门基础:
学习通过aptlyum安装zabbix agent、对tomcat进行监控。
3.1:监控linux系统:
在其他linux服务器安装zabbix agent,然后添加到zabbix server以对其进行资源监控.
3.1.1: zabbix agent安装:
172.31.7.35 web1
--------------------------
install zabbix repository
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
# apt-get install zabbix-agent
配置zabbix-agent配置文件
# vim /etc/zabbix/zabbix_agentd.conf
Server=172.31.7.31 #指向当前zabbix server
ListenPort=10050 #监听端口
ListenIP=0.0.0.0 #监听地址
StartAgents=3 #预启动多少个进程收集本机的数据,#被动状态时默认启动的实例数(进程数),为8不监听任何端口
Hostname=172.31.7.35 #区分大小写且在zabbix server唯一的值,本机地址
启动服务
# systemctl restart zabbix-agent.service
# systemctl enable zabbix-agent.service
查看开启端口
# ss -ntl
LISTEN 0 128 0.0.0.0:10050
zabbix web界面添加被监控主机:
在zabbix web管理界面添加上一步安装了zabbix agent的linux主机。
# grep -Ev '^#|^$' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.31.7.31
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=127.0.0.1
Hostname=172.31.7.35
Include=/etc/zabbix/zabbix_agentd.d/*.conf
配置主机
主机名称 172.31.7.35
可见的名称 172.31.7.35-web1
群组 zhgedu, 选择了 zhgedu (新)
agent代理程序的接口
IP地址 DNS名称 连接到 端口 默认
172.31.7.35 IP地址DNS 10050 移除
由agent代理程序监测 (无agent代理程序)
已启用
添加 取消 #设置完模板在添加
设置模板
被动监控: 查看监控项 ,在被监控的主机上装agent,在配置文件中改参数
监控tomcat:
学习如何通过java gateway实现对tomcat的指标进行数据采集和图形展示,如堆栈内存利用率、当前会话连接数、繁忙线程等。
准备JDK环境
# cd /usr/local/src
# tar xf jdk-8u221-linux-x64.tar.gz
# apt-get install openjdk-8-jdk -y
创建目录
# mkdir /apps && cd /apps
上传tomcat包
# cd /apps
D:\百度同步文件夹\tar-xvf解包tar-cvf打包\apache-tomcat-8.5.65.tar.gz
进入解压文件,并修改脚本
# vim /apps/apache-tomcat-8.5.65/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote #启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #不使用ss1认证
-Djava.rmi.server.hostname=172.31.7.35" #tomcat主机自己的IP地址,不要写zabbix服务器的地址
开启tomcat
# /apps/apache-tomcat-8.5.65/bin/catalina.sh start
查看端口开启状态
# ss -ntl
LISTEN0 128 0.0.0.0:10050
LISTEN0 100 *:8080
LISTEN0 50 *:12345
java的客户端
172.31.7.31
------------
启动java gataway
查看java gateway参数
# pwd
/usr/local/src/zabbix-4.0.30
# ./configure --help | grep java
--enable-java Turn on build of Zabbix Java gateway
配置java gataway地址
# cd /apps/zabbix_server/sbin/zabbix_java
# vim settings.sh
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=5 #启动多少个线程监控
TIMEOUT=30 #超时时间
启动java gataway服务
# /apps/zabbix_server/sbin/zabbix_java/startup.sh start
查看端口是否开启
# ss -ntl
LISTEN 0 50 *:10052
修改zabbix-server配置文件
# vim /apps/zabbix_server/etc/zabbix_server.conf
282 JavaGateway=172.31.7.31
290 JavaGatewayPort=10052
298 StartJavaPollers=5 #启动5个进程
重启服务
# systemctl restart zabbix-server.service
配置Java监控
3.2.15: Linux测试监控JMX方式:
使用java客户端cmdline-jmxclient进行测试
测试能否获取到java当前线程数和最大线程数:
172.31.7.35:12345 #指定连接哪个服务器哪个端口进行监控
type=ThreadPool' #指定监控项
currenThreadCount #当前线程数统计
# java -jar cmdline-jmxclient-0.10.3.jar - 172.31.7.35:12345 'Catalina:name="http-nio-8080",type=ThreadPool' currenThreadCount
导入监控项模板
选择文件 D:\和彩云同步文件夹\Service optimization file\Zabbix\tomcat-template-magedu-jiege.xml
规则
更新现有的 创建新的 删除失败
群组
主机
模板
模板聚合图形
模板间的关联
应用集
监控项
自动发现规则
触发器
图形
Web 场景
导入 #上面参数保持默认
更换模板
查看最新数据
5.zabbix主动模式和被动模式简介及实现
3.3: zabbix主动与被动监控模式:
zabbix-agent主动给zabbix-server数据信息
学习主动模式与被动模式工作原理,主动模式模板制作,然后添加主机并关联主动模式模板,然后验证主动模式监控数据和图形。
3.3.1:被动模式:
zabbix agent用的是时候被调用,获取数据慢,被动zabbix-server需要打开很多随机端口
无论是模式还是被动模式,都是站在zabbix agent角度来说的工作模式,比如被动模式,是说zabix agent被动的接受zabbix server周期性发送过来的数据收集指令,在被动模式之下,zabbix server会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向zabbix agent服务器的10050发起tcp连接,然后发送获取监控项数据的指令,即zabbix server发送什么指令那么zabbix agent就收集什么数据,zabbix server什么时候发送zabblx agent就什么时候采集,zabbix server不发送zabbix agent就一直不响应,所以zabbix agent也不用关心其监控项和数据采集周期问阳时问
被动模式的优点就是配置,安装后即可使用,因此也成为zabbix的默认工作模式,但是被动模式的最大问题就是会加大zabbix server的工作量,在数百甚至数千台服务器的环境下会导致zabbix server需要轮训向每个zabblx agent发送数据采集指令,如果zabbix server负载很高还会导致不能及时获取到最新数据,但由于无需其他复杂配置,被设置为了默认的工作方式。
3.3.1.1:被动模式端口状态:
# netstat -tanlp 查看tcp连接
tcp6 0 0 172.31.7.31:41022 172.31.7.35:41329 TIME_WAIT -
tcp6 0 0 172.31.7.31:41014 172.31.7.35:41329 TIME_WAIT -
tcp6 0 0 172.31.7.31:40966 172.31.7.35:41329 TIME_WAIT -
tcp6 0 0 172.31.7.31:60760 172.31.7.35:12345
被动模式工作流程
3.3.2:主动模式:
zabbix agent主动向zabbix server发起连接
主动模式是由zabbix agent主动向zabbix server的10051端口发起tcp连接请求,因此主动模式下必须在zabbix agent配置文件中指定zabbixserver的IP或者主机名(必须可以被解析为IP地址),在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,然后在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给zabbix
server,在主动模式下不再需要zabblx serve向7abbix agent发起连接请求,因此主动模式在一定程度上可减轻zabblx server打开的本地随机端口和进程数,在一定程度就减轻看zabbix server的压力。
主动模式工作流程
# grep -Ev '^#|^$' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.31.7.31
ServerActive=172.31.7.31
Hostname=172.31.7.36
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf
172.31.7.36 zabbix-web2-7-36
==============================
# apt-get update
上传db源包
D:\和彩云同步文件夹\Service optimization file\Zabbix\172.31.7.36-web2\zabbix-release_4.0-3+bionic_all.deb
安装zabbix-db包
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
下载zabbix-agent服务
# apt install -y zabbix-agent
# vim /etc/zabbix/zabbix_agentd.conf
Server=172.31.7.31
ServerActive=172.31.7.31 #zabbix-agent会向这个地址发起连接
Hostname=172.31.7.36
Timeout=30 #连接超时时间
启动服务
# systemctl restart zabbix-agent.service
查看启动结果
# ss -ntl
LISTEN0 128 [::]:10050
没有模板,使用官方模板进行监控
修改其监控项
再把修改好的监控项,添加到特定主机上去
添加特定主机
注意:不能点全克隆,不然会把35主机的数据一起克隆给36主机
自动发现主机设置时长
监控项原型
文件系统
网络
6.zabbix proxy简介及安装 配置
如果公司的服务器数量不是很多,可以采用zabbix server+主动模式,否则就使用zabbix server +主动模式+ proxy!
zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy 可以代替zabbix server收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担了zabbix server的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。
另外zabblkx proxy也区分主动模式和被动模式,通信方式与zabblx server主动模式和被动模式一样,区别足zabblx proxy由于没有zabblix agent的配置,所以zabblx proxy在主动模式下要向zabblx server周期性的向zablx server申请获取zabblix agent的监控项信息,但是zabblx proxy在被动模式下也是等待zabbix server的连接并接受zabbix server发送的监控项指令,然后再有zabbix proxy向zabbix agent发起请求获取数据。
4.2:zabbix proxy对比zbbbix server:
三=
功能 zabbxy proxy zabbix server
轻量级 是 相对重量级
图形 无 带图形控制界面
可以独立工作 是,可以独立采集数据并存储 是,即数据采集、存储、分析、展示于一体
易维护 是,配置完成后基本无需管理 维护也不难
独立数据库 保留少量最近数据 保留指定时间内的所有数据
报警通知 否,代理服务器不发送邮件通知 支持邮件、短信等告警机制
4.3: zabbix proxy部署与使用:
学zabbix proxy工作原理
安装主动模式与被动模式的zabbix proxy服务器配置
zabbix agent工作模式为主动模式与被动模式
4.3.1: zabbix proxy版本选择:
zabblx proxy的大版本必须要和zabbix server版本一致,否则会导致出现zabbix server与zabbix proxy不兼容问题,如下:
4.3.2: zabbix proxy安装:
zabbix的不同安装方式
zabbix server 172.31.7.31
zabbix proxy-active 主动模式: 172.31.7.32 #采用apt或者yum安装
zabbix proxy-passive 被动模式: 172.31.7.33 #采用编译安装
zabbix agent 主动 172.31.7.36 使用: 172.31.7.32收集数据
zabbix agent 被动 172.31.7.35 使用: 172.31.7.33收集数据
4.3.2.1: apt/yum安装zabbix proxy:
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
#安装zabbix proxy
# yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb
mariadb-devel java-1.8.0-openjdk-devel -y
# apt install libmysqld-dev libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev curl libcurl4-openssl-dev
# apt install zabbix-proxy-mysql
172.31.7.34-zabbix-proxy数据库
-----------------------------
创建zabbix proxy数据库
mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy_active.* to proxy@'172.31.7.%' identified by '1';
mysql> create database zabbix_proxy_passive character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy_passive.* to proxy@'172.31.7.%' identified by '1';
172.31.7.32-zabbix-proxy-acitve 主动模式
-----------------------------------------
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
# apt-get install zabbix-proxy-mysql zabbix-agent -y
172.31.7.22-zabbix-proxy-passive 主动模式
-------------------------------------------
# vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 # 0为主动,1为被动
Server=172.31.7.31 # zabbix server服务器的地址或主机名
ServerPort=10051 # zabbix server服务器的端口
Hostname=zhgedu-proxy-active #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
ListenPort=10051 # zabbix proxy监听端口
DBHost=172.31.7.34 #使用的数据库名称
DBName=zabbix_proxy_active #连接致据库的用户名称
DBUser=proxy
DBPassword=1
ProxyLocalBuffer=720 #数据至少在zabbix-proxy保存多少个小时
ProxyOfflineBuffer=720 #zabbix-proxy连不上server了,保存的数据期限
HeartbeatFrequency=60 #心跳间隔检测时间,默认68秒,范围G-36a8秒,被动模式不使用,检测server是否存活
ConfigFrequency=60 #间隔多少秒从zabbix server获取监控项信息
DataSenderFrequency=60 #在主动模式下每间隔多长时间向zabbix-server同步一次数据
StartPollers=7 #启动多少个进程来采集数据
StartPollersUnreachable=5 #预启动多少个实例监控不可达主机
StartTrappers=5 #触发器打开的个数
StartPingers=3 #采集的交换机路由器的信息比较多的时候要开多点
JavaGateway=172.31.7.32 #使用java-gateway来获取tomcat的数据
JavaGatewayPort=10052
StartJavaPollers=5 #启动多少的工作线程来采集数据
ListenIP=0.0.0.0 #默认监听地址为0.0.0.0
HousekeepingFrequency=1 #每隔多长时间清理一次数据
CacheSize=16M #缓存大小
StartDBSyncers=4 #启动多少个与数据库同步的进程
HistoryCacheSize=16M #历史缓存大小
Timeout=30
查看添加数据库结果
# mysql -uproxy -p1 -h172.31.7.34
MySQL [(none)]> show databases;
| zabbix_proxy_active
| zabbix_proxy_passive
让zabbix在java-gateway上面获取数据
zabbix server ---> zabbix proxy-active ----> java gateway ---> tomccat
# apt-get install zabbix-java-gateway
修改zabbix_java_gateway的配置文件
# vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=10
TIMEOUT=30
启动java gateway服务
# systemctl restart zabbix-java-gateway.service
查看监听端口信息
# ss -ntl
LISTEN 0 50 *:10052
检查配置文件
# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf
ProxyMode=0
Server=172.31.7.31
ServerPort=10051
Hostname=zhgedu-proxy-active
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=172.31.7.34
DBName=zabbix_proxy_active
DBUser=proxy
DBPassword=1
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=60
ConfigFrequency=60
DataSenderFrequency=60
StartPollers=6
StartPollersUnreachable=3
StartTrappers=5
StartPingers=3
JavaGateway=172.31.7.32
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0
HousekeepingFrequency=1
CacheSize=8M
StartDBSyncers=4
HistoryCacheSize=16M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
导入数据库表 主动模式做代理
# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uproxy -p1 -h172.31.7.34 zabbix_proxy_active
启动zabbix-proxy服务
# systemctl restart zabbix-proxy.service
# systemctl enable zabbix-proxy.service
172.31.7.33-proxy-passive
--------------------------
D:\和彩云同步文件夹\Service optimization file\Zabbix\zabbix-server-7.31\zabbix-release_4.0-3+bionic_all.deb
# dpkg -i zabbix-release_4.0-3+bionic_all.deb
# apt-get update
# apt-get install zabbix-proxy-mysql zabbix-agent -y
修改配置文件
# vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=1
Server=172.31.7.31
Hostname=zhgedu-proxy-passive #添加被动模式
ListenPort=10051
DBHost=172.31.7.34 #添加数据库信息
DBName=zabbix_proxy_passive #设置数据库名称
DBUser=proxy
DBPassword=1
ProxyLocalBuffer=720 #数据至少在zabbix-proxy保存多少个小时
ProxyOfflineBuffer=720 #zabbix-proxy连不上server了,保存的数据期限
# HeartbeatFrequency=60 #心跳间隔检测时间,默认68秒,范围G-36a8秒,被动模式不使用,检测是否存活
ConfigFrequency=60 #间隔多少秒从zabbix server获取监控项信息
DataSenderFrequency=60 #在主动模式下每间隔多长时间向zabbix-server同步一次数据 ,被动模式不生效
StartPollers=7 #启动多少个线程来采集数据
StartPollersUnreachable=5 #预启动多少个实例监控不可达主机
StartTrappers=5 #触发器打开的个数
StartPingers=3 #采集的交换机路由器的信息比较多的时候要开多点
JavaGateway=172.31.7.32 #都咋32的机器上采集tomcat的数据
JavaGatewayPort=10052
StartJavaPollers=0
StartJavaPollers=5 #启动多少的工作线程来采集数据
ListenIP=0.0.0.0 #默认监听地址为0.0.0.0
HousekeepingFrequency=1 #每隔多长时间清理一次数据
CacheSize=16M #缓存大小
StartDBSyncers=4 #启动多少个与数据库同步的进程
HistoryCacheSize=16M #历史缓存大小
Timeout=30 #监控项超时时间,单位为秒
查看是否关联数据库
# mysql -uproxy -p1 -h172.31.7.34
MySQL [(none)]> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| zabbix_proxy_active |
| zabbix_proxy_pasive |
+---------------------+
3 rows in set (0.00 sec)
删除多余的数据库
mysql> drop database zabbix_proxy_pasive;
导入数据库表 被动模式做代理
# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uproxy -p1 -h172.31.7.34 zabbix_proxy_passive
启动zabbix-proxy服务
systemctl restart zabbix-proxy.service
systemctl enable zabbix-proxy.service
7.zabbix proxy主动及被动案例
设置主动模式监控
设置被动模式监控
172.31.7.35-web1
-----------------
修改配置文件,增加允许zabbix-proxy-passive-172.31.7.33收集数据
# vim /etc/zabbix/zabbix_agentd.conf
Server=172.31.7.31,172.31.7.33
启动配置文件
# systemctl restart zabbix-agent.service
172.31.7.36-web2
----------------
修改配置文件,增加允许zabbix-proxy-active-172.31.7.32收集数据
# vim /etc/zabbix/zabbix_agentd.conf
Server=172.31.7.31,172.31.7.32
ServerActive=172.31.7.32
启动配置文件
# systemctl restart zabbix-agent.service
测试联通性
172.31.7.31-zabbix-server
# history | grep get
# /apps/zabbix_server/bin/zabbix_get -s 172.31.7.36 -p 10050 -k "agent.ping"
1 #1表示联通没问题
设置账号权限
创建用户组
添加用户
给用户授权
登录zhangxiaoming 账号
允许设置账号执行命令
172.31.7.33-zabbix-proxy-passive
--------------------------------
# vim
EnableRemoteCommands=1 #1为允许
重启服务
# systemctl restart zabbix-proxy.service
测试执行ping命令
标签:59,zabbix,agent,server,Zabbix,proxy,mysql,172.31
From: https://www.cnblogs.com/zikang/p/18060645