第六章·监控系统-zabbix分布式监控

2022-09-26 15:04:34 浏览数 (1)

-曾老湿, 江湖人称曾老大。


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


分布式监控

概述

Zabbix通过Zabbix proxies为IT基础设施提供有效和可用的分布式监控

代理(proxies)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器。


proxy特征

当选择使用/不使用proxy时,必须考虑几个注意事项。 项。

Proxy

轻量级(Lightweight)

Yes

图形界面(GUI)

No

独立工作(Works independently)

Yes

易于维护(Easy maintenance)

Yes

自动生成数据库(Automatic DB creation)1

Yes

本地管理(Local administration)

No

准备嵌入式硬件 (Ready for embedded hardware)

Yes

单向TCP连接(One way TCP connections)

Yes

集中配置(Centralised configuration)

Yes

生成通知(Generates notifications)

No


[1] 自动数据库创建功能仅适用于SQLite。其他数据库需要手动设置


zabbix porxy代理概述

概述

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.

此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。

zabbix proxy 使用场景: 1.监控远程区域设备 2.监控本地网络不稳定区域 3.当 zabbix 监控上千设备时,使用它来减轻 server 的压力 4.简化分布式监控的维护

zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。

proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定。

注意: 1.zabbix proxy 数据库必须和 server 分开,否则数据会被破坏。 2.从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 CacheUpdateFrequency 的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略。

zabbix porxy代理功能

zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述,如下表:

功能

proxy支持(yes/no)

项目(Items)

Zabbix agent checks

Yes

Zabbix agent checks (active)

Yes 1

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

使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址。

zabbix proxy代理企业场景


zabbix proxy分布式场景实践环境规划

服务器功能

服务器外网

服务器内网

zabbix-server

10.0.0.71

172.16.1.71

zabbix-proxy

10.0.0.8

172.16.1.8

zabbix-agent

10.0.0.7

172.16.1.7


安装部署zabbix proxy

代码语言:javascript复制
[root@web01 ~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-proxy-mysql-3.4.15-1.el7.x86_64.rpm

配置zabbix proxy数据库

代码语言:javascript复制
[root@web01 ~]# yum install -y mariadb-server
[root@web01 ~]# systemctl start mariadb
[root@web01 ~]# systemctl enable mariadb
[root@web01 ~]# mysql
#创建数据库
MariaDB [(none)]> create database zabbix_proxy charset utf8;
#创建用户
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@'localhost' identified by '123';

导入数据

代码语言:javascript复制
#查看数据文件
[root@web01 ~]# rpm -ql zabbix-proxy-mysql
/usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz

#导入数据
[root@web01 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz |mysql zabbix_proxy

#查看导入后的数据
[root@web01 ~]# mysql
MariaDB [(none)]> show databases;
MariaDB [zabbix_proxy]> show tables;

修改zabbix proxy配置文件

代码语言:javascript复制
[root@web01 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.71
Hostname=hlj_proxy
DBName=zabbix_proxy
DBHost=localhost
DBUser=zabbix_proxy
DBPassword=123

启动zabbix proxy并加入开机自启

代码语言:javascript复制
[root@web01 ~]# systemctl start zabbix-proxy
[root@web01 ~]# systemctl enable zabbix-proxy
[root@web01 ~]# netstat -lntup
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      82597/zabbix_proxy

配置zabbix agent

代码语言:javascript复制
[root@web02 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.7
ServerActive=172.16.1.7
Hostname=web02

页面配置zabbix proxy

0 人点赞