一个完整的监控系统所需指标:
1. 采样:周期性的获取某个被监测指标的相关数据
2. 存储:将采集到的数据存储在指定的存储系统中,Zabbix 默认是 MySQL
对于数据的存储可分为两大类:
历史数据:可理解为过去某一时间点的数据
趋势数据:可理解为过去某一段时间的数据
3. 展示:采集完数据后,为了使数据能更直观的展现在用户面前,可将采集到的数据做二次处理,做成各类图形。Zabbix 就是使用的 PHP 程序将采集的数据通过 Web GUI 直观的展示给用户。
4. 报警:当监控的指标出现异常时需要监控系统能自动的发出告警信息,甚至在出现报警后能自动完成修复。
Zabbix 支持的数据采集协议:
1.SNMP:(Simple Network Management Protocol),这是一个非常古老的且通用的监控协议,几乎任何设备都支持用此方式进行系统监控。
2.Agent:在被监控端安装专门的监控程序,将数据采集后通过 Agent 发送至 Server。
3.IPMI:智能平台管理接口。可在常用的服务器上看到类似以太网口的接口。
4.JMX:Java Management Extensions
Zabbix 重要组件说明:
1.Zabbix Web GUI:提供 Web 界面;
2.Zabbix Database:提供数据存储功能,专用于存储配置信息,以及采集到的数据;
3.Zabbix Server:负责接收 agent 发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;
4.Zabbix Agent:部署在被监控的主机上,负责收集主机本地数据如 cpu、内存、数据库等数据发往 server 端或 proxy 端;
5.Zabbix Proxy:可选组件 当被监控节点较多时,用于减轻 Server 压力的组件,也用于分布式监控系统。由 Proxy 接收数据后统一发送至 Server;
6. web interface:zabbix 的 GUI 接口;
Zabbix 架构图:

Zabbix 逻辑图:

Zabbix 逻辑组件:
- 主机组(host groups)
- 主机(hosts)
- 应用(application)
- 监控项(items)
- 触发器(triggers)
- 事件(events)
- 动作(actions):条件(conditions)和操作(operations)
- 媒介(media):发送通知的通道,短信,邮件等
- 通知(notiflcations)
- 远程命令(remote command)
- 报警升级(escalation)
- 模板(template)
- 图形(graph)
- 屏幕(screens)
- 幻灯(slide show)
Zabbix Server 启动后都有那些进程?

一个监控系统运行的大概的流程是这样的:
agentd 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到 zabbix server 端,zabbix server 将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图。这里 agentd 收集数据分为主动和被动两种模式:
主动:agent 请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给 server/proxy
被动:server 向 agent 请求获取监控项的数据,agent 返回数据。