Zabbix proxy主动模式的实现

Zabbix proxy主动模式的实现

zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy可以代替zabbix server收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担zabbix server的数据收集压力,从而降低数据的采集时间、也相应的增加了zabbix server的监控能力。

zabbix proxy区分主动模式和被动模式,通信方式与zabbix agent主动模式和被动模式一样,区别是zabbix proxy由于没有zabbix agent的配置,所以zabbix proxy在主动模式下要周期性地向zabbix server申请获取zabbix agent的监控项信息,而zabbix proxy在被动模式下也是等待zabbix server的连接并接受zabbix server发送的监控项指令,然后zabbix proxy再向zabbix agent发起请求获取数据。

zabbix proxy对比zabbix server

功能zabbix proxyzabbix server
轻量级相对重量级
图形带图形控制界面
可以独立工作是,可以独立采集数据并存储是,集数据采集、存储、分析、展示于一体
易维护是,配置完成后基本无需管理维护也不难
独立数据库保存少量近期数据保存指定时间内的所有数据
报警通知否,代理服务器不发送邮件通知支持邮件、短信等告警机制

zabbix proxy的版本选择

zabbix proxy的版本必须和zabbix server版本一致,否则会导致出现zabbix proxy与zabbix server不兼容问题

环境准备

五台机器:

zabbix_agent 5.0 被动模式(已安装) Zabbix_java_gateway 5.0 (已安装) 10.0.0.7

MariaDB-10.4.22(已安装) zabbix_server 5.0(已安装) 10.0.0.17

Tomcat-8.5(已安装) 10.0.0.27

zabbix_agent 5.0 主动模式(已安装)10.0.0.37

MariaDB-10.4.22(已安装) zabbix_proxy 5.0 主动模式 10.0.0.47

关闭防火墙和selinux

#关闭selinux
[root@zabbix_proxy ~]#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#关闭防火墙
[root@zabbix_proxy ~]#systemctl disable --now firewalld

#重启生效
[root@zabbix_proxy ~]#reboot

1. 安装zabbix rpm源

[root@zabbix_proxy ~]#rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix_proxy ~]#sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zabbix_proxy ~]#yum clean all

2. 安装zabbix proxy

[root@zabbix_proxy ~]#yum install -y zabbix-proxy-mysql zabbix-agent

#编辑配置文件 /etc/yum.repos.d/zabbix.repo
[root@zabbix_proxy ~]#vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...

3. 创建zabbix proxy数据库

[root@zabbix_proxy ~]#mysql -uroot -p
Enter password:
MariaDB [(none)]> create database zabbix_proxy_active character set utf8 collate utf8_bin;
MariaDB [(none)]> create user proxy@'10.0.0.%' identified by 'proxy';
MariaDB [(none)]> grant all privileges on zabbix_proxy_active.* to proxy@'10.0.0.%';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

4. 修改zabbix proxy配置文件

[root@zabbix_proxy ~]#vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0  #0为主动模式,1为被动模式
Server=10.0.0.17  #zabbix server服务器的IP地址或主机名
ServerPort=10051  #zabbix server监听端口,对于处于被动模式的代理,该参数将被忽略
Hostname=zabbix_proxy_active  #代理服务器名称,需要与zabbix server添加代理时的proxy name一致
ListenPort=10051  #zabbix proxy监听端口
EnableRemoteCommands=1  #允许zabbix server执行远程命令
DBHost=10.0.0.47  #数据库服务器IP地址
DBName=zabbix_proxy_active  #数据库名称
DBUser=proxy  #数据库用户名
DBPassword=proxy  #数据库密码
DBPort=3306  #数据库端口
ProxyLocalBuffer=720  #已经提交到zabbix server的数据保留时间
ProxyOfflineBuffer=720  #未提交到zabbix server的数据保留时间
HeartbeatFrequency=60  #心跳检测时间间隔,默认60秒,对于处于被动模式的代理,该参数将被忽略
ConfigFrequency=60  #代理间隔多少秒从zabbix server获取监控信息,对于处于被动模式的代理,该参数将被忽略
DataSenderFrequency=30  #代理将每隔多少秒向zabbix server发送收集的数据,对于处于被动模式的代理,该参数将被忽略
StartPollers=6  #启动的数据采集器数量
StartPollersUnreachable=3  #不可达主机的轮询进程的初始实例启动数量
StartTrappers=5  #预启动的Trappers进程数量
StartPingers=3  #ICMP ping进程的初始实例数量
JavaGateway=10.0.0.7  #JavaGateway服务器IP地址
JavaGatewayPort=10052  #JavaGateway服务端口
StartJavaPollers=5  #启动多少个线程采集数据
ListenIP=0.0.0.0  #监听地址
HousekeepingFrequency=1  #多少小时清理一次代理端数据库的 history数据
CacheSize=16M  #配置缓存大小
StartDBSyncers=4  #zabbix和数据库同步数据的进程数量
HistoryCacheSize=16M  #保存监控项的历史缓存大小
HistoryIndexCacheSize=16M  #历史数据索引缓存的大小
Timeout=30  #监控项的超时时间,单位为秒
LogSlowQueries=3000  #多久的数据库查询会被记录到日志,单位为毫秒

