一、工作模式
1、被动模式
由zabbix server向zabbix agent发出指令获取数据,即zabbix agent被动的去获取数据并返回给zabbix server,zabbix server周期性的向agent 索取数据,这种模式的最大问题就是会加大zabbix server的工作量,在数百台服务器的环境下zabbix server不能及时获取到最新数据,但这也是默认的工作方式。
2、主动模式
zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix serve进行干预,因此主动模式在一定程度上可减轻zabbix server的压力。
创建一个主动模式的模板
(1)创建新模板
(2)修改配置
二、proxy
zabbix是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后把收集保存在本地数据库并发送给zabbixserver进行统一存储和展示。
部署主动模式proxy
1、部署proxy端
(1)修改yum源
wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3%2Bfocal_all.deb
dpkg -i zabbix-release_4.0-3+focal_all.deb
apt update
(2)安装zabbix-proxy
apt install zabbix-proxy-mysql
(3)数据库初始化(主动模式)
create database zabbix_proxy_active character set utf8 collate utf8_bin;
create user zabbix_proxy_active@"192.168.43.%" identified by '123456';
grant all privileges on zabbix_proxy_active.* to zabbix_proxy_active@"192.168.43.%";
(4)数据库导入数据
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix_proxy_active -h192.168.43.108 -p zabbix_proxy_active
(5)修改proxy配置文件
vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #主动模式为0,被动模式为1,默认为0
Server=192.168.43.108 #zabbix-server的IP地址
ServerPort=10051 #zabbix-server监听的端口
Hostname=zabbix_proxy_active #本机的hostname,需要与web端的相同
ListenPort=10051 #监听端口
LogType=file
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0 #日志文件最大大小,0为关闭
EnableRemoteCommands=1 #允许远程主机在本机执行命令
LogRemoteCommands=0 #远程主机执行命令是否记录日志
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBHost=192.168.43.108 #数据库的地址
DBName=zabbix_proxy_active
DBUser=zabbix_proxy_active
DBPassword=123456
ProxyLocalBuffer=720 #数据传输给server还保存的时间,单位为小时,建议设置720
ProxyOfflineBuffer=720 #连接不上server,数据在proxy保存的时间,单位为小时,建议设置720
HeartbeatFrequency=120 #与server的心跳检测时间,单位为秒
ConfigFrequency=60 #从server端抓取配置文件的时间间隔,单位为秒,可以设置为5分钟
DataSenderFrequency=60 #给server端发送数据的间隔时间,单位为秒,可以设置为5分钟
StartPollers=20 #数据收集开启的线程
JavaGateway=192.168.43.109
JavaGatewayPort=10052
StartJavaPollers=20
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0
CacheSize=8M #监控项获取后会放在内存中,尽量大点
StartDBSyncers=10 #预先启动进程给数据库
HistoryCacheSize=16M #主动采集好的数据会先放到内存中,内存的大小
HistoryIndexCacheSize=4M #采集好数据的索引
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
AllowRoot=0
User=zabbix
(6)启动程序并设置为开机自启
systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service
2、部署zabbix-agent(centos系统)
(1)安装yum源
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all
(2)安装zabbix-agent
yum install zabbix-agent
(3)修改配置文件
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.43.108,192.168.43.109 #服务端要添加server和proxy,添加server端是因为agent模板是被动模式
ListenPort=10050
ServerActive=192.168.43.109 #proxy端的地址
Hostname=192.168.43.101
Include=/etc/zabbix/zabbix_agentd.d/*.conf
(4)启动程序,并设置为开机自启
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
3、web端配置
(1)创建代理程序
代理程序的名称要与配置文件中的hostname相同
(2)添加主机
(3)添加模板(模板是上文新建的)
部署被动模式proxy
1、部署proxy
部署方式和上文相同
(1)数据库初始化(被动模式)
create database zabbix_proxy_passive character set utf8 collate utf8_bin;
create user zabbix_proxy_passive@"192.168.43.%" identified by '123456';
grant all privileges on zabbix_proxy_passive.* to zabbix_proxy_passive@"192.168.43.%";
(2)数据库数据导入
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix_proxy_passive -h192.168.43.108 -p zabbix_proxy_passive
(3)修改proxy配置文件
vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=1
Server=192.168.43.108
ServerPort=10051
Hostname=zabbix_proxy_passive
ListenPort=10051
LogType=file
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1
LogRemoteCommands=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBHost=192.168.43.108
DBName=zabbix_proxy_passive
DBUser=zabbix_proxy_passive
DBPassword=123456
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=120
ConfigFrequency=60
DataSenderFrequency=60
StartPollers=20
JavaGateway=192.168.43.109
JavaGatewayPort=10052
StartJavaPollers=20
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0
CacheSize=8M
StartDBSyncers=10
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
AllowRoot=0
User=zabbix
(4)启动程序并实现开机自启
systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service
2、部署zabbix-agent
部署方式和上文相同
(1)修改配置文件
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.43.108,192.168.43.110
ServerActive=127.0.0.1
Hostname=192.168.43.102
Include=/etc/zabbix/zabbix_agentd.d/*.conf
(2)启动程序并开机自启
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
3、web端配置
(1)创建代理程序
(2)创建主机