1、zabbix agent主动模式与被动模式的区别
zabbix agent的运行模式有以下两种:
1)、被动模式:此模式为zabbix默认的工作模式,由zabbix server 向zabbix agent 发出指令获取数据,zabbix agent被动地去获取数据并返回给zabbix server,zabbix server会周期性地向agent索取数据。此模式的最大问题就是会增加zabbix server的工作量,在大量的服务器环境下,zabbix server不能及时获取到最新的数据。
2)、主动模式:即由zabbix agent 主动采集数据并返回给zabbix server,不需要zabbix server 的另行干预,因此使用主动模式能在一定程序上减轻zabbix server的压力。
2、zgent主动模式与被动模式的配置
被动模式(默认)
[root@server5 bin]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.81.11 #被动模式所接受的服务器Ip
StartAgents=3
ServerActive=172.25.81.11 #主动模式的服务器IPHostname=server5 ##本机的解析一定要有
2、zgent主动模式的配置
[root@server5 bin]# vim /etc/zabbix/zabbix_agentd.conf
#Server=172.25.81.11 ##注释此句则agent变为主动模式,主动向server传送监控信息
StartAgents=0 ##默认启动的zabbix_agentd pre-fork进程,如果为0的话表示停用被动模式
ServerActive=172.25.81.11
Hostname=server5
重启服务后再次查看端口,可以发现本机10050端口不再对外开放,此时server不能主动访问agent来获取监控数据,只能由agent主动传送监控信息到server机。
[root@server5 bin]# netstat -nltp
但是由于Template OS Linux 模板存在一个链接模板 Template App Zabbix Agent ,所以这里不对上述配置文件进行修改,仍然使用原始配置文件中同时支持主被动的状态。
web端操作:
<1>克隆一个新的模板
所有模板 --> Template OS Linux --> 全克隆 -->给新克隆出来的模板命名(模板名称--Template OS Linux -Active)-->添加
<2>批量更新新建模板的监控项
所有模板--> Template OS Linux -Active --> 监控项--> 选中所有监控项 --> 批量更新
将类型改为Zabbix客户端(主动式) --> 更新
<3>将server5中的模板由原来的Template OS Linux 替换成 Template OS Linux -Active
所有主机-->server5 -->模板 --> 选中Template OS Linux --> 取消链接并清理 --> 添加新模板Template OS Linux -Active-->更新
查看新建模板下的监控项内容,如果有数据证明agent主动模式传送监控信息成功.
等待一段时间过后,应该就出现相应的监控数据。
zabbix是一个分布式的监控系统,其支持通过代理服务器zabbix proxy 来收集zabbix agent的数据,然后zabbix proxy再把收集保存在本地数据库的数据送往zabbix server进行统一存储和展示。单一的zabbix server+ zabbix agent的环境,因受限于zabbix server性能瓶颈的缘故,其能管控的zabbix agent是有限的。而zabbix proxy则把zabbix server从收集数据这一功能中抽离出来,使得zabbix server专注于对数据进行存储和展示,提升了zabbix server所能管控的zabbix agent数据及提高了部署的灵活性。
zabbix server --> zabbix proxy --> zabbix agent
新增zabbix proxy服务器,修改之前部署配置的zabbix server和agent来调用zabbix proxy服务器,从而让zabbix server 从zabbix proxy上获取其收集到的zabbix agent数据。
注意:zabbix proxy的版本跟zabbix server的版本一定要保持一致
服务部署:
zabbix server 172.25.81.11
zabix agent 172.25.81.5
zabbix proxy 172.25.81.6
准备工作:做好三台机器之间相互的解析工作.
首先在WEB端新建一个agent代理程序(名称需要与代理机的hostname一致)
确定没有重复的代理名字的主机,如果有请删除:
管理-->agent代理程序 --> 创建代理--> 填写名称 --> 添加
zabbix proxy服务器的部署:
<1>首先安装proxy及其依赖包
[root@proxy ~]# yum install -y zabbix-proxy-mysql-3.4.6-1.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm
<2>安装并配置数据库
[root@proxy ~]# yum install -y mariadb-server
[root@proxy ~]# systemctl start mariadb
[root@proxy ~]# mysql
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 'redhat';
导入zabbix_proxy数据库
[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.6/
[root@proxy zabbix-proxy-mysql-3.4.6]# zcat schema.sql.gz | mysql zabbix_proxy ##以root用户身份导入zabbix_proxy数据库信息.
[root@proxy zabbix-proxy-mysql-3.4.6]# mysql -u zabbix -p zabbix_proxy ##以zabbix用户身份访问zabbix_proxy数据库
<3>修改zabbix_proxy配置文件
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
30 Server=172.25.81.11
39 ServerPort=10051
49 Hostname=proxy
173 DBName=zabbix_proxy
188 DBUser=zabbix
197 DBPassword=redhat
329 JavaGateway=172.25.81.11 由于serve5配置了JMX接口,所以相应的该部分也需要配置
337 JavaGatewayPort=10052
345 StartJavaPollers=5
[root@proxy ~]# systemctl start zabbix-proxy
查看端口:
[root@proxy ~]# netstat -nltp | grep :10051
查看WEB端agent代理程序的状态:
查看server端的日志:
[root@zabbix-server ~]# cat /var/log/zabbix/zabbix_server.log
查看proxy端日志:
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log
修改zabbix_agentd.conf配置文件:
[root@server5 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.81.6 ##proxy代理服务器的地址
ServerActive=172.25.81.6 ##proxy代理服务器的地址
[root@server5 ~]# systemctl restart zabbix-agent
WEB端给agent主机添加agent代理程序:
所有主机--> server5 --> 选择由前面建立的agent代理程序proxy监测 --> 更新
如果刚配置好之后暂时不起作用,则分别重启以下Zabbix server Zabbix agent 以及Zabbix proxy 即可。
最后的结果图如下:
对聚合图形的操作: