zabbix--分布式监控proxy
1.概述
zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力。zabbix proxy可以非常简便的实现了集中式、分布式监控。
1.1使用场景
监控远程区域设备
监控本地网络不稳定区域
当zabbix监控上千设备时,使它来减轻server的压力
简化zabbix的维护
1.2 zabbix proxy与zabbix server做对比
zabbbix server | zabbix proxy | |
轻量级 | 否 | 是 |
图形化 | 有 | 无 |
维护 | 容易 | 很容易 |
独立数据库 | 保留指定时间内的所有数据 | 可以保留部分数据,因为可以有很多zabbix proxy |
告警通知 | 支持邮件,短信,微信等告警机制 | 不支持 |
1.3 工作过程
zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。
zabbix proxy 数据库必须和 server 分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。
总之记住,数据库分开即可。
proxy收集到数据之后,首先将数据缓存在本地,然后在一定的时间之后传递给zabbix server.这个时间由proxy配置文件中参数ProxyLocalBuffer and ProxyOffline Buffer决定
zabbix prixy是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
2.配置
2.1 实验环境
IP | 描述 |
192.168.253.120 | server |
192.168.253.201 | proxy |
192.168.253.51 | client |
2.2 安装
时间同步
yum install ntpdate -y ntpdate cn.pool.ntp.org
安装依赖
yum install make gcc net-snmp-devel curl-devel perl-DBI OpenIPMI-devel libxml2-devel mysql-devel mariadb mariadb-server
启动mariadb
systemctl restart mariadb
systemctl enable mariadb
下载源码包
解压
tar xf zabbix-4.0.7.tar.gz cd zabbix-4.0.7 useradd zabbix -s /sbin/nologin mkdir -p /data/zabbix ./configure --prefix=/data/zabbix --enable-proxy --with-mysql --with-net-snmp --with-libcurl
make && make install
创建数据库,并授权
导入数据----表结构schema.sql
cd database/mysql
mysql -uzabbix_proxy -pzabbix_proxy zabbix_proxy < schema.sql
2.3proxy配置
[root@localhost ~]# grep -Ev '^#|^$' /data/zabbix/etc/zabbix_proxy.conf Server=192.168.253.120 Hostname=Zabbix_proxy LogFile=/tmp/zabbix_proxy.log DBHost=localhost DBName=zabbix_proxy DBUser=zabbix_proxy DBPassword=zabbix_proxy DBPort=3306 ConfigFrequency=60 #server和proxy同步时间间隔 DataSenderFrequency=5 #发送数据时间间隔,单位s Timeout=4 LogSlowQueries=3000
启动proxy
/data/zabbix/sbin/zabbix_proxy -c /data/zabbix/etc/zabbix_proxy.conf
2.4 client配置
vim /etc/zabbix/zabbix_agentd.conf Server=192.168.253.201 #被动模式 ServerActive=192.168.253.201 #主动模式 Hostname=192.168.253.51
2.5web页面配置proxy节点
3. 测试
查看是否监控到数据