什么是zabbix呢?
zabbix是一个基于web界面的提供分布式系统监控的企业级开源解决方法,zabbix能监视各种网络参数,保证服务器系统安全稳定地运行,并提供灵活的通知机制以让SA快速定位并解决存在的各种问题。
优点
在《曝光》这本书 里面是这样说的:
- 支持自动发现服务器和网络设备
- 支持底层自动发现
- 分布式的监控系统和集中式web管理
- 支持主动监控和被动监控模式
- 服务器支持多种操作系统
- agent客户端支持多种操作系统
- 基于SNMP、IPMI接口,zabbix agent方式监控客户端
- 基于web的管理方法
- 高水平的业务视图监控资源,支持日志审计、资产管理等功能
- 支持高水平的API二次开发、脚本监控、自key开发,自动化运维整合调用
我感觉很不错的就是:
1、能自己定义一个时间间隔,通过IPMI、agent、SNMP等协议去采集信息
2、能及时将数据放进数据库存储
3、能够进行数据绘图,多种图形展示出来
4、支持微信报警、邮件报警这些。只不过微信报警需要进行企业认证,所以我现在没用过。
相关组件
这图的话,根据我的理解来画的,大概是这样:
最后通过web来对进行管理。
说明:
- zabbix server:核心组件,对数据进行处理,负责执行数据的主动轮询和被动获取,计算触发器条件,向用户发送通知。它是zabbix agent和proxy报告系统可用性和完整性的核心组件。它自身可以通过简单服务远程检查网络服务(像web服务器和邮件服务器),它是所有配置、统计和操作数据的中央存储中心,也是监控系统的告警中心。
- database:存储相关数据信息和配置信息
- proxy:在分布式监控中,代理server,将获得的数据发送到server端
- agent:收集本地信息,将数据发送到server或者proxy
- web:提供一个GUI的管理平台
核心进程
- 核心进程:是服务端的守护进程,其它进程的最终数据最后都提交给他
- 客户端的守护进程,负责收集客户端的相关信息
- 数据获取(get)
- 数据发送(sender)
- 分布式代理守护进程,分布式架构需要(proxy)
监控流程
- 首先我们将监控服务部署在客户端,定期收集相关信息返回给server端,当server端收到数据以后,将数据存储在数据库上,并在web上生成相应的图表信息,监控管理人员通过web来实时查看。
- 当zabbix监控某个项目的时候,我们设置一个阀值,一旦某些所监控的指标达到或者是超过的时候,监控机制就会启动报警或者是其他措施。
监控方式
- agent:基于自身zabbix_agent客户端插件监控OS的状态
- 可以通过简单网络管理协议监控网络设备,通过设定SNMP的参数将相关监控数据传送至服务器端
- 智能平台管理接口即主要应用于设备的物理特性。最大的优点就是不管是否开关机,只要通电就可以监控
两种模式
-
主动模式
agent主动请求server端获取主动的监控列表,并主动将监控项内需要检测的数据提交给server或者proxy。 -
被动模式
server向 agent请求监控项目的数据,agent收到后发送相应的请求数据。
zabbix监控客户端默认为被动模式,关闭被动模式的方法是在配置文件中加入*startagents=0 *。
注:关于安装的话在下一章