1、zabbix介绍
- Zabbix 能监控各种网络参数,保证服务器系统的安全运行;
- 并提供灵活的通知机制以让系统管理员快速定位、解决存在的各种问题;
- 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 主要有以下几个功能组件: (1)zabbix server:zabbix的核心组件,agent 向其报告可用性、系统完整性信息和统计信息。server也是存储所有配置信息、统计信息和操作信息的核心存储库 (2)数据库:数据存储 (3)zabbix web:提供web界面 (4)zabbix proxy:当被监控节点较多时,用于分担Server压力的组件,也用于分布式监控系统。由Proxy接收数据后统一发送至Server(可选组件) (5)zabbix agent:部署在被监控主机上,用于采集本地数据,并将数据发送到zabbix server (6)zabbix get:在server端测试是否可以从agent拉取数据(可选组件,用于测试数据) (7)zabbix sender:在agent端测试是否可以向server发送数据(可选组件,用于测试数据)
2、zabbix工作原理
agent需要安装到被监控的主机上(除了agent,zabbix还支持其他数据采集方式),它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图
2.1 数据收集
周期性的获取某个被监测指标的相关数据
zabbix数据采集的方式:
(1)agent:被监控端安装zabbix agent,agent采集被监控端数据发送给server,监控对象为OS; agent收集数据分为主动模式和被动模式:
- 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
- 被动:erver向agent请求获取监控项的数据,agent返回数据(zabbix默认被动模式)
(2)snmp:简单网络管理协议,监控对象主要为网络设备;
- 通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件往往都支持SNMP协议,
- SNMP是一种比较久远的、通行的协议,大部分网络设备都支持这种协议,
- 其实SNMP协议的工作方式也可以理解为master/agent的工作方式,只不过是在这些设备中内置了SNMP的agent而已,所以,大部分网络设备都支持这种协议;
(3)IPMI:智能平台管理接口,用于硬件监控;监控对象主要为服务器,监控项为服务器的物理特征,比如电压、温度、风扇、电源等;
(4)JMX:Java Management Extensions,监控Java应用。
2.2 数据存储
将采集到的数据存储到指定的存储系统中,zabbix一般是mysql,可以为postgresql,es等等 存储的数据包括配置信息和采集的监控数据,监控数据包括:
(1)历史数据:过去某一时间点的数据
(2)趋势数据:过去某一段时间的数据
2.3 数据展示
采集完数据后,为了使数据能更直观的展现在用户面前,可将采集到的数据做二次处理,做成各类图形。Zabbix就是使用的PHP程序将采集的数据通过Web GUI直观的展示给用户,也可以通过接入grafana的方式做数据展示
2.4 监控告警
当监控的指标(监控项)出现异常时需要监控系统能自动的发出告警信息,甚至在出现报警后能自动完成修复
3、zabbix基础概念
- 主机(host):监控节点,由IP或DNS名称指定;
- 主机群组(host group):主机的集合,可以包含主机和模板,同一群组内的主机和模板不能相互链接,主机组通常在给用户或用户组指派监控权限时使用;
- 模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机;
- 监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;
- 触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";
- 应用集(application):一组item的集合;
- 事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;
- 动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;
- 报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;
- 媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;
- 通知(notification):通过选定的媒介向用户发送的有关某事件的信息;
- 远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;
- web场景(web scennario):用于检测web站点可用性的一个活多个HTTP请求;
















