一、zabbix proxy架构
环境:
zabbix server:10.0.0.31
MySQL:10.0.0.32
代理数据库:10.0.0.32
zabbix proxy 主动模式:10.0.0.33
zabbix proxy 被动模式:10.0.0.34
zabbix proxy 被动模式 监控 linux-server1 10.0.0.36
zabbix proxy 主动模式 监控 linux-server2 10.0.0.37
二、安装zabbix proxy
10.0.0.33、10.0.0.34安装zabbix-proxy-mysql
cd /usr/local/src/
wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
dpkg -i zabbix-release_4.0-3+bionic_all.deb
apt update
apt install zabbix-proxy-mysql -y
创建数据库及账号
#10.0.0.32创建zabbix_proxy_active数据库
mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy_active.* to proxy@'10.0.0.%' identified by '123456';
#10.0.0.32创建zabbix_proxy_passive数据库
mysql> create database zabbix_proxy_passive character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy_passive.* to proxy@'10.0.0.%' identified by '123456';
导入初始化数据库
#10.0.0.33主动模式数据库导入:
zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uproxy -p123456 -h10.0.0.32 zabbix_proxy_active
#10.0.0.34被动模式数据库导入:
zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uproxy -p123456 -h10.0.0.32 zabbix_proxy_passive
两台代理分别重启zabbix-proxy
systemctl enable --now zabbix-proxy
三、zabbix proxy 被动配置
3.1 修改zabbix_proxy.conf文件
vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=1 #0为主动,1为被动
Server=10.0.0.31 #zabbix server服务器的地址或主机名,主动模式只能写一个IP,被动可以写多个IP
#ListenPort=10051 #zabbix proxy监听端口,主动模式设置,被动模式被忽略
Hostname=lck-proxy-passive #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
LogFile=/var/log/zabbix/zabbix_proxy.log
EnableRemoteCommands=1 #允许zabbix server执行远程命令
DBHost=10.0.0.32 #数据库服务器地址
DBName=zabbix_proxy_passive #使用的数据库名称
DBUser=proxy #连接数据库的用户名称
DBPassword=123456 #数据库用户密码
DBPort=3306 #数据库端口
ProxyLocalBuffer=720 #已经提交到zabbix server的数据,在proxy的保留时间
ProxyOfflineBuffer=720 #如果与zabbix server连接失败,所准备提交数据的时间保留时间
#HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
#ConfigFrequency=5 #间隔多少秒从zabbix server获取监控项信息 ,被动模式不使用
#DataSenderFrequency=5 #数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
StartPollers=20 #启动的数据采集器数量
JavaGateway=10.0.0.31 #java gateway服务器地址,当需要监控java的时候必须配置否则监控不到数据
JavaGatewayPort=10052 #Javagatewa服务端口
StartJavaPollers=20 #启动多少个线程采集数据
CacheSize=2G #保存监控项而占用的最大内存
HistoryCacheSize=2G #保存监控历史数据占用的最大内存
HistoryIndexCacheSize=128M #历史索引缓存的大小
Timeout=30 #监控项超时时间,单位为秒
LogSlowQueries=3000 #毫秒,多久的数据库查询会被记录到日志
root@ubuntu1804:/usr/local/src# systemctl restart zabbix-proxy.service
#实战配置
root@ubuntu1804:/usr/local/src# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf
ProxyMode=1
Server=10.0.0.31
Hostname=lck-proxy-passive
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=10.0.0.32
DBName=zabbix_proxy_passive
DBUser=proxy
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
StartPollers=20
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=1G
HistoryCacheSize=200M
HistoryIndexCacheSize=200M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
3.2 zabbix 添加被动代理
3.3 zabbix agent 配置
root@ubuntu1804:~# grep '^[a-Z]' /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.31,10.0.0.34 #zabbix server与zabbix passive代理的地址
Hostname=10.0.0.36
Include=/etc/zabbix/zabbix_agentd.d/*.conf
root@ubuntu1804:~# systemctl restart zabbix-agent.service
3.4 添加主机,使用被动代理
四、zabbix proxy 主动配置
4.1 修改zabbix_proxy.conf文件
vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #0为主动,1为被动
Server=10.0.0.31 #zabbix server服务器的地址或主机名,主动模式只能写一个IP,被动可以写多个IP
ListenPort=10051 #zabbix proxy监听端口,主动模式设置,被动模式被忽略
Hostname=lck-proxy-active #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
LogFile=/var/log/zabbix/zabbix_proxy.log
EnableRemoteCommands=1 #允许zabbix server执行远程命令
DBHost=10.0.0.32 #数据库服务器地址
DBName=zabbix_proxy_active #使用的数据库名称
DBUser=proxy #连接数据库的用户名称
DBPassword=123456 #数据库用户密码
DBPort=3306 #数据库端口
ProxyLocalBuffer=720 #已经提交到zabbix server的数据,在proxy的保留时间
ProxyOfflineBuffer=720 #如果与zabbix server连接失败,所准备提交数据的时间保留时间
HeartbeatFrequency=60 #proxy与server心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
ConfigFrequency=5 #间隔多少秒从zabbix server获取监控项信息 ,被动模式不使用
DataSenderFrequency=5 #数据发送到zabbix server的时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
StartPollers=5 #启动的数据采集器数量
JavaGateway=10.0.0.31 #java gateway服务器地址,当需要监控java的时候必须配置否则监控不到数据
JavaGatewayPort=10052 #Javagatewa服务端口
StartJavaPollers=20 #启动多少个线程采集数据
CacheSize=2G #保存监控项而占用的最大内存
HistoryCacheSize=2G #保存监控历史数据占用的最大内存
HistoryIndexCacheSize=128M #历史索引缓存的大小
Timeout=30 #监控项超时时间,单位为秒
LogSlowQueries=3000 #毫秒,多久的数据库查询会被记录到日志
root@ubuntu1804:/usr/local/src# systemctl restart zabbix-proxy.service
#实战配置
root@ubuntu1804:/run/zabbix# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf
ProxyMode=0
Server=10.0.0.31
ServerPort=10051
Hostname=lck-proxy-active
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=10.0.0.32
DBName=zabbix_proxy_active
DBUser=proxy
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=60
ConfigFrequency=5
DataSenderFrequency=5
StartPollers=20
StartIPMIPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=200M
HistoryCacheSize=200M
HistoryIndexCacheSize=200M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
4.2 zabbix 添加主动动代理
4.3 zabbix agent 配置
root@ubuntu1804:~# grep '^[a-Z]' /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.31,10.0.0.33 #zabbix server与zabbix active代理的地址
ServerActive=10.0.0.33
Hostname=10.0.0.37
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf
root@ubuntu1804:~# systemctl restart zabbix-agent.service
3.4 添加主机,使用主动代理
五、监控结果