1.Agent被动变为主动:
环境设定
base2172.25.78.12zabbix-server
base3172.25.78.13zabbix-agent
开启服务
# 在服务端
[root@base2 ~]# systemctl start zabbix-server
[root@base2 ~]# systemctl start zabbix-agent
[root@base2 ~]# systemctl start httpd
[root@base2 ~]# systemctl start zabbix-java-gateway
[root@base2 ~]# systemctl start mariadb
# 在客户端
[root@base3 bin]# systemctl start zabbix-agent
[root@base3 ~]# cd /usr/local/tomcat/
[root@base3 tomcat]# cd bin/
[root@base3 bin]# ./startup.sh
我们克隆一个模块来实现我们的功能
# 回到agent端配置
[root@base3 zabbix]# pwd
/etc/zabbix
[root@base3 zabbix]# vim zabbix_agentd.conf
98 # Server=172.25.78.12 # 关闭服务端的连接
123 StartAgents=0 # 在被动模式下,此参数用于设置控制监听进程可启用的子进程的数量,若监控项较多
且采集很频繁,建议加大此数值 ;若此数值为0,则禁止使用被动模式。另外,一般
情况,不建议修改此数值,当且仅当某些监控项无法采集到数据,或数据采集数据
有延迟现象时,可调整。第四,启用线程越多,则相对越耗系统资源。此处只想说明
有这个功能
[root@base3 zabbix]# systemctl restart zabbix-agent
[root@base3 zabbix]# netstat -antlp | grep 10050 # 查看不到agent端口,说明此主机已经不是agent了
刷新网页,base3的zabbix不可用,此时的base3为服务端
恢复agent身份
[root@base3 zabbix]# vim zabbix_agentd.conf
98 Server=172.25.78.12
123 # StartAgents=3
[root@base3 zabbix]# systemctl restart zabbix-agent
[root@base3 zabbix]# netstat -antlp |grep :10050 # agent端口出现,身份恢复
3.Proxy代理
环境设定
base2172.25.78.12zabbix-server
base3172.25.78.13zabbix-agent
base4172.25.78.14zabbix-proxy
概述:
zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上
分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控.
zabbix proxy使用场景:
1.监控远程区域设备
2.监控本地网络不稳定区域
3.当zabbix监控上千设备时,使用它来减轻server的压力
4.简化zabbix的维护
zabbix proxy仅仅需要一条tcp连接到zabbix server,所以防火墙上仅仅需要加上一条规则即可.zabbix proxy
数据库必须和server分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开即可。
proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server.这个时间由
proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定.
zabbix proxy只是一个数据收集器,它不计算触发器、不处理事件、不发送报警
先在网页上添加好proxy
agent使用 agent active模式
回到proxy主机,开始配置
[root@base4 ~]# hostnamectl set-hostname proxy # 修改主机名,方便操作
[root@base4 ~]# reboot
[root@proxy ~]# vim /etc/hosts
172.25.78.14 base4 proxy
[root@proxy ~]# systemctl stop zabbix-agent # 关闭agent功能
[root@proxy ~]# ls
zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
fping-3.10-1.el7.x86_64.rpm
[root@proxy ~]# yum install -y fping-3.10-1.el7.x86_64.rpm zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
[root@proxy ~]# yum install -y mariadb-server
[root@proxy ~]# systemctl start mariadb
[root@proxy ~]# mysql -p # 没有密码,登录数据库
Enter password:
MariaDB [(none)]> show databases;
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 'westos';
MariaDB [(none)]> quit
[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
[root@proxy zabbix-proxy-mysql-4.0.5]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@proxy zabbix-proxy-mysql-4.0.5]# zcat schema.sql.gz | mysql zabbix_proxy # 给zabbix_proxy数据库导入数据
[root@proxy zabbix-proxy-mysql-4.0.5]# mysql -u zabbix -p zabbix_proxy # 以zabbix用户登录zabbix_proxy数据库
Enter password:
MariaDB [zabbix_proxy]> show tables;
[root@proxy zabbix-proxy-mysql-4.0.5]# cd /etc/zabbix/
[root@proxy zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d zabbix_proxy.conf
[root@proxy zabbix]# vim zabbix_proxy.conf
30 Server=172.25.78.12 # 表示proxy是作为172.25.78.12这台主机的代理
39 ServerPort=10051 # 代理端口为10051
49 Hostname=proxy # 修改本机解析
188 DBUser=zabbix
196 DBPassword=westos
329 JavaGateway=172.25.78.12 # 因为服务端有JMX的监控,所以proxy也要开启相应的服务
337 JavaGatewayPort=10052
345 StartJavaPollers=5
[root@proxy zabbix]# systemctl start zabbix-proxy
[root@proxy zabbix]# netstat -antlp | grep proxy
配置客户端
[root@base3 bin]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.25.78.14 # 把客户端的server指向proxy
139 ServerActive=172.25.78.14
[root@base3 bin]# systemctl restart zabbix-agent
分别给服务端和客户端添加解析
[root@base2 ~]# vim /etc/hosts
172.25.78.14 base4 proxy
[root@base3 ~]# vim /etc/hosts
172.25.78.14 base4 proxy
浏览器刷新
我们使用由agent代理程序监测字段指定主机配置窗体中的proxy监视单个主机
查看日志,proxy代理成功
[root@proxy ~]# vim /var/log/zabbix/zabbix_proxy.log
[root@base3 bin]# vim /var/log/zabbix/zabbix_agentd.log
[root@base2 ~]# vim /var/log/zabbix/zabbix_server.log
注:如果发现没有成功代理,查看日志有以下报错
cannot send list of active checks to “172.25.78.13”: host [base3] not found
[root@base2 ~]# systemctl restart zabbix-server # 重启服务端服务
[root@proxy ~]# systemctl restart zabbix-proxy # 重启代理端服务
connection to database ‘zabbix_proxy’ failed
[root@proxy ~]# systemctl start mariadb # 开启代理服务端的数据库