zabbix/zabbix-监控.md

212 lines
11 KiB
Markdown
Raw Permalink Normal View History

2025-03-17 13:41:30 +08:00
<h2><center>Zabbix 监控</center></h2>
------
## 一:监控介绍
MRTG使用 SNMP 协议获取主机 CPU、内存、磁盘、网卡流量等数据。
用脚本将获取到的 SNMP 数据存入数据库中,然后再使用一种名为 MRTG 的软件根据获取的数据绘制图表来分析数据的变化。MRTG(Multi Router Traffic Grapher),顾名思义,这款软件最初是设计用于监控网络链路流量负载的。它可以用过 SNMP 获取到设备的流量信息,并根据这些信息绘制成图表并保存为 PNG 格式的图片,再将这些 PNG 图片以HTML 页面的方式显示给用户。
不过MRTG 展示的页面和图表曲线相对简陋,它在一张图片中最多只能绘制两个数据的变化曲线,并且由于是 PNG 格式的静态图片,所以无法针对某一时间进行细化展示。为了解决这个问题,人们又开发了 RRDTOOL 工具。直接使用 RRDTOOL 绘图操作起来很麻烦。同时,现如今的数据中心动辄成百上千的设备,一个个的去提取、绘制、监控显然是不现实的事情。
### 1. Cacti
Cacti 是一套基于 PHP、MySQL、SNMP 及 RRD Tool 开发的监测图形分析工具Cacti 是使用轮询的方式由主服务器向设备发送数据请求来获取设备上状态数据信息的,如果设备不断增多这个轮询的过程就非常的耗时轮询的结果就不能即时的反应设备的状态了。Cacti 监控关注的是对数据的展示,却不关注数据异常后的反馈。如果凌晨 3 点的时候设备的某个数据出现异常,除非监控人员在屏幕前发现这个异常变化,否则是没有任何报警机制能够让我们道出现了异常。
### 2. Nagios
Nagios 是一款开源的免费网络监控报警服务能有效监控Unix、Windows和Linux的主机状态交换机、路由器和防火墙等网络设置打印机、网络投影、网络摄像等设备。在系统或服务状态异常时发出邮件或短信报警第一时间通知运维人员在状态恢复后发出正常的邮件或短信通知。Nagios 有完善的插件功能,可以方便的根据应用服务扩展功能。
Nagios 已经可以支持由数万台服务器或上千台网络设备组成的云技术平台的监控,它可以充分发挥自动化运维技术特点在设备和人力资源减少成本。只是 Nagios 无法将多个相同应用集群的数据集合起来,也不能监控到集群中特殊节点的迁移和恢复。
### 3. Ganglia
Ganglia 是 UC Berkeley 发起的一个开源集群监视项目设计用于测量数以千计的节点。Ganglia 的核心包含 gmond、gmetad 以及一个 Web 前端。主要是用来监控系统性能CPU 、内存、硬盘利用率, I/O 负载、网络流量情况等通过曲线很容易见到每个节点的工作状态对合理调整、分配系统资源提高系统整体性能起到重要作用目前是监控HADOOP 的官方推荐服务。
### 4. Zabbix
Zabbix 是由Alexei Vladishev创建目前由Zabbix SIA在持续开发和支持。
Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。
基于已存储的数据Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的可供公众任意使用。
## 二:监控区别
- nagios图形不是特别好也可以安装图形插件但是也不怎么好看
- nagios一般情况下如果需要图形可以和cacti配合使用
- cacti的监控是轮询监控,效率低图形相对nagios比较好看
- zabbix和nagios因为是并发监控对cpu的要求更高
- zabbix在性能和功能上都强大很多
- zabbix的图形相当漂亮
- 支持多种监控方式 zabbix-agent snmp 等等
- 支持分布式监控,能监控的agent非常多
- zabbix有图形的web配置界面配置简洁
- zabbix支持自动发现功能
## 三:监控框架
![](accents\image-202503160001.png)
## 四zabbix 简介
### 1. 优点
- 开源,无软件成本投入
- Server 对设备性能要求低
- 支持设备多,自带多种监控模板
- 支持分布式集中管理,有自动发现功能,可以实现自动化监控
- 开放式接口,扩展性强,插件编写容易
- 当监控的 item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动 从server 端去下载需要监控的 item 然后取数据上传到 server 端。这种方式对服务器的负载比较小。
- Api 的支持,方便与其他系统结合
### 2. 缺点
需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据据很大,瓶颈主要在数据库。
### 3. zabbix 监控系统监控对象
```shell
数据库: MySQL,MariaDB,Oracle,SQL Server,DB2
应用软件: Nginx,Apache,PHP,Tomcat agent
------------------------------------------------------------
集群: LVS,Keepalived,HAproxy,RHCS,F5
虚拟化: VMware,KVM,XEN agent
操作系统Linux,Unix,Windows性能参数
------------------------------------------------------------
硬件: 服务器,存储,网络设备 IPMI
网络: 网络环境(内网环境,外网环境) SNMP
```
### 4. zabbix 监控方式
被动模式:
相对于agent而言agent, server向agent请求获取配置的各监控项相关的数据agent接收请求、获取数据并响应给server
主动模式:
相对于agent而言agent(active),agent向server请求与自己相关监控项配置主动地将相关的数据发送给server
## 五zabbix 相关组件
### 1. Zabbix Server
Zabbix server 是 agent 程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器
### 2. Zabbix 数据库存储
所有配置信息和 Zabbix 收集到的数据都被存储在数据库中
### 3. Zabbix Web 界面
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分通常(但不一定)跟Zabbix Server运行在同一台物理机器上
### 4. Zabbix Proxy 代理服务器
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分当然Proxy代理服务器可以帮助单台Zabbix Server分担负载压力
### 5. Zabbix Agent 监控代理
Zabbix agents监控代理 部署在监控目标上能够主动监控本地资源和应用程序并将收集到的数据报告给Zabbix Server
## 六Zabbix 常用术语的含义
**1. 主机host**
一台你想监控的网络设备用IP或域名表示
**2. 主机组host group**
主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联
**3. 监控项item**
你想要接收的主机的特定数据,一个度量数据。
**4. 触发器trigger**
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
**5. 事件event**
单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册
**6. 异常problem**
一个处在“异常”状态的触发器
**7. 动作action**
一个对事件做出反应的预定义的操作。
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成
**8. 升级escalation**
一个在动作内执行操作的自定义场景; 发送通知/执行远程命令的序列
**9. 媒介media**
发送告警通知的手段;告警通知的途径
**10. 通知notification**
利用已选择的媒体途径把跟事件相关的信息发送给用户
**11. 远程命令remote command**
一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令
**12. 模板template**
一组可以被应用到一个或多个主机上的实体监控项触发器图形聚合图形应用LLDWeb场景的集合
**13. 应用application**
一组监控项组成的逻辑分组
**14. web 场景web scenario**
利用一个或多个HTTP请求来检查网站的可用性
**15. 前端frontend**
Zabbix提供的web界面
**16. Zabbix server**
Zabbix软件实现监控的核心程序主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知并将数据集中保存
**17. Zabbix agent**
一个部署在监控对象上的,能够主动监控本地资源和应用的程序
Zabbix agent 部署在监控的目标上,主动监测本地的资源和应用(硬件驱动,内存,处理器统计等)
**18. 被动passive和主动active检查**
Zabbix agents 可以执行被动和主动两种检查方式
被动检查passive check 模式中 agent 应答数据请求Zabbix server或者proxy询问agent数据,如CPU 的负载情况,然后 Zabbix agent 回送结果。
主动检查Active checks 处理过程将相对复杂。 Agent 必须首先从 Zabbix sever 索取监控项列表以进行独立处理然后周期性地发送新的值给server。
执行被动或主动检查是通过选择相应的监测项目类型来配置的。item type. Zabbix agent 处理监控项类型有 Zabbix agent 和 Zabbix agent (active)。
**19. Zabbix proxy**
一个帮助 Zabbix Server 收集数据分担Zabbix Server的负载的程序
Zabbix Proxy 是一个可以从一个或多个受监控设备收集监控数据并将信息发送到Zabbix sever的进程基本上是代表 sever工作的。 所有收集的数据都在本地进行缓存,然后传送到 proxy 所属的 Zabbix sever
Zabbix proxy需要使用独立的数据库