【运维知识进阶篇】zabbix5.0稳定版详解7(zabbix分布式监控:使用场景+功能详解+快速部署+基本使用)

如果你有几百上千台客户端的数据需要上报给zabbix服务端,即便是你做了主动注册,监控项目主动式,那服务端压力还是会很大,所以我们可以考虑zabbix分布式监控。

zabbix proxy可以代替zabbix server收集性能和可用性数据,然后把数据汇报给zabbix server,并且在一定程序分担zabbix server的压力。此外,当所有的agents和proxies报告给一个zabbix server并且所有的数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单的方法。

目录

zabbix使用场景

zabbix功能详解

zabbix proxy部署

1、安装zabbix proxy代理,导入proxy数据库

2、修改zabbix proxy配置文件

3、启动zabbix proxy代理

4、配置客户端指向zabbix proxy

5、server端添加主机


zabbix使用场景

1、监控远程区域设备

2、监控本地网络不稳定区域

3、当zabbix监控上千台设备时,用它减轻server的压力

4、简化分布式监控的维护

zabbix功能详解

zabbix proxy是一个数据收集器,它不计算触发器、不处理事件,不发送报警,具体功能如下表

功能/项目 proxy支持(yes/no)
Zabbix agent checks

yes

Zabbix agent checks(active) yes
Simple checks yes
Trapper items yes
SNMP checks yes
SNMP traps yes
IPMI checks yes
JMX checks yes
日志文件监控(Log file monitoring) yes
内部检查(Internal checks) yes
SSH checks yes
Telnet checks yes
外部检查(External checks) yes
内置web监控(Built-in web monitoring) yes
网络发现(Network discovery) yes
自动发现(Low-level discovery) yes
触发器计算(Calculating triggers) no
处理事件(Processing events) no
发送报警(Sending alerts) no
远程命令(Remote commands) no
以下是Zabbix代理检查的不同类型的解释:

1. Zabbix代理检查(主动检查):Zabbix代理主动从Zabbix服务器获取配置,并执行指定的检查。它通过建立到服务器的连接,上传收集到的数据,并接收来自服务器的命令。

2. 简单检查:这是一种基本的检查类型,用于收集主机上的指标数据。代理程序会定期对指定的参数进行检查,并将结果报告给Zabbix服务器。

3. Trapper项:Trapper项允许用户将数据主动推送到Zabbix服务器。这些项不同于简单检查项,因为它们不是由代理程序主动发送的,而是由用户定义的脚本、应用程序或其他外部实体推送到代理程序,然后由代理程序发送给服务器。

4. SNMP检查:SNMP(Simple Network Management Protocol)检查是通过使用SNMP协议检索设备的信息和指标。Zabbix代理可以执行SNMP检查来监控网络设备、服务器等。

5. SNMP陷阱:SNMP陷阱是由网络设备主动发送的通知,用于报告设备状态的变化,例如故障、警报等。Zabbix代理可以接收和处理这些SNMP陷阱,并将其转发给Zabbix服务器进行相应的处理和记录。

6. IPMI检查:IPMI(Intelligent Platform Management Interface)检查用于监控和管理服务器硬件的接口。Zabbix代理可以执行IPMI检查来收集服务器的硬件数据,例如温度、风扇速度等。

7. JMX检查:JMX(Java Management Extensions)检查用于监控和管理Java应用程序。Zabbix代理可以执行JMX检查,通过连接到Java应用程序的JMX接口,收集和报告应用程序的性能和状态数据。

注意:zabbix proxy仅仅需要一条tcp链接到zabbix server,所以需要在zabbix server上添加一条规则即可。

zabbix proxy数据库必须和server分开,否则数据会被破坏。

zabbix proxy部署

将172.16.1.7 作为zabbix proxy服务端

1、安装zabbix proxy代理,导入proxy数据库

# 配置仓库
[root@Web01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@Web01 ~]# yum clean all

# 安装proxy代理 数据库
[root@Web01 ~]# yum -y install zabbix-proxy-mysql
[root@Web01 ~]# yum -y install mariadb-server
[root@Web01 ~]# systemctl enable --now mariadb
[root@Web01 ~]# mysql
...
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
...
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
...

# 将Zabbix代理的MySQL数据库架构文件(schema.sql.gz)导入到名为zabbix的MySQL数据库中
# 创建和初始化Zabbix代理所需的数据库表和结构
[root@Web01 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.36/schema.sql.gz | mysql -uzabbix -pzabbix zabbix

# 检查数据库导入是否正常
[root@Web01 ~]# mysql -uroot -e "use zabbix;show tables;"   
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
| application_template       |
| applications               |
......

2、修改zabbix proxy配置文件

[root@Web01 ~]# egrep '^[DH]|^Server' /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.71
Hostname=sz_proxy
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

3、启动zabbix proxy代理

[root@Web01 ~]# systemctl start zabbix-proxy.service
[root@Web01 ~]# netstat -tnulp | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      33809/zabbix_proxy  
tcp6       0      0 :::10051                :::*                    LISTEN      33809/zabbix_proxy  

4、配置客户端指向zabbix proxy

172.16.1.7 和 172.16.1.8 作为客户端测试

[root@Web01 ~]# egrep '^Server|^Hostname' /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.7
ServerActive=172.16.1.7
Hostname=Web01
[root@Web01 ~]# systemctl restart zabbix-agent.service

[root@Web02 ~]# egrep '^Server|^Hostname' /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.7
ServerActive=172.16.1.7
Hostname=Web02
[root@Web02 ~]# systemctl restart zabbix-agent.service

5、server端添加主机

清空原监控客户端,停用自动注册,自动发现动作

添加agent代理程序

870f406397d34287b9af5fdfaa024993.png3d8b57a6053042c4b0052d6539851e42.png

基于代理添加Web01主机

c7826fdbe4474726add0556290e99e81.png

a94c63c423974670be3060d8bb975895.png

Web02主机操作与Web01一致

e166c228221144898d9f24aab60df102.png

cceb8408ac2849a8818bd1ac49d47426.png

查看主机列表,均已添加完成,ZBX可用性还是灰色 

0f33da02ca8b44878e662a24ec86005f.png

但是我们的数据可以顺利拿到,并且是主动式

5c7bac36f4f440db9fec189f6993dc56.png

cf823e0f4d3f408c9c29652b5e93e067.png

上面的操作主机是我手动添加的,用自动注册,自动发现也是可以的,在配置动作的时候选择相应的触发条件即可,里面有agent代理程序的类型。

bf9a3967530b41a4b7c69d6a97f2f573.png


我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

猜你喜欢

转载自blog.csdn.net/qq_37510195/article/details/131452930