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) 编辑 收藏 举报