Zabbix通过proxy的被动模式代理来跨网段监控Linux主机

时间:2022-12-22 11:01:14

  上篇文章使用zabbix proxy实现主动代理跨网段分布式监控(https://blog.51cto.com/u_15105742/5956857),我们已经配置完架构图中的主动模式的监控部分,在这篇文章中我们就继续配置被动模式的监控实践。

1、实验架构图

Zabbix通过proxy的被动模式代理来跨网段监控Linux主机

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

5、在zabbix web界面配置被动代理模式并添加主机

5.1、zabbix web界面添加被动代理

Zabbix通过proxy的被动模式代理来跨网段监控Linux主机Zabbix通过proxy的被动模式代理来跨网段监控Linux主机

5.2、创建主机使用被动代理并关联监控模板

Zabbix通过proxy的被动模式代理来跨网段监控Linux主机Zabbix通过proxy的被动模式代理来跨网段监控Linux主机Zabbix通过proxy的被动模式代理来跨网段监控Linux主机

5.3、在zabbix web界面验证监控数据

Zabbix通过proxy的被动模式代理来跨网段监控Linux主机Zabbix通过proxy的被动模式代理来跨网段监控Linux主机Zabbix通过proxy的被动模式代理来跨网段监控Linux主机