Zabbix Proxy 也分主动模式和被动模式,通信方式与zabbix server主动模式和被动模式一样
Zabbix Proxy的模式 是从Zabbix Proxy 角度来说的
Zabbix proxy在主动模式下要主动地向zabbix server周期性的申请获取zabbix agent的监控项信息,此模式可以大幅降低Zabbix Server的压力,生产推荐使用。
Zabbix Proxy在被动模式下要被动地等待zabbix server的连接,并接受zabbix server发送的监控项指令,然后再由zabbix proxy向zabbix agent发起请求获取数据。
Zabbix Proxy的大版本必须要和zabbix server版本相同,否则很可能会导致出现 zabbix server与zabbix proxy不兼容问题。
192.168.1.121 Zabbix Server,MySQL Ubuntu 20.04
192.168.1.123 Zabbix Proxy 主动模式,MySQL Ubuntu 20.04 包安装
192.168.1.124 Zabbix Proxy 被动模式,MySQL Ubuntu 20.04 编译安装
1、安装
# 包安装
[root@zabbix-proxy01 ~]# wget https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm --no-check-certificate
[root@zabbix-proxy01 ~]# rpm -ivh zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix-proxy01 ~]# yum -y install zabbix-proxy-mysql zabbix-agent
# 编译安装
[root@zabbix-proxy02 ~]# yum -y install gcc mysql-devel libxml2-devel net-snmp-devel libssh2-devel curl-devel pcre-devel libevent-devel
[root@zabbix-proxy02 ~]# useradd zabbix
[root@zabbix-proxy02 ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.30.tar.gz
[root@zabbix-proxy02 ~]# tar xf zabbix-5.0.30.tar.gz
[root@zabbix-proxy02 ~]# cd zabbix-5.0.30/
[root@zabbix-proxy02 zabbix-5.0.30]# ./configure --prefix=/apps/zabbix_proxy --enable-proxy --with-agent --with-net-snmp --with-mysql --with-ssh2 --with-libcurl --with-libxml2
[root@zabbix-proxy02 zabbix-5.0.30]# make && make install
[root@zabbix-proxy02 zabbix-5.0.30]# vim /lib/systemd/system/zabbix-proxy.service
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/apps/zabbix_proxy/zabbix_proxy.conf"
EnvironmentFile=-/etc/sysconfig/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=0
[Install]
WantedBy=multi-user.target
[root@zabbix-proxy02 zabbix-5.0.30]# systemctl daemon-reload
2、准备数据库
为Zabbix proxy 创建一个单独的数据库
Zabbix server和Zabbix proxy不能使用相同的数据库。 如果它们安装在同一主机上,则proxy数据库必须具有不同的名称。
2.1、为主动模式的 proxy 准备独立的数据库
在MySQL 服务器上创建数据库和用户授权
[root@zabbix-proxy01 ~]# mysql -uroot -p123456
mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin;
mysql> create user proxy@'localhost' identified by '123456';
mysql> grant all on zabbix_proxy_active.* to proxy@'localhost' ;
# 从Proxy主机导入和zabbix Server不同的数据库和表
[root@zabbix-proxy01 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.30/schema.sql.gz | mysql -uproxy -p123456 zabbix_proxy_active
2.2、为被动模式的 proxy 准备独立的数据库
[root@zabbix-proxy02 ~]# mysql -uroot -p123456
mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin;
mysql> create user proxy@'localhost' identified by '123456';
mysql> grant all on zabbix_proxy_passive.* to proxy@'localhost' ;
# 创建被动模式使用的数据库和表
[root@zabbix-proxy02 mysql]# mysql -uproxy -p123456 zabbix_proxy_passive < schema.sql
3、主动模式配置
3.1、修改proxy配置文件
[root@zabbix-proxy01 ~]# grep '^[^#]' /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #主动模式为0,被动模式为1,默认为0即主动模式
Server=192.168.1.121 #指向Zabbix Server
Hostname=zabbix-proxy-active #此名称必须和后面Web管理页的agent代理程序名称相
同
DBHost=localhost #MySQL服务器地址
DBName=zabbix_proxy_active #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无法连接时将数据在本地保存多长时间,
默认
1小时
HeartbeatFrequency=60 #server端用来检测proxy可用性的心跳信息的时间间隔,被
动模
式无效
ConfigFrequency=60 #每间隔多少时间到server获取监控项,在agent更新端监
控项,只在主动模式有效,默认3600s
DataSenderFrequency=60 #数据发送的间隔时间,只在主动模式有效,默认1s,建议加
长
JavaGateway=192.168.1.121 #指向JAVA gateway主机
StartJavaPollers=10 #指定开启的进程数,默认为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 #慢查询时长
[root@zabbix-proxy01 ~]# systemctl restart zabbix-proxy.service
# 连接数据库报错
[root@zabbix-proxy01 ~]# tail /var/log/zabbix/zabbix_proxy.log
28547:20230127:092736.616 [Z3001] connection to database 'zabbix_proxy_active' failed: [2059] Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
28547:20230127:092736.616 Cannot connect to the database. Exiting...
[root@zabbix-proxy01 ~]# mysql -uroot -p123456
mysql> ALTER USER 'proxy'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#修改密码加密策略
mysql> FLUSH PRIVILEGES;
[root@zabbix-proxy01 ~]# systemctl restart zabbix-proxy.service
3.2、在 Zabbix Server 上添加代理 Proxies
管理– agent 代理程序(英文环境为Proxies)
agent代理程序名称要和proxy 配置文件中Hostname指定的名称相同,否则会现 proxy “zabbix-proxy-active” not found的日志提示
![图片[1]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-491.png)
3.3、在Zabbix Server 上配置 Zabbix Agent 使用主动代理
![图片[2]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-492.png)
![图片[3]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-493.png)
3.4、修改Zabbix Agent 配置文件为主动模式的 Zabbix Proxy
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agent2.conf
LogFile=/tmp/zabbix_agentd2.log
Server=192.168.1.123 #指向Zabbix Server(可选)和Zabbix Proxy(必
选)
ServerActive=192.168.1.123 #指向Zabbix Proxy
Hostname=192.168.1.122
[root@zabbix-agent ~]# systemctl restart zabbix-agent2.service
3.5、验证主机状态
![图片[4]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-494.png)
![图片[5]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-495.png)
4、被动模式配置
[root@zabbix-proxy02 ~]# vim /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1 #0为主动,1为被动,此为默认
server=192.168.1.121 #zabbix server服务器的地址
Hostname=zabbix-proxy-passive #代理服务器名称,需要与zabbix server添加代理
时候的proxy
DBHost=127.0.0.1 #数据库服务器地址
DBName=zabbix_proxy_passive #数据库库名称
DBUser=proxy #连接数据库的用户名称
DBPassword=123456 #数据库用户密码
DBPort=3306 #数据库端口
ListenPort=10051 #zabbix proxy监听端口
LogFile=/tmp/zabbix_proxy.log
Enab1eRemoteCommands=1 #允许zabbix server执行远程命令
ProxyLocalBuffer=720 #已经提交到zabbix server的数据保留时间
ProxyofflineBuffer=720 #未提交到zabbix server的时间保留时间
ConfigFrequency=5 #间隔多少秒从zabbix server获取监控项信息,此
横在被动模式无效
startPo1lers=20 #启动的数据采集器数量
javaGatewayPort=10052 #Java gateway服务端口
startJavaPollers=20 #启动多少个线程采集数据
cachesize=2G #保存监控项而占用的最大内存
Historycachesize=2G #保存监控历史数据占用的最大内存
HistoryIndexcachesize=128M #历史索引缓存的大小
Timeout=30 #监控项超时时间,单位为秒
LogslowQueries=3000 #毫秒,多久的数据库查询会被记录到日志
HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,范围0-3600秒,被
动模式不使用
DatasenderFrequency=5 #数据发送时间间隔,默认为1秒,范围为1-3600秒,
被动模式不使用
JavaGateway=10.0.0.102 #java gateway服务器地址,当需要监控java的时候
必须配置否则监控不到数据
在 Zabbix Server 上添加代理 Proxies
![图片[6]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-496.png)
![图片[7]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-497.png)
![图片[8]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-498.png)
![图片[9]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-499.png)
修改Zabbix Agent 配置文件为被动模式的 Zabbix Proxy
[root@zabbix-agent ~]# grep '^[^#]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
DebugLevel=4
Server=192.168.1.124
Hostname=192.168.1.122
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@zabbix-agent ~]# systemctl restart zabbix-agent2.service
验证主机状态
![图片[10]-Zabbix Proxy 安装和配置-李佳程的个人主页](http://www.lijiach.com/wp-content/uploads/2023/01/image-500.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END