目录
学习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内置的宏;
附录一、网络监控系统对比
摘自维基百科《Comparison of network monitoring systems》
Name | IP SLA Reports | Logical Grouping | Trending | Trend Prediction | Auto Discovery | Agentless | SNMP | Syslog | Plugins | Triggers / Alerts | MIBCompiler | WebApp | Distributed Monitoring | Inventory | Platform | Data Storage Method | License | Maps | Access Control | IPv6 | Latest release date | Latest release version |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Argus - The all seeing | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Viewing, Acknowledging, Reporting | Yes | Unknown | Perl | Flat file, Berkeley DB | Artistic License | No | Yes | Yes | 2013-02 | 3.7 |
Avaya VPFM | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Unknown | MySQL | Commercial | Yes | Yes | Yes | Unknown | Unknown |
Cacti | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | PHP | RRDtool, MySQL | GNU GPL | Via plugin | Yes | Yes | 2019-06-07 | 1.2.4 |
Checkmk | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | C, Python | RRDtool | GNU GPL | Yes | Yes | Yes | 2020-08-19 | 1.6.0p16 |
collectd | No | No | No | No | Push model; multicastpossible | Yes | Yes | Yes | Yes | Yes | No | Viewing | Yes | No | C | RRDtool | GNU GPL | No | Apache ACL | Yes | 2019-11-13 | 5.10 |
Cruz | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Java, C++, .NET | MySQL, Oracle | Commercial | Yes | Yes | Yes | 2019-02 | 8.0.0 |
FreeNATS | Yes | Yes | No | No | Yes | No | No | Via plugin | Yes | In PHP Code | No | Full Control | No | No | PHP | MySQL | GNU GPL | No | Yes | Unknown | 2011-07-09 | 1.13.3b |
Ganglia | No | Yes | Yes | No | Via gmond check in | No | Via plugin | No | Yes | No | No | Viewing | Yes | Unknown | C, PHP | RRDtool | BSD | Yes | No | Unknown | 2016-06-14 | 3.7.2 |
Hinemos | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Java | PostgreSQL | GNU GPL | Yes | Yes | Yes | 2017-06-09 | 6.0.1 |
HPE Openview Network Node Manager (NNMi) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Via integration | Yes | Yes | No | Full Control | Yes | Yes | C++, Java, Perl | PostgreSQL, Oracle Database | Commercial | Yes | Yes | Yes | 2016-08 | 10.20 |
Icinga | Via plugin | Yes | Yes | No | Via plugin | Yes | Via plugin | Via plugin | Yes | Yes | No | Full Control | Yes | Via plugin | C[1] | MySQL, PostgreSQL, Oracle Database | GNU GPL | Unknown | Yes | Yes | 2019-03-19 | 2.10.4 |
InterMapper | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Viewing | Yes | Yes | Windows, Linux & Mac OS | PostgreSQL | Limited free, Commercial | Yes | Yes | Yes | 2017-07 | 6.1.5 |
isyVmon | Yes | Yes | Yes | No | Via plugin | No | Yes | Yes | Yes | Yes | No | Full Control | Yes | Via plugin | PHP | RRDtool, MySQL | Limited free, Commercial | Via plugin | Yes | Yes | Unknown | Unknown |
Kaseya Network Monitor | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Full Control | Yes | Yes | Unknown | FirebirdSQL | Commercial | Yes | Yes | Unknown | Unknown | Unknown |
Munin | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Partial | No | Viewing | Via nodes | Unknown | Perl | RRDtool | GNU GPL | Unknown | Unknown | Yes | 2020-03-24 | 2.0.59 |
Nagios | Via plugin | Yes | Yes | No | Via plugin | Yes | Via plugin | Via plugin | Yes | Yes | No | Yes | Yes | Via plugin | C | Flat file, SQL (via ndoutils), MySql (Via Nconf) | GNU GPL | Yes | Yes | Yes[2] | 2019-07-29 | 4.4.4[3] |
NeDi | No | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Perl, PHP | Pg, MySQL, RRDTool, MariaDB | GPL3, Commercial | Yes | Yes | Yes | 2016-04 | 1.6[4] |
Netdisco | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Perl | PostgreSQL | BSD | Yes | Yes | Yes | 2017-10 | 2.036011[5] |
NetXMS | Unknown | Yes | Unknown | Unknown | Yes | Yes | Yes | Yes | Unknown | Yes | Yes | Yes | Yes | Yes | C, Java | Oracle, MySQL, MongoDB, PostgreSQL, IBM DB2, Tuxedo | GNU GPL | Yes | Yes | Unknown | 2020-02-26 | 3.2.472 |
NeuralStar | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Unknown | MS SQL | Commercial | Yes | Yes | Yes | Unknown | Unknown |
CA UIM fka Nimsoft Monitor | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Viewing, Acknowledging, Reporting | Yes | Yes | Unknown | SQLServer, Oracle, MySQL | Limited free, Commercial | Yes | Yes | Yes | 2013-06-30 | 1.8.6 |
Octopussy | No | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Full control | No | Yes | Perl, ASP | MySQL | GNU GPL | No | Yes | No | 2017-06-03 | 1.0.16 |
op5 Monitor | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Via plugin | C, PHP | Flat file, SQL | Limited free, Commercial | Yes | Yes | Yes | Monthly | 7.3.0 |
OpenKBM | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Unknown | Proprietary with JDBC support | Commercial | Yes | Yes | Yes | Unknown | Unknown |
OpenNMS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Full Control | Yes | Yes | Java | JRobin / RRDTool / Apache Cassandra, PostgreSQL | AGPLv3 | Yes | Yes | Yes | 2019-09-26 | 25.0.0 |
Opmantek NMIS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Full Control | No | Yes | Yes | Yes | Perl | MongoDB, RRDtool | GPL, Commercial | Yes | Yes | Yes | 2020-06 | 8.7.0 9.1.0 |
OPNET's AppResponse Xpert | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Viewing, Acknowledging, Reporting | Yes | No | Unknown | Unknown | Commercial | Yes | Yes | Unknown | Unknown | Unknown |
Opsview | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | No | Perl, C, ExtJS | SQL | Commercial | Yes | Yes | No | 2019-08-07 | 6.2 |
OSI NetExpert | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Java, C++ | Oracle | Commercial | Yes | Yes | Yes | 2013-04 | 10.0 |
PA Server Monitor | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Viewing, Reporting | Yes | Yes | C++ | SQLite, Microsoft SQL Server | Commercial | Yes | Yes | No | 2014-07 | 5.5 |
PacketTrap | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Viewing, Reporting | Yes | Yes | Unknown | SQL | Commercial | Yes | Yes | Yes | Unknown | Unknown |
Pandora FMS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Perl, PHP, C++, JavaScript | MySQL, Oracle | GPLv2, Commercial | Yes | Yes | Yes | 2017-07 | 7.0 NG 707 |
PathSolutions TotalView | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Windows | SQLite | Commercial | Yes | Yes | No | 2018-06-01 | 9.01 |
Performance Co-Pilot | No | Yes | Yes | No | Yes | Optional, Limited | Yes | Yes | Yes | Yes | No | Viewing | Yes | Yes | C Perl, Python, POSIX, MinGW | Flat file | GPL, LGPL | No | Yes | Yes | 2016-11-15 | 3.11.6 |
PRTG | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Windows | Flat file | Limited free, Commercial | Yes | Yes | Yes | 2019-05-15 | 19.2.50 |
ScienceLogic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Python | MySQL | Commercial | Yes | Yes | Yes | Unknown | Unknown |
SevOne | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | C, C++, PHP | MySQL | Commercial | Yes | Yes | Yes | 2018-09 | 5.7.2.4[6] |
Shinken | Via plugin | Yes | Yes | No | Yes | Yes | Via plugin | Via plugin | Yes | Yes | No | Viewing, Acknowledging, Reporting | Yes | Via plugin | Python | Flat file, MySQL, Oracle, Graphite, Sqlite, MongoDB | AGPL | Yes | Yes | Yes | 2016-03-10 | 2.4.3 |
Solarwinds | Yes | Yes | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | .NET | SQL | Commercial | Yes | Yes | Yes | Unknown | Unknown |
Spiceworks | Unknown | Yes | Unknown | Unknown | Yes | Yes | Unknown | Unknown | Yes | Yes | Unknown | Unknown | Unknown | Yes | PHP | Sqlite | Unknown | Yes | Unknown | Unknown | 2018-03-21 | 7.5.00107 |
CA Spectrum | Yes | Yes | Perf. AddOn | Perf. AddOn | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | C++, Java, JavaScript | Sleepycat-QSL, MySQL | Commercial, per Device | Yes | Yes | Yes | 2020-01-27 | 10.4.1 |
Xymon/Hobbit | Yes | Yes | Yes | No | Via plugin | Via plugin | Via plugin | No | Yes | Yes | No | Viewing, Acknowledging, Reporting | Yes | Via plugin | C, Shell | Flat file, RRDTool, MySQL via plugin | GNU GPL | Via plugin | Apache ACL | No | 2017-01-18 | 4.3.28 |
Vigilo NMS | Yes (NMS and NOC editions) | Yes | Yes | Yes via integration | Yes via integration | Yes | Yes | Yes via Prelude SIEM | Yes | Yes | No | Viewing, Acknowledging, Reporting | Yes (NMS and NOC editions) | Yes via GLPI | Python, Perl | PostgreSQL, RRDtool | Free (GPLv2) OSS edition, Commercial NOC/NMS editions | Yes (NMS and NOC editions) | Yes (NMS and NOC editions) | Via plugin | 2017-09-14 | 4.1.0 |
Zabbix | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | C, PHP | Oracle, MySQL, PostgreSQL, IBM DB2, SQLite | GNU GPL | Yes | Yes | Yes | 2020-05-12 | 5.0.1[7] |
Zenoss Core | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Python, Java | ZODB, MariaDB, Apache HBase | Free Core GPL, Commercial Enterprise | Yes | Yes | Yes | 2018-01-09 | 6.1.0 |
ZIS-System | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Full Control | Yes | Yes | Windows | MariaDB | Commercial | Yes | Yes | Yes | 2020-02-01 | 5.8 |
Name | IP SLA Reports | Logical Grouping | Trending | Trend Prediction | Auto Discovery | Agentless | SNMP | Syslog | Plugins | Triggers / Alerts | MIBCompiler | WebApp | Distributed Monitoring | Inventory | Platform | Data Storage Method | License | Maps | Access Control | IPv6 | Latest release date | Latest release version |