zabbix-proxy主动模式

Zabbix Proxy 概述:

官方文档:

https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring
https://www.zabbix.com/documentation/4.0/zh/manual/distributed_monitoring

 

基本架构:

 

Zabbix proxy 功能列表及注意事项:

https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring/proxie
s
https://www.zabbix.com/documentation/4.0/zh/manual/distributed_monitoring/proxie
s

 实验配置:

 1.基于二进制包安装proxy与agent(agent与proxy安装在一起用于server监控proxy)

# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
# dpkg -i zabbix-release_5.0-1+bionic_all.deb
# apt updat

 # apt -y install zabbix-proxy-mysql zabbix-agent
 # systemctl enable --now zabbix-proxy.service zabbix-agent.service

2.连接Mysql创建属于proxy的数据库。

注意:Zabbix server和Zabbix proxy不能使用相同的数据库。 如果它们安装在同一主机上,则proxy数据库与server数据库必须具有不同的名称。

create database zabbix_proxy character set utf8 collate utf8_bin;
create user proxy@'10.0.0.202' identified by '123456';
grant all on zabbix_proxy.* to proxy@'10.0.0.202' ;

 zcat /usr/share/zabbix-proxy-mysql/schema.sql.gz | mysql -uproxy -p123456 -h 10.0.0.40 zabbix_proxy    #返回proxy主机导入

3.proxy配置清单
1)部分性能优化

 vim /etc/zabbix/zabbix_proxy.conf

ProxyMode=0                         #主动模式为0,被动模式为1,默认为0即主动模式
Server=10.0.0.200                   #指向Zabbix Server
Hostname=zabbix_zhuhai              #此名称要和后面agent代理程序名称相同
DBHost=10.0.0.40                    #MySQL服务器地址
DBName=zabbix_proxy                 #MySQL 数据库名
DBUser=proxy                        #连接MySQL的用户
DBPassword=123456                   #连接MySQL的用户密码
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0

DebugLevel=4                        #指定日志级别,默认为3,值越大日志越详细
EnableRemoteCommands=1              #开启远程命令,允许server到proxy上执行命令,在故障自愈时使用
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
ProxyLocalBuffer=360                #proxy将数据发送给server后将数据在本地保存多少时间
ProxyOfflineBuffer=720              #当proxy和server无法连接时将数据在本地保存多长时间
HeartbeatFrequency=60               #server端用来检测proxy可用性的心跳信息的时间间隔,被动模式无效
ConfigFrequency=60                  #每间隔多少时间到server获取监控项,在agent更新端监控项,只在主动模式有效,默认3600s
DataSenderFrequency=60              #数据发送的间隔时间,只在主动模式有效,默认1s,建议加长
JavaGateway=10.0.0.200              #指向JAVA gateway主机
StartJavaPollers=10                 #指定开启接收JAVA数据的JAVA的进程数,默认为0,即不开启
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=8M                        #当主机数量很多时,会将获取的监控项存放在缓存中,生产中设置2G
StartDBSyncers=4                    #启动多少个线程和数据库连接
HistoryCacheSize=16M                #保存agent发送过来的监控数据的内存空间大小,生产中设置2G 
HistoryIndexCacheSize=4M            #历史数据的索引 Timeout=30#获取数据的最长等待时间 
ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000 #慢查询时长             

2)proxy重启后查看日志、端口、进程数与配置文件中是否对的上(不一一演示)

pstree -p|grep zabbix

3)agent配置:

root@Ubuntu18:~# grep '^[^ #]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.200
ServerActive=10.0.0.200  
Hostname=zabbix_proxy    #Hostname可名称也可IP,但为了表示选择名称
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf

4.在zabbix-web界面创建proxy程序。

5.为10.0.0.203-agent添加已经创建的proxy以及"主动"模板,否则proxy的负载均衡就失去了意义。
1)添加proxy

2)添加"主动"模板。注:模板已事先进行"完全克隆"改为"主动",但保留了agent.ping监控项的"被动"(确保亮绿灯)<详情参考agent主动模式博客>

6. 10.0.0.203-agent的配置清单

grep '^[^ #]' /etc/zabbix/zabbix_agentd.conf 
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.202                #指向proxy
ServerActive=10.0.0.202         #指向proxy且proxy必须配置主动模式
Hostname=10.0.0.203
Include=/etc/zabbix/zabbix_agentd.d/*.conf

7.测试:观测server是否能够获取添加proxy程序的agent数据。
1)成功亮绿灯

 

2)监控项获取的时间几乎一致(这个条件可以用来判断是否采用"主动"模式获取数据的依据)

总结:
1.以下两条报错为agent能够从server获取配置数据却无法在本地更新这是由于版本间差异所导致的.

13085:20180720:152015.832 received configuration data from server at "10.10.251.48", datalen 14591
13085:20180720:152015.857 failed to update local proxy configuration copy: unexpected field "hosts.available"

1)安装完proxy-mysql后记得通过zabbix-proxy -V 查看版本号,重新安装proxy(升级版本)时选择"N"以免清除旧proxy配置信息。
2)升级后可能没有 /etc/zabbix/zabbix_proxy.conf.d 文件导致无法启动程序(这是在syslog看到的)

2.此报错为proxy配置文件中的Hostname与zabbix-web添加proxy程序时的Hostname不一致、第二种可能便是proxy主机安装的agent指向本机而本机没有安装zabbix-server而导致。

cannot send list of active checks to "127.0.0.1": host [Zabbix server] not found

3.在生产中优化zabbix性能最好的方法就是主动模式配合主动模板,在性能上能够得到极大的提升。
4.如果不成功,可以删除后再重新添加监控的主机或者重启动 proxy 服务.


posted on 2021-08-26 19:41  1251618589  阅读(4)  评论(0编辑  收藏  举报

导航