本文大纲

  • 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

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架构分析图 zabbix架构原理_Zabbix架构分析图_02

Zabbix架构分析图 zabbix架构原理_数据_03

Zabbix逻辑架构

定义一个template模板,里面包括多个items,trigger,graphs套用给host或者hostgroups。

server感情兴趣监控项目items通过zabbix。

poller进程(可以有多个进程实现并发处理)包括snmp,agent协议收集被监控主机信息。

如果阈值超过triggers触发器规定,就是形成一个events事件,然后actions处理动作(包括运行预先定制的脚本,不成功发送email或SMS)。

在服务器升级的时候提前设定maintenance维护模式不对服务器产生告警通知。

通过逻辑拓扑图展示工作流程

Zabbix架构分析图 zabbix架构原理_c/c++_04

Zabbix Server启动后都有那些进程?

Zabbix架构分析图 zabbix架构原理_数据_05