上篇文章使用zabbix proxy实现主动代理跨网段分布式监控(https://blog.51cto.com/u_15105742/5956857),我们已经配置完架构图中的主动模式的监控部分,在这篇文章中我们就继续配置被动模式的监控实践。
1、实验架构图
2、zabbix proxy的被动代理模式安装及配置
这里的被动代理服务的主机我就是要编译安装zabbix proxy了。
root@zabbix-proxy-passive:~# useradd zabbix -s /usr/sbin/nologion
root@zabbix-proxy-passive:~# tar xf zabbix-5.0.30.tar.gz
root@zabbix-proxy-passive:~# cd /opt/zabbix-5.0.30/
安装编译时的依赖包
root@zabbix-proxy-passive:~# apt -y install libmysqlclient-dev libxml2-dev libxml2 pkg-config libsnmp-dev libevent-dev libcurl4-openssl-dev openjdk-8-jdk
root@zabbix-proxy-passive:~# ./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
root@zabbix-proxy-passive:~# make install
创建初始数据库(使用的是和zabbix-server同一个数据库服务器)
root@mysql-server:~# mysql -uroot -pMysql@2022
mysql> create database zabbix_proxy_passive character set utf8 collate utf8_bin;
mysql> create user 'proxy'@'192.168.%.%' identified by 'proxy@2022';
mysql> grant all privileges on zabbix_proxy_passive.* to 'proxy'@'192.168.%.%';
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
导入初始架构数据
root@zabbix-proxy-passive:~# apt install -y mysql-client
root@zabbix-proxy-passive:~# mysql -uproxy -p"proxy@2022" -h10.0.0.101 zabbix_proxy_passive < /opt/zabbix-5.0.30/database/mysql/schema.sql
准备zabbix proxy启动service文件
# vi /lib/systemd/system/zabbix-proxy.service
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadb.service
[Service]
Environment="CONFFILE=/apps/zabbix_proxy/etc/zabbix_proxy.conf"
EnvironmentFile=-/etc/default/zabbix-proxy
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid
KillMode=control-group
ExecStart=/apps/zabbix_proxy/sbin/zabbix_proxy -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
配置被动zabbix proxy
root@zabbix-proxy-passive:~# vi /apps/zabbix_proxy/etc/zabbix_proxy.conf
root@zabbix-proxy-passive:~# grep -Ev "^#|^$" /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1 #0为主动也是默认值,1为被动
Server=10.0.0.100 #zabbix server服务器的地址或主机名
Hostname=zhang-proxy-passive #代理服务器的名称,需要和zabbix server添加代理时的proxy名称要一致
ListenPort=10051 #zabbix proxy监听的端口
LogFile=/tmp/zabbix_proxy.log
EnableRemoteCommands=1 #允许zabbix server执行远程命令
DBHost=10.0.0.101 #数据库服务器地址
DBName=zabbix_proxy_passive #使用数据库名称
DBUser=proxy #连接数据库的用户名称
DBPassword=proxy@2022 #连接数据库用户的密码
DBPort=3306 #数据库端口
ProxyLocalBuffer=720 #已经提交到zabbix server的数据保留时间
ProxyOfflineBuffer=720 #未提交到zabbix server的数据保留时间
ConfigFrequency=5 #间隔多少秒从zabbix server获取监控项信息
StartPollers=20 #启动的数据采集器数量
CacheSize=2G #保存监控项而占用的最大内存
HistoryCacheSize=2G #保存监控历史数据占用的最大内存
HistoryIndexCacheSize=128M #历史索引缓存的大小
Timeout=30 #监控项超时时间,单位是秒
LogSlowQueries=3000 #单位毫秒,指的是多久的数据库查询会被记录到日志中(慢查询)
StatsAllowedIP=127.0.0.1
配置完后就重启zabbix proxy服务
root@zabbix-proxy-passive:~# systemctl daemon-reload
root@zabbix-proxy-passive:~# systemctl enable --now zabbix-proxy
3、zabbix server修改配置文件添加被动模式proxy的配置项
root@zabbix-server:~# vi /etc/zabbix/zabbix_server.conf
StartProxyPollers=20 #启用多少之进程与代理端通信,若代理较多的话可以设置的值可以大点,范围0-250
ProxyConfigFrequency=60 #在proxy被动模式下,server多少秒会同步配置文件至proxy,该参数仅用于被动模式下的代理,范围在1-3600*24*7
ProxyDataFrequency=60 #被动模式下,zabbix server间隔多少秒向proxy请求历史数据
root@zabbix-server:~# systemctl restart zabbix-server
4、zabbix-agent2安装zabbix agent及配置
root@zabbix-agent2:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1%2Bfocal_all.deb
root@zabbix-agent2:~# dpkg -i zabbix-release_5.0-1+focal_all.deb
root@zabbix-agent2:~# sed -i.bak 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix.list
root@zabbix-agent2:~# apt update
root@zabbix-agent2:~# apt install zabbix-agent
root@zabbix-agent2:~# vi /etc/zabbix/zabbix_agentd.conf
root@zabbix-agent2:~# grep -Ev "^$|^#" /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.100,192.168.3.101
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=127.0.0.1
Hostname=192.168.3.103
Include=/etc/zabbix/zabbix_agentd.d/*.conf
root@zabbix-agent2:~# systemctl restart zabbix-agent