[root@zabbix_proxy ~]#grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf
ProxyMode=0
Server=10.0.0.17
ServerPort=10051
Hostname=zabbix_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.47
DBName=zabbix_proxy_active
DBUser=proxy
DBPassword=proxy
DBPort=3306
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=60
ConfigFrequency=60
DataSenderFrequency=30
StartPollers=6
StartPollersUnreachable=3
StartTrappers=5
StartPingers=3
JavaGateway=10.0.0.7
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0
HousekeepingFrequency=1
CacheSize=16M
StartDBSyncers=4
HistoryCacheSize=16M
HistoryIndexCacheSize=16M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

5. 查看数据库

[root@zabbix_proxy ~]#mysql -uproxy -pproxy -h10.0.0.47
MariaDB [(none)]> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| zabbix_proxy_active |
+---------------------+

6. 主动模式导入数据库

[root@zabbix_proxy ~]#cd /usr/share/doc/zabbix-proxy-mysql-5.0.25/
[root@zabbix_proxy zabbix-proxy-mysql-5.0.25]#gunzip schema.sql.gz
[root@zabbix_proxy zabbix-proxy-mysql-5.0.25]#mysql -uproxy -pproxy -h10.0.0.47 zabbix_proxy_active
MariaDB [zabbix_proxy_active]> source /usr/share/doc/zabbix-proxy-mysql-5.0.25/schema.sql

7. 启动zabbix proxy进程

#启动zabbix proxy进程,并设置开机自启
[root@zabbix_proxy ~]#systemctl enable --now zabbix-proxy.service zabbix-agent.service
[root@zabbix_proxy ~]#systemctl status zabbix-proxy.service zabbix-agent.service
[root@zabbix_proxy ~]#systemctl status zabbix-proxy.service zabbix-agent.service
● zabbix-proxy.service - Zabbix Proxy
   Loaded: loaded (/usr/lib/systemd/system/zabbix-proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-07-14 19:04:18 CST; 13s ago
  Process: 2311 ExecStart=/usr/sbin/zabbix_proxy -c $CONFFILE (code=exited, status=0/SUCCESS)

● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-07-14 19:04:16 CST; 15s ago
  Process: 2312 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)

[root@zabbix_proxy ~]#ss -ntl
State      Recv-Q Send-Q              Local Address:Port                             Peer Address:Port
LISTEN     0      128                             *:22                                          *:*
LISTEN     0      100                     127.0.0.1:25                                          *:*
LISTEN     0      128                             *:10050                                       *:*
LISTEN     0      128                             *:10051                                       *:*
LISTEN     0      128                          [::]:22                                       [::]:*
LISTEN     0      100                         [::1]:25                                       [::]:*
LISTEN     0      128                          [::]:10050                                    [::]:*
LISTEN     0      80                           [::]:3306                                     [::]:*

8. zabbix web添加主动代理

点击【管理-agent代理程序-创建代理】在这里插入图片描述

9. zabbix agent使用主动代理

修改或者新添加一台zabbix agent,并使用zabbix主动模式代理服务器进行监控

点击【配置-主机-10.0.0.37-web2】

在这里插入图片描述

10. 修改zabbix agent配置文件

[root@centos7 ~]#vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.17,10.0.0.47  #zabbix server与zabbix active代理的地址
ServerActive=10.0.0.47  #修改zabbix agent中配置文件ServerActive的值为主动模式zabbix proxy

[root@centos7 ~]#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.17,10.0.0.47
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=5
ServerActive=10.0.0.47
Hostname=10.0.0.37
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf

[root@centos7 ~]#systemctl restart zabbix-agent.service

11. zabbix web验证当前主机状态

在这里插入图片描述

12. 验证主机监控数据

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Zabbix Proxy可以通过两种方式与Zabbix Server进行通信:主动模式和被动模式。 配置主动模式: 1. 在Zabbix Server中创建一个代理主机,设置其IP地址和主机名。 2. 在Zabbix Proxy中编辑配置文件zabbix_proxy.conf,设置ServerActive参数为Zabbix Server的IP地址和端口号。 3. 在Zabbix Proxy中启动zabbix_proxy进程,等待其与Zabbix Server建立连接。 4. 在Zabbix Server中确认代理主机状态为“Monitored”,表示主动模式已经配置成功。 配置被动模式: 1. 在Zabbix Server中创建一个代理主机,设置其IP地址和主机名。 2. 在Zabbix Proxy中编辑配置文件zabbix_proxy.conf,设置Server参数为Zabbix Server的IP地址和端口号。 3. 在Zabbix Proxy中启动zabbix_proxy进程,等待其与Zabbix Server建立连接。 4. 在Zabbix Server中创建一个被动代理监控项,设置其key为被监控主机的IP地址或主机名。 5. 在Zabbix Proxy中编辑配置文件zabbix_proxy.conf,设置Hostname参数为被监控主机的IP地址或主机名。 6. 在被监控主机上安装Zabbix Agent,并在其配置文件zabbix_agentd.conf中设置Server参数为Zabbix Proxy的IP地址和端口号。 7. 在Zabbix Server中确认代理主机状态为“Monitored”,表示被动模式已经配置成功。 需要注意的是,在配置主动模式时,Zabbix Proxy需要向Zabbix Server主动发送数据;而在配置被动模式时,Zabbix Server需要向Zabbix Proxy请求数据。因此,被动模式可以更好地适应防火墙和网络拓扑的限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直在努力学习的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值