zabbix-分布式监控
1、基础知识
1.1、什么是分布式
所谓的分布式,其实指的是,多台分布在不同位置的zabbix主机,通过 间接模式 合理的组合在一起,实现监控数据的统一管理方式。
适用场景:多机房、多区域、多网络等
1.2、zabbix原理图
1.3、简介
Zabbix 代理是一种可以代表 Zabbix 服务器从终端设备收集性能和可用性数据的服务。这样,代理可以自己承担一些收集数据的负载甚至在某种程度上替代 Zabbix 服务器。
1.4、proxy模式
1.4.1、原理图
1.4.2、说明
proxy 可以有多个,每个proxy收集并保存其可以连接的agent,然后将数据统一发送给给zabbix server进行展示。 其实,我们可以将 proxy 理解为一个精简版的zabbix server。
参考资料:https://www.zabbix.com/documentation/current/zh/manual/distributed_monitoring/proxies
1.5、架构图
对于一些特殊场景,比如被防火墙控制或者普通通信不可达的位置,我们也可以使用 Zabbix 代理实现更大范围的资源监控措施。
2、环境安装
2.1、配置安装仓库
2.2、安装数据库mariadb
2.2.1、安装软件
apt -y install mariadb-server
2.2.2、启动服务
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
2.2.3、基本安全定制
mysql_secure_installation
2.3、安装zabbix
2.3.1、安装zabbix-server
apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts
zabbix_server -V
2.3.2、安装zabbix-proxy
apt install -y zabbix-proxy-mysql
zabbix_proxy -V
2.4、数据库配置
2.4.1、创建数据库和登陆帐号
# 连接数据库 mysql -uroot -p # 数据库配置 create database zabbix_proxy character set utf8 collate utf8_bin; grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost' identified by 'zabbix'; grant all privileges on zabbix_proxy.* to 'zabbix'@'%' identified by 'zabbix'; flush privileges; quit;
2.4.2、导入数据库
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql zabbix_proxy --default-character-set=utf8mb4 -uzabbix -pzabbix mysql -uzabbix -pzabbix -hlocalhost -e 'use zabbix_proxy;show tables;'
2.5、编辑zabbix proxy配置文件【被动模式】
2.5.1、配置
# grep -Ev '^$|^#' /etc/zabbix/zabbix_proxy.conf ProxyMode=1 # 默认是主动模式,我们先使用被动模式 Server=127.0.0.1,192.168.10.21 # zabbix server地址 Hostname=Zabbix proxy LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 PidFile=/run/zabbix/zabbix_proxy.pid SocketDir=/run/zabbix DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbix ProxyConfigFrequency=5 # ConfigFrequency 设定代理以秒为单位从 Zabbix 服务器检索配置数据的频率,默认3600 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1
2.5.2、重启服务
systemctl restart zabbix-proxy
systemctl enable zabbix-proxy
2.5.3、查看启动日志
# tail -f /var/log/zabbix/zabbix_proxy.log 39239:20230529:131225.724 proxy #16 started [task manager #1] 39240:20230529:131225.725 proxy #17 started [poller #1] 39242:20230529:131225.737 proxy #18 started [poller #2] 39243:20230529:131225.752 proxy #19 started [poller #3] 39244:20230529:131225.767 proxy #20 started [poller #4] 39245:20230529:131225.775 proxy #21 started [poller #5] 39246:20230529:131225.787 proxy #22 started [unreachable poller #1] 39247:20230529:131225.791 proxy #23 started [icmp pinger #1] 39248:20230529:131225.799 proxy #24 started [availability manager #1] 39250:20230529:131225.808 proxy #25 started [odbc poller #1]
2.6、配置zabbix-agent
2.6.1、添加接收数据的服务端主机,增加proxy主机地址
# vi /etc/zabbix/zabbix_agentd.conf ... Server=127.0.0.1,192.168.10.26 ...
# 指向zabbix proxy地址
2.6.2、重启服务
systemctl restart zabbix-agent.service
2.7、zabbix server 主机配置
2.7.1、配置代理服务器的基本信息同步配置
# vim /etc/zabbix/zabbix_server.conf StartProxyPollers=10 # 启动多少进程与代理进行通信 ProxyConfigFrequency=5 # 被动模式下,server多长时间与proxy同步一次信息 ProxyDataFrequency=5 # 被动模式下,server多长时间与proxy获取一次数据
2.7.2、重启服务
systemctl restart zabbix-server.service
2.8、zabbix server 增加zabbix proxy
2.8.1、创建proxy
2.8.2、配置proxy信息
2.8.3、查询增加状态
2.9、添加监控主机的时候使用proxy模式
2.9.1、增加主机
2.9.2、查询状态
2.10、编辑zabbix proxy配置文件【主动模式】
2.10.1、编辑
# vi /etc/zabbix/zabbix_proxy.conf ProxyMode=0 Server=192.168.10.21
StatsAllowedIP=127.0.0.1,192.168.10.21 # 这个配置zabbix server IP,允许过来采集数据
2.10.2、zabbix server 修改proxy代理程序模式
2.10.3、查询监控状态
3、加密实践
3.1、简介
Zabbix 使用传输层安全 (TLS) 协议 v.1.2 支持 Zabbix 服务器和代理之间的加密通信。 您可以使用基于证书和基于预共享密钥的加密 (PSK),我们这里使用 PSK来进行实践。
3.2、生成秘钥
openssl rand -hex 32 > /etc/zabbix/zabbix_proxy.psk # cat /etc/zabbix/zabbix_proxy.psk b8564cac2436b826ed8a649fea928a979132b5c60f89bc9fb05501323521194a
3.3、配置秘钥【zabbix-proxy】
3.3.1、修改权限
chown zabbix:zabbix /etc/zabbix/zabbix_proxy.psk
chmod 644 /etc/zabbix/zabbix_proxy.psk
3.3.2、zabbix_proxy.conf配置
# cat /etc/zabbix/zabbix_proxy.conf | grep -Ev '^$|^#' ProxyMode=0 Server=192.168.10.21 # zabbix server Hostname=Zabbix Proxy LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 PidFile=/run/zabbix/zabbix_proxy.pid SocketDir=/run/zabbix DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbix ProxyConfigFrequency=5 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1,192.168.10.21 # zabbix server TLSConnect=psk TLSAccept=psk TLSPSKIdentity=ZBX-PSK-01 TLSPSKFile=/etc/zabbix/zabbix_proxy.psk
3.3.3、重启服务
systemctl restart zabbix-proxy
3.4、zabbix server 修改代理设置
3.5、查看监控状态
3.5.1、查询proxy状态
3.5.2、查询画图