zabbix分布式监控proxy部署

公司加新机器了,不在同一个地区。监控还是zabbix好,zabbix是一个分布式的监控工具,分布式方案有node和proxy两种。目前保留的是proxy,proxy从server获取配置文件,然后将配置应用到该proxy监控的agent上,收集agent的监控数据后,然后将数据传送给server。proxy只是暂存转发数据,对机器配置要求不高。
1、安装proxy

1
2
3
4
5
6
#编译安装proxy
./configure --prefix=/usr/local/zabbix --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --enable-proxy
make
make install
#导入数据库表结构
mysql -uzabbix -p zabbix < ./schema.sql

2、修改proxy配置文件zabbix_proxy.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Server=1xx.80.xxx.2xx    #中心server服务器地址
Hostname=UC_SINGER_GATE01 #proxy主机主机名
LogFile=/opt/log/zabbix/zabbix_proxy.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock #mysql这里采用sock的方式连接
ProxyOfflineBuffer=2 #离线数据保存2小时
ConfigFrequency=600 #proxy与server端配置同步时间间隔
StartPollers=8 #proxy启动线程数
StartPollersUnreachable=1 #监控失去连接主机的监控进程数
StartTrappers=8 #trapper线程数
StartPingers=2 #fping线程数,proxy主机需要安装fping命令
CacheSize=16M #保存监控数据的缓存大小
HistoryTextCacheSize=8M
Timeout=10
Include=/usr/local/zabbix/etc/zabbix_proxy.conf.d/

主机名Hostname需要注意几点:
a、proxy的Hostname与proxy主机名相同,并且与server创建代理节点时的代理节点名称相同。
zabbix-proxy01
b、proxy监控的agent其配置文件中的Hostname与proxy的主机名相同。
配置完成后启动proxy
3、agent的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
PidFile=/opt/run/zabbix_agentd.pid
LogFile=/opt/log/zabbix/zabbix_agentd.log
LogFileSize=10
DebugLevel=2
Server=10.10.142.170 #server指向proxy主机
ListenPort=10050
ListenIP=10.10.126.96
StartAgents=5
ServerActive=10.10.142.170:10051
Hostname=UC_SINGER_GATE01 #主机名与proxy设置的主机名相同
UnsafeUserParameters=1
EnableRemoteCommands=1
Include=/usr/local/zabbix/conf.d/

配置完成后启动agent
4、server端先添加代理节点,然后添加代理节点下的agent。
添加代理节点:管理 –> 节点管理 –> 创建代理节点(代理节点对应的是proxy功能,节点对应的是node功能)
zabbix-proxy03

ip地址可以使用内网ip,不需要直接和server端通信。配置最大的区别就是该主机由代理节点监控。
server端的配置保存后,proxy会定时的从server端更新配置文件,更新自己的监控任务。

----------------本文结束 感谢阅读----------------