zabbix proxy

204 阅读5分钟

一、定义与功能

定义

  • Zabbix Proxy是一种中间代理服务器,用于收集监控数据并将其发送到主Zabbix服务器。

主要功能

  1. 分担负载:Proxy可以帮助分担Zabbix Server的工作负载,减轻其处理压力,提高监控系统的整体性能和稳定性。
  2. 数据收集与转发:Proxy负责收集来自被监控设备(如服务器、网络设备等)的性能和可用性数据,并将这些数据转发给Zabbix Server进行处理和存储。
  3. 数据缓存与处理:Proxy还具备数据缓存功能,可以在一定程度上缓存收集到的数据,防止因网络故障等原因导致的数据丢失。此外,Proxy还可以对数据进行初步的处理和过滤,减少传输到Zabbix Server的数据量。
  4. 解决跨网络或安全限制:Proxy可以帮助解决跨网络或安全限制的问题,使得监控数据可以从远程位置或隔离网络中收集,提高监控系统的灵活性和可靠性。

二、应用场景

  1. 监控远程区域设备:当被监控设备位于远程区域时,可以使用Proxy来收集这些设备的数据,并通过网络将数据传输到Zabbix Server。
  2. 监控本地网络不稳定区域:在本地网络不稳定或存在安全限制的区域,使用Proxy可以确保监控数据的稳定传输和安全收集。
  3. 大规模监控场景:当需要监控大量设备时,使用Proxy可以分散监控任务,提高监控系统的效率和可维护性。

三、配置与使用

配置步骤

  1. 搭建Proxy主机:选择一台合适的服务器作为Proxy主机,并进行基础配置(如关闭防火墙、修改主机名等)。
  2. 安装数据库:根据需求安装并配置数据库(如MySQL或MariaDB),用于存储Proxy收集到的数据。
  3. 安装Zabbix Proxy:从Zabbix官网或相关镜像源下载Zabbix Proxy安装包,并进行安装和配置。
  4. 配置Proxy与Server的连接:在Proxy配置文件中指定Zabbix Server的IP地址和端口号,以便Proxy能够将收集到的数据发送到Zabbix Server。
  5. 配置被监控设备:在被监控设备上安装Zabbix Agent,并配置其使用Proxy进行数据传输。
  6. 启动Proxy服务:启动Zabbix Proxy服务,并检查其运行状态,确保能够正常收集和转发监控数据。

注意事项

  • Proxy的配置应与Zabbix Server和Agent的配置相协调,以确保数据的正确传输和处理。
  • Proxy的性能和稳定性对监控系统的整体性能有很大影响,因此需要定期进行维护和优化。
  • 在使用Proxy时,应注意网络安全和数据安全问题,确保监控数据的安全传输和存储。

四、总结

Zabbix Proxy是Zabbix监控系统中的重要组件之一,它通过收集、转发和缓存监控数据,帮助分担Zabbix Server的工作负载,提高监控系统的性能和稳定性。在大型网络环境或分布式环境中,使用Proxy可以简化监控系统的部署和维护工作,提高监控效率和可靠性。

zabbix proxy架构

image.png

image.png

zabbix proxy对比zbbbix server

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

zabbix proxy部署与使用

image.png

zabbix proxy安装:

1 编译安装proxy软件 7-4

#安装依赖环境
 yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y
​
./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
​
make   install
​
​
mysql 
mariadb-server

准备 数据库 7-4

yum install mariadb-server -y
systemctl start mariadb

2 准备数据库 7-4

#新建数据库
create database zabbix_proxy_active  character set utf8 collate utf8_bin;
create database zabbix_proxy_passive character set utf8 collate utf8_bin;
# 授权
grant all privileges on zabbix_proxy_active.*   to proxy@'192.168.10.%' identified by '123456';
grant all privileges on zabbix_proxy_passive.*  to proxy@'192.168.10.%' identified by '123456';
grant all privileges on zabbix_proxy_active.*   to proxy@'localhost' identified by '123456';
grant all privileges on zabbix_proxy_passive.*  to proxy@'localhost' identified by '123456';
​
​
create database zabbix_proxy_active  character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy_active.*   to proxy@'192.168.91.%' identified by '123456';
​
#导入数据结构
#先去源码包目录
mysql -uproxy -p123456 -h192.168.10.30 zabbix_proxy_passive < database/mysql/schema.sql
mysql -uproxy -p123456 -h192.168.10.30 zabbix_proxy_active < database/mysql/schema.sql
​

实现主动模式

1修改配置文件

[root@localhost zabbix-4.0.30]#cd /apps/zabbix_proxy/etc/
[root@localhost zabbix_proxy]#vim   /apps/zabbix_proxy/etc/zabbix_proxy.conf
13 ProxyMode=0
# 1是被动   0为主动  需要开启
​
31 Server=192.168.10.1
# 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的
​
​
40 ServerPort=10051
#被动模式可以不修改  应为是  zabbix-server 主动
​
50 Hostname=active
# web 配置中需要使用, 必须一致
​
​
​
158 DBHost=192.168.91.103
#数据库地址
​
169 DBName=zabbix_proxy_active
# 数据库名字
​
184 DBUser=proxy
#数据库用户
​
192 DBPassword=123456
#数据库密码
​
​
244 ConfigFrequency=5
#间隔多少秒从zabbix server获取监控项信息

2 导入数据库表格

前面做过了 如果没做 proxy起不来

mysql -uproxy -p123456 -h192.168.10.30  zabbix_proxy_active < database/mysql/schema.sql
#共用数据库 就在 数据库服务器上操作

启动

[root@localhost zabbix-4.0.30]#useradd zabbix
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_proxy 
[root@localhost zabbix-4.0.30]#ss -natpl |grep 10051

6 web设置

image-20240721131351178.png image.png

修改被监控端

[root@node2 ~]#vim  /apps/zabbix/etc/zabbix_agentd.conf
31  server=192.168.10.30
135 ServerActive=192.168.10.30
#指向  代理服务器
[root@node2 ~]#systemctl  restart   zabbix-agent.service 
[root@node2 ~]#systemctl  status   zabbix-agent.service