目录
一、开源监控及对比
1.1 cacti、nagios、zabbix对比
1.1.1 cacti
1.1.2 nagios
1.1.3 zabbix
1.2 网络监控系统对比
二、zabbix介绍
2.1 zabbix基础功能
2.2 zabbix构架
2.3 zabbx组件
2.4 一个完整的zabbix监控组成
2.5 术语
2.5.1 主要术语
2.5.2 其它术语
2.6 其它概念
附录一、网络监控系统对比
学习zabbix之前,了解一下zabbix概念是很有必要的,我这里就简单说一下。
一、开源监控及对比
目前免费开源的基础监控软件主cacti、nagios、zabbix,它的主要区别如下
1.1 cacti、nagios、zabbix对比
1.1.1 cacti
1.重在采集服务器、网络设备的监控数据并绘图
2.依赖于snmp协议
3.不好自定义监控
4.告警支持不友好
cacti小巧,最适合流量监控,比如交换机流量,使用的是rrdtoo保存l数据 ,一种很古老的已经有很简单的时序数据库的功能。
现在还有小部分企业在使用,主流也是监控流量相关的。
1.1.2 nagios
1.重在监控告警,但zabbix更出色,告警配置web化
2. Nagios添加监控需要更改配置文件
3.无监控历史数据,图形支持差
4.不支持分布式监控(假如北京1000台、.上海1000台、 杭州1000台)
PS:nagios和它的名字一下“难搞死”,安装非常麻烦,我曾经试过安装它及插件,足足花了3天的时间才搞定,各种问题。
基本上不用
1.1.3 zabbix
1.所有监控配置都WEB化,WEB采用php开发
2.支持分布式监控
3.支持多种方式数据采集:简单监控、Agent监控、 snmp接口监控、 JMX接口监控
4.告警配置web化:邮件、微信、钉钉、短信
5. Zabbix和Grafana的结合方便监控数据的可视化
6.先搭建zabbix ,在实战中zabbix
PS:现在化的监控,大型基础监控工具。比如携程也是在用它,只是于是基于二次开发的。
1.2 网络监控系统对比
具体的对比详见附录一
二、zabbix介绍
2.1 zabbix基础功能
数据采集方式:zabbix agent,agent(active),SNMP,SSH等;
数据存储方式:RDBMS, MySQL, MariaDB, PostgreSQL, SQLite, Oracle or IBM DB2等等
数据展示方式:php,web,gui;
报警功能:支持报警升级;
2.2 zabbix构架
2.3 zabbx组件
- Zabbix主要由zabbix server和zabbix agent组成;
- server端负责从agent端收集监控数据,并存储在数据库中,同时对数据进行分析展示,并触发相关报警;
- agent端负责监控数据的采集,并发送给server端;(现在zabbix5.0有agent2,go写的,加入了一些新功能)
- 数据采集方式除了在被监控主机上部署agent程序外,还可通过ICMP/IPMI/SNMP等协议对网络设备进行监控,同时配置web监控方式可以监控web页面的下载速率和响应时间等重要参数,很有参考价值哦;
- Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构,Proxy只负责一定区域内的数据采集工作,然后定期将数据一次性发送给server,极大的减轻了server的负载压力,使得可以支持更大规模的监控需求;
2.4 一个完整的zabbix监控组成
2.5 术语
可以看zabbix5.0官方文档DEFINITIONS,我这里而只是简单说一下
2.5.1 主要术语
- Host主机:要监控的网络设备;
- Host Group主机组:主机的逻辑容器,可包含主机和模板;通常用于给用户或用户组指派监控权限时使用;
- Item监控项:一个特定监控指标的相关数据,是数据采集的核心,每个item都由key进行唯一标识;
- Trigger触发器:用于为监控项item所收集的数据定义阈值,触发器的状态在OK和PROBLEM间不断切换;
- Event事件:触发器的状态转变,新的agent或重新上线的agent的自动注册等,都会产生event;
- Action动作:指对于特定event实现定义的处理方法,由通知内容、条件、操作这3部分组成;
- Escalation报警升级:发送警报或执行远程命令的自定义方案;
- Media Type媒介:发送通知的手段或通道,如Email,Jabber或SMS等;
- Notification通知:通过选定的media向用户发送的有关某event的信息;
2.5.2 其它术语
- Remote Command远程命令:预定义的命令,可在被监控主机处于某特定条件下自动执行;
- Template模板:用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application等;
- Application应用:一组item的集合;
- Web scennaria web场景:用于检测web站点可用性的一个或多个HTTP请求;
- Frontend前端:Zabbix的web接口
2.6 其它概念
UserParameter用户参数:可在被监控端通过设置UserParameter的方式,获得Zabbix预定义的key无法收集到的监控数据
- 语法格式:UserParameter=<key>,<command>
- 如:UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive
- server端的调用的key为:mysql.ping ,可获得被监控主机上mysql程序的存活状况
- 如:UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}' ,带参数的UserParameter可批量监控多个同类监控项
- server端的调用的key为memory.usage[MemFree] ,获得被监控主机剩余内存的数值
- server端的调用的key为memory.usage[MemTotal} ,获得被监控主机总内存的数值
Macros宏:zabbix基于宏保存预设的文本模式,并在调用时将其替换为其中的文本,可理解为全局变量;
- 宏的名称只能使用大写字母、数字及下划线;
- 分为zabbix内置宏和用户自定义宏;
- 内置的宏,有{HOST.NAME},{HOST.IP},{TRIGGER.NAME},{TRIGGER.DESCRIPTION}等;
- 用户自定义的宏要使用{$MACRO}这种特殊的格式引用,以区别于zabbix内置的宏;