1、监控原理
1.1、流程解析
1.1.1、基本流程
根据我们之前 数据流程和软件架构图 的学习来看,zabbix的监控流程默认情况下,应该是这样的一个流程:
准备工作 - 数据采集 - 数据获取 - 数据存储 - 信息分析处理 - 日志记录 - 数据展示
1.2、事故展示

1.3、内容梳理
1、准备工作
- 配置zabbix服务端和客户端并正常启动
- zabbix server端存在大量的监控脚本文件,加载自动监控功能
2、数据采集
- 客户端的zabbix_agentd以守护进程的方式来获取当前节点的所有默认监控条目
3、数据获取
- zabbix server借助于类似zabbix_get的机制通过本机的10051端口连接客户端的10050端口,根据指定的监控条目项获取对应的监控数据
4、数据存储
- zabbix server 将获取到的数据存在数据库的对应数据表中
5、信息处理
- 根据zabbix server加载的大量监控功能指标,对数据进行合理的分析,并按照对应的操作进行处理
6、日志记录
- 信息处理完毕后,在日志文件中进行记录
7、数据展示
- zabbix 的web界面从数据库中加载所有的server属性以及监控数据,根据配置在web界面上展示
1.4、术语解析
1.4.1、监控对象
Host (主机)
- 要监控的网络设备、主机节点等,可由IP、主机名或域名称来指定
Host Group (主机组)
- 为了方面批量管理大量Host,我们会通过主机组的方式设置一些通用的权限设置
Item (监控项)
- 一个特定监控指标的相关数据,这些数据来自于被监控对象,它是zabbix进行数据收集的核心。
Application(应用)
- 一组item监控项的合理组合。
Media(媒介)
- 一般表示消息通知的通知渠道,如Email、Jabber或SMS等
Remote command(远程命令)
- 预定义的命令,可在被监控主机处于某个特定条件下时自动执行
User (用户)
- zabbix的资源操作用户。
User Group(用户组)
- 为了方面批量管理大量User,我们会通过用户组的方式设置一些通用的资源操作权限。
Graph (图形)
- 为了方便对监控数据进行分析,一般会将监控数据以各种各样的形式在图中进行展示。
Screen (屏幕)
- 为了集中管理和查看大量的Graph,我们会将有关联的Graph放在一个Screen中集中展示。
Map (拓扑图)
- 当主机非常多的时候,为了方便分析主机间的网络拓扑关系,我们会将多台主机的数据流转在Map中展示。
1.4.2、监控动作
Trigger (触发器)
- 表达式,用于对获取到的监控数据进行综合性的分析,然后根据设定好的阈值进行评判,OK or Problem。
Event (事件)
- 每一次监控对象的Trigger动作都是一个事件,例如触发器的状态转变,节点的上下线等。
Action (动作)
- 指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作)
Notification (通知)
- 通过选定的媒介向用户发送的有关某事件的信息(可灵活定制mail发送程序)
Escalation(报警升级)
- 事件发生后,对应的Action没有达到目标,那么自动触发更严厉有效的动作的过程,比如越级上报。
Template (模板)
- 用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、application等。
2、实践流程说明
2.1、术语梳理解析
1、准备工作
- 配置zabbix服务端和客户端并正常启动
- 使用User对象登录到Zabbix的web界面,User Group的赋予User特定的资源操作权限。
- 监控对象服务是正常
2、数据采集
- 在web界面上创建 Host资源,实现服务端于被监控节点的网络连接
- 在Web界面上创建 Host Group 资源,对特定应用场景的Host进行批量管理
3、数据获取
- 在被监控节点上创建特有的item资源条目
- 在Web界面上的指定Host资源中,创建特定的 Item 监控条目
4、数据存储
- zabbix server 将获取到的数据存在数据库的对应数据表中,这一步我们不用动。
5、信息处理
- 在Web界面上创建Template对象整合现有的所有Trigger对象
- 在Web界面上创建单独的Trigger资源,然后整合到现有的Template对象中
- 当被监控节点的监控数据超出设定的阈值就会被Trigger检测出来并执行Event
- 在Web界面上做好Media对象,便于后续的通信机制正常运行
- 根据与设定好的动作执行后续Action,同时做大量的通知机制Notification|Escalation等
6、日志记录
- 信息处理完毕后,在日志文件中进行记录,这一步不用动。
7、数据展示
- 在Web界面上创建Graph对象,将获取到的所有监控数据进行展示
- 在Web界面上创建Screen对象,将大量的Graph对象集中展示
- 在Web界面上创建Map对象,将主机节点间的通信数据在网络拓扑图中详细展示。
- 在web界面上创建Dashboard,综合展示所有的图形
2.2、实践原则
如果要做zabbix的监控数据,我们必须遵循以下实践操作原则:
1、必须保证zabbix server 和 zabbix agent 服务稳定运行
2、在Zabbix server的web界面上依次创建 Host 和Host、Group资源对象,这两个顺序可以颠倒。
3、在zabbix agent主机上创建能够正常运行的item条目,而且能够被zabbix server上被zabbix_get调用
4、在zabbix server的web界面上,进入到Host界面关联指定的Item对象
5、在zabbix server的web界面上,为指定的Host主机关联Template或者Trigger对象
6、在zabbix server的web界面上,依次创建 Graph对象、Screen对象、Map对象等。
7、有需要的情况下,在zabbix server的web界面上,配置Media对象,并关联到对应的Trigger上。
注意事项: 这六原则是有前后依赖关系的,只有保证前面原则没有问题的基础上,才能对后面的原则进行实践。
3、总结
1、流程解析
准备工作 - 数据采集 - 数据获取 - 数据存储 - 信息处理 - 日志记录 - 数据展示
2、流程梳理
监控对象 - Host|Host Group|Item|Application|Media|command|User|User Group|Graph等
监控动作 - Trigger|Event|Action|Notification|Escalation|Template