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 proxy | zabbix 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
[root@zabbix_proxy ~]
[root@zabbix_proxy ~]
[root@zabbix_proxy ~]
1. 安装zabbix rpm源
[root@zabbix_proxy ~]
[root@zabbix_proxy ~]
[root@zabbix_proxy ~]
2. 安装zabbix proxy
[root@zabbix_proxy ~]
[root@zabbix_proxy ~]
[zabbix-frontend]
...
enabled=1
...
3. 创建zabbix proxy数据库
[root@zabbix_proxy ~]
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 ~]
ProxyMode=0
Server=10.0.0.17
ServerPort=10051
Hostname=zabbix_proxy_active
ListenPort=10051
EnableRemoteCommands=1
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
ListenIP=0.0.0.0
HousekeepingFrequency=1
CacheSize=16M
StartDBSyncers=4
HistoryCacheSize=16M
HistoryIndexCacheSize=16M
Timeout=30
LogSlowQueries=3000
[root@zabbix_proxy ~]
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 ~]
MariaDB [(none)]> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| zabbix_proxy_active |
+---------------------+
6. 主动模式导入数据库
[root@zabbix_proxy ~]
[root@zabbix_proxy zabbix-proxy-mysql-5.0.25]
[root@zabbix_proxy zabbix-proxy-mysql-5.0.25]
MariaDB [zabbix_proxy_active]> source /usr/share/doc/zabbix-proxy-mysql-5.0.25/schema.sql
7. 启动zabbix proxy进程
[root@zabbix_proxy ~]
[root@zabbix_proxy ~]
[root@zabbix_proxy ~]
● 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 ~]
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 ~]
Server=10.0.0.17,10.0.0.47
ServerActive=10.0.0.47
[root@centos7 ~]
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 ~]
11. zabbix web验证当前主机状态
12. 验证主机监控数据
|