本文大纲
- snmp介绍
- 监控流程
- 开源监控工具zabbix
- zabbix监控功能的实现
- 支持数据库存储类型
- Zabbix架构中的组件
- Zabbix逻辑架构
- Zabbix Server启动后都有那些进程?
snmp介绍
介绍zabbix 之前让我们先来熟悉一下什么是snmp?
SNMP:Simple Network Management Protoclol
翻译一下:简单网络管理协议
SNMP的工作模式是啥?
- NMS向agent采集数据
- agent向NMS报告数据
- NMS请求agent修改配置
SNMP组件:
- MIB:management information base
MIB就是snmp的监控对象,以及监控对象的属性(包括名称等)
- SMI:MIB表示符号
- SNMP协议
SNMP协议版本:
- v1, v2, v3
- v2c: NMS –> agent
加入了团体字的概念,目前用的比较多的版本。
- v3: 认证、加密、解密
linux: net-snmp程序包
通过udp协议server监听在161端口,agent监听在162端口
监控流程
数据采集(数据超过阈值报警)→数据存储(存储时间序列数据形成实施监控曲线图)→数据展示
开源监控工具zabbix
zabbix功能很强大,如何理解zabbix的功能,我打算从cacti和nagios的功能讲起
cacti是一款数据采集,数据存储,外加web界面展示的工具,它负责阈值范围内的实时变化,但是对超过阈值的告警功能很薄弱
- 优点:实时监控数据变化,以web页面的方式呈现,更直观。
- 缺点:告警不及时
nagios是一款告警功能很强大的工具,它不关心阈值范围内的变化,只关心状态变化(超过阈值),然后报警。报警方式通过邮件,短信等。
- 优点:告警反映迅速。
- 缺点:监控主机数量有限,承载低
zabbix = cacti + nagios
- 优点:基于两款工具优点于一身并更强大,实现企业级分布式监控。
- 缺点:2.2版本带宽占用大但是升级到2.4版本后更节省了带宽资源,其它再无发现。
zabbix监控功能的实现
监控主机zabbix有专用的agent,可以监控Linux,Windows,FreeBSD等 。
监控网络设备zabbix通过SNMP,ssh(不多用)
可监控对象
- 设备:服务器,路由器,交换机
- 软件:OS,网络,应用程序
- 主机性能指标监控
- 故障监控: down机,服务不可用,主机不可达
- IPMI(Intelligent Platform Management Interface)
- 智慧平台管理接口(原本是一种Intel架构的企业系统的周边设备所采用的一种工业标准。IPMI亦是一个开放的免费标准,使用者无需支付额外的费用即可使用此标准。)
支持数据库存储类型
cacti: rrd (round robin database)
abbix-database: MySQL, PGSQL(postgreSQL)、Oracle、DB2、SQLite
Zabbix架构中的组件
zabbix-server: C语言
OS: zabbix-agent: C语言
zabbix-web:GUI,用于实现zabbix设定和展示,PHP开发
zabbix-proxy: 分布式监控环境中的专用组件
Zabbix逻辑架构
定义一个template模板,里面包括多个items,trigger,graphs套用给host或者hostgroups。
server感情兴趣监控项目items通过zabbix。
poller进程(可以有多个进程实现并发处理)包括snmp,agent协议收集被监控主机信息。
如果阈值超过triggers触发器规定,就是形成一个events事件,然后actions处理动作(包括运行预先定制的脚本,不成功发送email或SMS)。
在服务器升级的时候提前设定maintenance维护模式不对服务器产生告警通知。
通过逻辑拓扑图展示工作流程
Zabbix Server启动后都有那些进程?