Zabbix agent检测分为两种模式:主动模式和被动模式
被动模式,也是默认的Zabbix监控模式,被动模式是相对于proxy来说的。proxy主动发送数据就是主动模式,proxy等待server的请求再发送数据就是被动模式。主动模式有个好处就是可以有效减轻Zabbix server的压力,当我们监控数以百计的主机时,由于Zabbix压力过大,所以server存在不能及时获取到最新数据的问题,这时将监控模式改为主动模式可以解决这个问题。
使用zabbix主动模式的好处:可以监控不可达的远程设备;监控本地网络不稳定区域;当监控项目数以万计的时候使用代理可以有效分担zabbix server的压力;简化zabbix分布式监控的维护。
定义:
被动模式:由server向agent发出指令获取数据, 即agent被动的去获取数据并返回给server,server周期性的向agent 索取数据, 这总模式的最大问题就是会加大server的工作量, 在数百台服务器的环境下server不能及时获取到最新数据, 但这也是默认的工作方式。
主动模式:由agent主动采集数据并返回给zabbix server,不需要server进行干预, 主动模式在一定程度上可减轻server的压力。
默认的方式
实验环境:
172.25.1.1 zabbix-server server
172.25.1.11 zabbix-agent test1
172.25.1.2 zabbix-agent server2
这里可以用两台主机做实验
zabbix-server的配置同上篇文章,这里不再赘述
zabbix-agent:
[root@server2 ~]# ls //提前下载好agent包
zabbix-agent-3.4.6-1.el7.x86_64.rpm
[root@server2 ~]# yum install -y zabbix-agent-3.4.6-1.el7.x86_64.rpm
[root@server2 ~]# hostname
[root@server2 ~]# cd /etc/zabbix/
[root@server2 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@server2 zabbix]# vim zabbix_agentd.conf //修改配置文件
[root@server2 ~]# systemctl start zabbix-agent
[root@server2 zabbix]# netstat -antlp | grep zabbix
进行主动模式配置:
打开web浏览器,打开数据库、zabbix-server
访问172.25.1.1/zabbix并进行主机手动添加:
点击导向栏的“配置”——>"主机"——>由上角“创建主机”
填写主机部分
填写模版部分
选择链接指示器,选择“Template OS Linux”
点击上面的“添加”——>点击下面的“添加”
此时可以看到server2已经添加到监控主机上
test1也可以以相同的方式进行添加
目的:进行proxy代理,可以减轻agent端的负载
主动模式的配置:proxy仅需要一条tcp连接到server,所以防火墙上仅仅需要加上一条规则即可,proxy数据库必须和server分开,否则数据会被破坏。proxy收集到数据之后,首先将数据缓存在本地,然后在一定时间之后传递给server,这个时间由proxy配置文件决定。proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
实验环境:
172.25.1.1 zabbix-server server
172.25.1.11 zabbix-agent test1
172.25.1.2 zabbix-agent zabbix-proxy server2
[root@server2 ~]# ls
[root@server2 ~]# yum install -y zabbix-proxy-mysql-3.4.6-1.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm
[root@server2 ~]# yum install mysql-server -y
[root@server2 ~]# systemctl start mariadb
[root@server2 ~]# mysql_secure_installation //初始化数据库,设置root密码
[root@server2 ~]# mysql -uroot -p
Enter password:
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'proxy';
[root@server2 ~]# cd /etc/zabbix/
[root@server2 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d zabbix_proxy.conf
[root@server2 zabbix]# vim zabbix_proxy.conf
[root@server2 ~]# systemctl start zabbix-proxy
[root@server2 ~]# cd /usr/share/doc/
[root@server2 doc]# cd zabbix-proxy-mysql-3.4.6/
[root@server2 zabbix-proxy-mysql-3.4.6]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@server2 zabbix-proxy-mysql-3.4.6]# zcat schema.sql.gz | mysql -u zabbix -p zabbix_proxy
Enter password: //这里的密码为授权时的密码,笔者这里设置的是proxy
[root@server2 zabbix-proxy-mysql-3.4.6]# mysql -uroot -p //查看数据是否导入
网页删除server2主机
选择“管理”——>"agent代理程序"——>"创建代理"
选择”主动式“——>点击“添加”
agent(test1)端:
[root@test1 ~]# vim /etc/zabbix/zabbix_agentd.conf //由于此时server不再是172.25.1.1,而是172.25.1.2(即proxy),所以要修改配置文件
[root@test1 ~]# /etc/init.d/zabbix-agent restart
回到web界面:
此时,可以看到主机有代理
到此,两中模式就介绍完啦!!!