zabbix
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 支持主动轮询( polling) 和被动捕获( trapping) 。 Zabbix所有的报表、 统计数据和配置参数都可以通
zabbix特点
数据采集
可用性和性能检查;
支持 SNMP( 包括主动轮询和被动捕获) 、 IPMI、 JMX、 VMware 监控;
自定义检查;
按照自定义的时间间隔采集需要的数据;
通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义
您可以参考后端数据库定义非常灵活的告警阈值, 即触发器
高度可配置化的告警
可以根据递增计划、 接收者、 媒介类型自定义发送告警通知;
使用宏变量可以使告警通知变得更加高效有用;
自动操作包含远程执行命令。
实时图形
使用内置图形功能可以将监控项实时绘制成图形。
Web 监控功能
Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作, 来检查 Web 网站的功能和响应时间。
丰富的可视化选项
可以组合多个监控项到单个视图中, 创建自定义图表;
网络拓扑图;
以仪表盘样式展示自定义聚合图形和幻灯片演示;
报表;
监控资源的更高层次展示视图( 业务视图) 。
历史数据存储
存储在数据库中的数据;
历史配置;
内置数据管理机制( housekeeping) 。
配置简单
将被监控设备添加为主机;
主机一旦添加到数据库中, 就会采集数据用于监控;
将模板用于监控设备。
使用模板
模板中分组检查;
模板可以关联模板, 继承已关联模板的属性。
网络发现
自动发现网络设备;
Zabbix Agent 发现设备后自动注册;
自动发现文件系统、 网络接口和 SNMP OIDs 值。
快捷的 Web 界面
基于 PHP 的 Web 前端;
可以从任何地方访问;
您可以定制自己的操作方式;
您可以通过审计日志来查看你的操作。
Zabbix API
Zabbix API 为 Zabbix 提供可编程接口, 用于批量操作、 第三方软件集成和其他用途。
权限管理系统
安全的用户身份验证;
指定的用户只能查看指定的权限范围内的视图。
功能强大且易于扩展的 Zabbix Agent
部署于被监控对象上;
支持 Linux 和 Windows ;
二进制守护进程
为了更好的性能和更少的内存占用, 采用 C 语言编写;
便于移植。
适应更复杂的环境
使用 Zabbix Proxy 代理, 可以轻松实现分布式远程监控。
监控系统运行流程:
agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix
server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为
主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给
server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
主动监测通信过程如下:
zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者
proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的
RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。
agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启。一般建议不要设
置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式。
主动模式与被动模式主要是站在zabbix-agent身份来说
通信过程分两个部分:
获取ACTIVE ITEMS列表
Agent打开TCP连接(主动检测变成Agent打开)
Agent请求items检测列表
Server返回items列表
Agent 处理响应
关闭TCP连接
Agent开始收集数据
主动检测提交数据过程
Agent建立TCP连接
Agent提交items列表收集的数据
Server处理数据,并返回响应状态
关闭TCP连接
被动监测通信过程如下:
Server打开一个TCP连接
Server发送请求agent.ping
Agent接收到请求并且响应
Server处理接收到的数据
关闭TCP连接
常用的监控架构平台
1、server-agentd模式:
这个是最简单的架构了,常用于监控主机比较少的情况下。
2、server-proxy-agentd模式:
这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力。
1.5.常用端口
zabbix server :10051
zabbix agent:10050
常见进程
监控功能下面的进程都是负责监控数据收集的
poller进程 主要负责server主动拉取类型的监控数据
trapper进程 主要负责agent主动上报的监控数据
Http poller进程 主要负责URL监控类型的数据收集
Icmp pinger进程 负责ping存活监控数据收集
Java gateway进程 负责和java gateway通信处理数据
Java poller进程 负责拉取JMX类型数据获取
Ipmi poller进程 负责IPMI类型数据获取
timer进程 负责处理和时间有关的数据以及告警
Vmware collector进程 负责收集VMware虚拟化环境监控数据
Unreachable poller进程 负责处理无法到达类的监控处理
zabbix常用组件功能
Frontend 前端
Zabbix API zabbix的接口
Network discovery 网络自动发现
Active agent auto-registration 主动agent自动注册
low-level discovery 低级自动发现
常用监控软件对比
cacti
cacti官网:https://www.cacti.net/
cacti是一款数据采集,数据存储,外加web界面展示的工具,它负责阈值范围内的实时变化,但是对超
过阈值的告警功能很薄弱。
优点:实时监控数据变化,以web页面的方式呈现,更直接
缺点:告警不及时
nagios
nagios官网:https://www.nagios.org/
nagios是一款功能很强大的工具,他不关心阈值范围内的变化,只关心状态变化(超过阈值),然后报
警。报警方式通过邮件、短信等。
优点:告警反映迅速
缺点:监控主机数量有限,承载低
zabbix
zabbix=cacti + nagios
监控cpu负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视
优点:基于两款优点于一身并且更加强大,实现了企业分布式监控。
缺点:2.2版本带宽占用大但是升级到2.4版本后节省了带宽资源