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、查询画图

 

posted @ 2023-05-30 09:21  小粉优化大师  阅读(133)  评论(0编辑  收藏  举报