You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
7.7 KiB

### 基于Zabbix 6.0监控系统实现智能运维演示系统
该项目采用Zabbix 6.0对主机和服务器进行监控并根据监控数据设置触发器从而实现异常检测并设立多种报警方式包括QQ邮箱报警、企业微信报警和钉钉报警等多种方式。从监控到异常检测告警针对压缩后告警进行根因分析并结合知识图谱开源模型指导行动和修复故障。
告警时项目基于CPU负荷、内存使用、磁盘使用、网络状况、端口和日志相关指标设立下列触发器包括
1. **阈值警报触发器:** 触发器用于监控上述指标的值一旦该值超过或低于设定的阈值就触发警报。例如CPU使用率超过90%。
2. **异常检测触发器:** 触发器用于检测异常情况,如服务器离线、服务崩溃等,一旦发现异常,即可触发警报。
3. **性能指标监控触发器:** 触发器用于监控性能指标,如响应时间、延迟等,以确保系统处于良好状态。
4. **多个条件组合触发器:** 触发器基于多个监控项的组合条件。例如当CPU使用率超过90%并且内存使用率超过80%时触发警报。
5. **持续监控触发器:** 触发器通常有一个延迟时间,只有在一定时间范围内满足条件才会触发警报,以避免误报。
处理异常时,项目根据大量故障及其对应原因的带标签数据,运用知识图谱强大的逻推理能力,实现对异常原因的分析,并进一步生成告警信息,辅助运维人员对系统实时不间断调控。
#### Zabbix介绍
Zabbix是一款开源的网络监控和报警系统用于监视各种网络设备、服务器和应用程序的健康状态和性能。它能够收集各种指标和数据如CPU使用率、内存使用率、网络流量等然后将这些数据用于生成报表、图表和警报以帮助管理员和运维团队及时发现和解决问题。
Zabbix具有以下主要特点
1. **多种监控方式:** Zabbix支持多种监控方式包括代理式、被动式和主动式监控能够适应不同网络架构和需求。
2. **灵活的报警系统:** Zabbix可以根据预设的阈值和条件生成报警管理员可以通过电子邮件、短信等方式接收警报。
3. **数据收集和图表展示:** Zabbix能够收集大量的性能指标和数据然后将这些数据以图表和报表的形式展示帮助管理员分析趋势和问题。
4. **自定义监控项:** 用户可以根据需要定义自己的监控项,以监视特定的应用程序、服务或指标。
5. **自动发现功能:** Zabbix可以自动发现网络上的设备和服务简化了添加新设备到监控系统中的过程。
6. **可扩展性:** Zabbix支持插件和扩展允许用户根据需要定制和扩展功能。
Zabbix 由几个主要的功能组件组成,分别是:
1. **Zabbix Server**是整个监控系统的核心组件。它负责收集、存储、处理和显示监控数据。以下是Zabbix Server的主要功能
- 数据收集和存储: Zabbix Server通过与Zabbix Agents、SNMP设备和其他数据源通信收集各种性能指标和数据如CPU使用率、内存使用率、网络流量等。
- 数据处理和分析: 收集的数据被Zabbix Server分析和处理以便生成图表、报表、趋势和警报。管理员可以使用这些数据来监视系统的健康状态和性能。
- 警报生成和管理: 基于预定义的阈值和条件Zabbix Server可以生成警报通知管理员和运维人员存在问题。这可以通过电子邮件、短信等多种方式实现。
- 图表和可视化: Zabbix Server提供了可视化工具管理员可以创建自定义图表和报表以便更好地理解和分析监控数据。
- 自动发现和管理: Zabbix Server支持自动发现网络设备和服务从而简化了添加新设备到监控系统中的流程。
2. **Zabbix Agent** Zabbix Agent是安装在需要监控的目标主机上的代理程序。它负责收集本地性能数据并将其发送给Zabbix Server。以下是Zabbix Agent的主要功能
- 数据采集: Zabbix Agent在本地收集主机的性能数据如CPU利用率、内存使用率、磁盘空间等。
- 数据传输: 收集到的数据通过Zabbix Agent传输到Zabbix Server供后者分析和处理。
- 低资源消耗: Zabbix Agent被设计为低资源消耗对目标主机的影响较小。
- 主动和被动监控: Zabbix Agent支持主动模式和被动模式。在主动模式下Agent定期向Server发送数据在被动模式下Server请求Agent发送数据。
- 自定义监控项: 可以在Zabbix Agent上配置自定义的监控项以满足特定的监控需求。
3. **Zabbix proxy**Zabbix Proxy是Zabbix监控系统中的另一个重要组件用于增强系统的性能和扩展性。如果网络被分割成多个不同的子网每个子网都有一个Proxy可以收集数据并将其汇总到中央Server。与Zabbix server相比
* **数据处理:** Zabbix Proxy负责缓存和汇总数据而Zabbix Server负责数据的分析、处理和显示。Proxy不执行警报生成等高级任务这些任务由Zabbix Server处理。
* **位置和作用:** Zabbix Proxy通常放置在分布式网络的边缘负责从监控目标收集数据并将其传输到Zabbix Server。Zabbix Server则集中管理整个监控系统。
* **数据传输:** Proxy使用主动模式将数据发送给Server而Server使用被动模式接收来自Proxy的数据请求。这种通信方式允许Proxy在网络隔离或安全性环境中工作。
* **功能:** Zabbix Server具有更强大的功能包括警报、报表、可视化等。Proxy主要负责数据收集和转发。
* **扩展性:** Zabbix Proxy允许在大规模和分布式环境中进行扩展通过将任务分发到多个Proxy来提高性能。Zabbix Server则是监控系统的核心不同的Proxy可以协同工作以支持更大规模的监控。
#### 演示系统简介
以监控nginx服务的终止和重启并向**企业微信**提出告警为例
1. 下图可以看到nginx服务终止并在运维人员恢复后重启的过程
![image](./Images/微信图片_20230831210000.png)
2. 下图可以看到企业微信收到了nginx服务终止的告警以及运维人员恢复后的提示
<img src="./Images/微信图片_20230831203416.jpg" alt="image" style="zoom:25%;" />
<img src="./Images/微信图片_20230831203414.jpg" alt="基于zabbix的智能运维实验 (educoder.net)" style="zoom:25%;" />
检测的CPU使用率如下超过10%会告警。受篇幅原因不展示告警信息:
![基于zabbix的智能运维实验 (educoder.net)](./Images/微信图片_20230831205909.png)
检测的网络带宽速率如下超过400bps会告警。受篇幅原因不展示告警信息
![基于zabbix的智能运维实验 (educoder.net)](./Images/微信图片_20230831205932.png)
检测的内存使用率如下超过50%会告警。受篇幅原因不展示告警信息:
![基于zabbix的智能运维实验 (educoder.net)](./Images/微信图片_20230831210855.png)
检测的硬盘使用率如下超过50%会告警。受篇幅原因不展示告警信息:
<img src="./Images/微信图片_20230831210355.png" alt="基于zabbix的智能运维实验 (educoder.net)" style="zoom: 80%;" />
#### 在小组实验过程中,有很多有意思的现象:
1. Zabbix Server与Zabbix Agent在不同网段在Server端连接时会因为网络波动造成时而连接时而连接不了的情况容易形成波动较大数据。
2. VMware虚拟机网段与主机网段不一致但可以通过主机IP地址进行不同地址Zabbix Server与Zabbix Agent进行通信。