1、zabbix proxy简述 zabbix作为一个分布式监控系统,是支持代理(proxy)收集zabbix agent的监控数据然后由zabbix proxy再把数据发给zabbix server,也就是zabbix proxy可以代替zabbix server收集监控
1、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 server中的主动模式和被动模式一样,区别就是zabbix proxy由于没有zabbix agent的配置,所以zabbix proxy在主动模式要向zabbix server周期性的zabbix server申请zabbix agent的监控项配置,但是zabbix proxy在被动模式下也是等待zabbix server的连接并接受zabbix server发送监控指令,然后在通过zabbix proxy向zabbix agent发起请求获取监控数据。
功能 zabbix proxy zabbix server 轻量级 是 相对于重量级 图形界面 无 带有图形控制界面 独立工作 是,可以独立采集数据并存储 是,即数据采集、存储、分析、展示和为一体 维护 易维护,配置完后基本不需要管理 维护也不是很难 独立数据库 保留最近的少量数据 保留指定时间内的所有数据 报警通知 否,代理服务器是不发送邮件通知的 支持邮件、短信等告警机制2、实验架构图
下面架构图还包括被动代理,在这篇文章我们演示的是主动代理的实现。这里是实现跨网段会涉及到路由,需要通过路由来打通跨网段的网络。
3、主动代理模式的zabbix-proxy安装及配置
root@zabbix-proxy-active:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1%2Bfocal_all.deb root@zabbix-proxy-active:~# dpkg -i zabbix-release_5.0-1+focal_all.deb root@zabbix-proxy-active:~# sed -i.bak 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix.list root@zabbix-proxy-active:~# apt update root@zabbix-proxy-active:~# apt -y install zabbix-proxy-mysql 创建初始数据库(这里我使用的数据库服务器还是zabbix server使用的数据库服务器) root@mysql-server:~# mysql -uroot -pMysql@2022 mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin; mysql> create user 'proxy'@'192.168.%.%' identified by 'proxy@2022'; mysql> grant all privileges on zabbix_proxy_active.* to 'proxy'@'192.168.%.%'; mysql> set global log_bin_trust_function_creators = 1; mysql> quit; 导入初始化架构数据 root@zabbix-proxy-active:~# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uproxy -p"proxy@2022" -h10.0.0.101 zabbix_proxy_active 修改zabbix proxy配置文件 root@zabbix-proxy-active:~# vi /etc/zabbix/zabbix_proxy.conf root@zabbix-proxy-active:~# grep -Ev "^#|^$" /etc/zabbix/zabbix_proxy.conf ProxyMode=0 #0为主动也是默认值,1为被动 Server=10.0.0.100 #zabbix server服务器的地址或主机名 Hostname=zhang-proxy-active #代理服务器的名称,需要和zabbix server添加代理时的proxy名称要一致 ListenPort=10051 #zabbix proxy监听的端口 LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 EnableRemoteCommands=1 #允许zabbix server执行远程命令 PidFile=/run/zabbix/zabbix_proxy.pid SocketDir=/run/zabbix DBHost=10.0.0.101 #数据库服务器地址 DBName=zabbix_proxy_active #使用数据库名称 DBUser=proxy #连接数据库的用户名称 DBPassword=proxy@2022 #连接数据库用户的密码 DBPort=3306 #数据库端口 ProxyLocalBuffer=720 #已经提交到zabbix server的数据保留时间 ProxyOfflineBuffer=720 #未提交到zabbix server的数据保留时间 HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,可设置范围0-3600秒,在被动模式不使用 ConfigFrequency=5 #间隔多少秒从zabbix server获取监控项信息 DataSenderFrequency=5 #数据发送时间间隔,默认时间是1秒,可设置范围1-3600秒,在被动模式不使用 StartPollers=20 #启动的数据采集器数量 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log CacheSize=2G #保存监控项而占用的最大内存 HistoryCacheSize=2G #保存监控历史数据占用的最大内存 HistoryIndexCacheSize=128M #历史索引缓存的大小 Timeout=30 #监控项超时时间,单位是秒 ExternalScripts=/usr/lib/zabbix/externalscripts FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6 LogSlowQueries=3000 #单位毫秒,指的是多久的数据库查询会被记录到日志中(慢查询) StatsAllowedIP=127.0.0.1 修改完配置文件后需要重启一下zabbix proxy服务 root@zabbix-proxy-active:~# systemctl restart zabbix-proxy root@zabbix-proxy-active:~# systemctl enable zabbix-proxy4、zabbix-agent1安装zabbix agent及配置
root@zabbix-agent1:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1%2Bfocal_all.deb root@zabbix-agent1:~# dpkg -i zabbix-release_5.0-1+focal_all.deb root@zabbix-agent1:~# sed -i.bak 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix.list root@zabbix-agent1:~# apt update root@zabbix-agent1:~# apt install zabbix-agent root@zabbix-agent1:~# vi /etc/zabbix/zabbix_agentd.conf root@zabbix-agent1:~# grep -Ev "^$|^#" /etc/zabbix/zabbix_agentd.conf PidFile=/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=10.0.0.100,192.168.3.100 ServerActive=192.168.3.100 Hostname=192.168.3.102 Timeout=30 Include=/etc/zabbix/zabbix_agentd.d/*.conf root@zabbix-agent1:~# systemctl restart zabbix-agent.service root@zabbix-agent1:~# systemctl enable zabbix-agent.service5、在zabbix web界面配置主动代理模式
5.1、zabbix web界面添加主动代理
5.2、创建主机使用主动代理并关联监控相关模板
5.3、在zabbix web界面验证监控数据
总结
在实验中会遇到一些坑,如下:
- 需要机器的防火墙和selinux要关了,而且还要将主机的时间都同步。
- 跨网段中间需要用到路由的形式,这里我使用路由的方式就省略了,我是拿了个虚拟机充当路由来把网络打通。
- 出现问题是不要慌,先看看日志,根据日志来解决问题。