1. Zabbix是什么
Zabbix是一款企业级的分布式开源监控方案。能够监控服务器,网络设备,应用程序等对象。所有的报告、统计信息和配置参数都可以通过Web前端页面访问。
2. Zabbix功能
数据收集
- 可用性和性能检查
- 支持SNMP(包括主动轮询和被动获取),IPMI,JMX,VMware监控
- 自定义检查
- 按照自定义的间隔收集需要的数据
- 通过server/proxy+agents来执行
灵活的阈值定义
- 可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值
高度可配置化的告警 - 可根据递增机制,接收方和媒介类型自定义发送告警通知
- 使用宏变量可以使告警通知更加高效有用
- 自动相应动作可包含远程命令
实时图表绘制
- 使用内置图表绘制功能可以将监控项的内容实时绘制成图表
Web监控功能
- Zabbix可以追踪模拟鼠标在Web网站上的点击操作,来检查Web的功能和响应时间
丰富的可视化选项
- 支持创建自定义的图表,一个试图集中展现多个监控项
- 网络拓扑图
- 以仪表盘的样式自定义大屏展现和幻灯片轮询播放
- 报表
- 监控内容的高级(业务)视图
历史数据存储
- 数据库数据
- 可配置历史数据
- 内置数据管理机制(housekeeping)
网络发现
- 自动发现网络设备
- 监控代理自动注册
- 发现文件系统,网络接口和SNMP OID值
Web界面
- PHP Web前端
- 可从任何地方访问
- 可以定制自己的操作方式
- 审核日志
Zabbix API
- Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的
权限管理系统
- 安全用户认证
- 特定用户可以限制访问特定的视图
易于扩展的agent
- 部署在被监控对象上
- 支持Linux和Windows
3. Zabbix监控范畴
- 硬件:Zabbix IPMI Interface
- 系统:Zabbix Agent Interface
- Java:Zabbix JMX Interface
- 网络设备:Zabbix SNMP Interface
- 应用设备:Zabbix SNMP Interface
- URL:Zabbix Web监控
4. Zabbix组件
- zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据 - zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等 - zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里 - zabbix_Java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy - zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据 - zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查
5. Zabbix常用术语
- 主机(host)
一台你想监控的网络设备,用IP或域名表示 - 主机组(host group)
主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组 - 监控项(item)
你想要接收的主机的特定数据,一个度量数据 - 触发器(trigger)
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态 - 事件(event)
单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册 - 异常(problem)
一个处在“异常”状态的触发器 - 动作(action)
一个对事件做出反应的预定义的操作
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成 - 升级(escalation)
一个在动作内执行操作的自定义场景; 发送通知/执行远程命令的序列 - 媒介(media)
发送告警通知的手段;告警通知的途径 - 通知(notification)
利用已选择的媒体途径把跟事件相关的信息发送给用户 - 远程命令(remote command)
一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令 - 模板(template)
一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合
模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上 - 应用(application)
一组监控项组成的逻辑分组 - web场景(web scenario)
利用一个或多个HTTP请求来检查网站的可用性 - 前端(frontend)
Zabbix提供的web界面 - Zabbix API
Zabbix API允许你使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务 - Zabbix server
Zabbix软件实现监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等 - Zabbix agent
一个部署在监控对象上的,能够主动监控本地资源和应用的程序 - Zabbix proxy
一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序