做网络运维的朋友都知道,保证网络安全和性能是咱们的本职工作。但说实话,每个网管对监控的需求都不太一样——有的人喜欢看得特别细,CPU、内存、带宽每个指标都不想放过;有的人呢,就关心服务到底挂没挂,响应速度行不行;还有的人两者都想要,既要宏观的可用性,又要微观的性能数据。
不管你是哪一种,光靠人工盯着肯定不现实,几百台设备你哪看得过来?这时候网络监控工具就能派上大用场了。好的监控工具能自动扫描发现网络里的设备,实时显示各种性能数据,有问题了还能主动发警报通知你,顺便给你生成图表和报告,方便你事后分析。说白了,就是让你事半功倍,不用天天提心吊胆地盯着屏幕。
今天咱们就来聊聊5款常用的开源网络监控工具,都是免费的,效果还不赖。
1、Zabbix——大厂都在用的全能选手

Zabbix在开源监控圈里名气相当大,戴尔、Salesforce这些大公司都在用。为什么它这么受欢迎?因为这东西真能打,网络、服务器、云服务、应用程序它全都能监控,基本上你机房里有啥它就能管啥。
通过Zabbix,你可以清楚地看到网络带宽用了多少,设备运行状态怎么样,配置有没有被改过。出了问题还能顺着数据去排查,省了不少事儿。Zabbix采集数据主要靠SNMP、IPMI这些标准协议,兼容性挺不错的。
要说Zabbix最大的优点,那就是方便。它自带了很多现成的监控模板,拿来就能用,还能自动发现网络里新接进来的设备。支持的Linux发行版也很全,CentOS、Debian、Ubuntu、RHEL这些都行,基本上你用什么系统它都适配。
官网地址:https://www.zabbix.com/
2、Icinga 2——Nagios的进阶版,可视化是亮点

Icinga 2这个工具是基于Nagios Core发展来的,算是站在巨人的肩膀上又往前走了一步。它最大的特点就是提供了一个RESTful API,你可以通过仪表盘自己配置监控内容,想看什么数据自己说了算,灵活度很高。
Icinga 2在可视化这块做得特别到位。它原生支持Graphite和InfluxDB,你可以把性能数据转成各种好看的图表,做深度分析的时候非常直观。实时数据和历史数据都能看,而且警报功能也很完善,你可以设置成发邮件或者短信通知,出问题了第一时间就能知道。
支持的平台也挺全,Windows、Debian、Ubuntu、Fedora、OpenSUSE这些都兼容,适用范围很广。
官网地址:https://icinga.com/products/icinga-2/
3、Cacti——画图是一把好手

如果你对开源监控工具有点了解,那Cacti这个名字应该不陌生。它本质上是一个图形化解决方案,很多人拿它当RRDTool的替代品。说白了就是专门用来画流量图的,用SNMP协议采集局域网里的数据,然后生成各种流量图表。
Cacti的工作流程大概是这样的:它会跑一些脚本去ping设备,拿回来的数据存到MySQL数据库里,然后再用这些数据生成图形。听上去有点绕,但别担心,Cacti内置了很多模板,你不需要从头折腾,直接用现成的就行。你还可以把常用的监控项存成模板,下次直接套用,省时省力。
如果你主要关心的是网络流量的可视化展示,Cacti值得一试。
官网地址:https://www.cacti.net/
4、Nagios Core——开源监控界的“老大哥”

Nagios Core可以说是开源监控工具里名气最大的一个了,老牌、稳定、用户多。它能自动发现设备,监控连接的系统,还能生成复杂的性能图表,该有的功能基本都有。
Nagios为啥这么火?很大程度上是因为它的可定制性特别强。你完全可以按照自己的需求去改,比如有人给它加了个AngularJS写的Web界面,还有人给它设计了RESTful API,用起来更顺手。
如果你觉得自带的功能还不够,可以去Nagios Exchange看看,那里有一大堆插件,基本上你能想到的监控需求都能找到对应的扩展。不过要注意,Nagios Core主要是跑在Linux/Unix平台上的,Windows用户可能得绕道了。
官网地址:https://www.nagios.org/projects/nagios-core/
5、Prometheus——专治时间序列数据

Prometheus这几年特别火,很多搞云原生、容器监控的人都在用。它和前面几个工具不太一样,专门针对时间序列数据设计的。什么叫时间序列数据?简单说就是按时间维度存储的性能指标,比如过去24小时CPU的使用率变化。
Prometheus的数据存在本地磁盘上,万一出了紧急情况,数据随时能取出来看,这点很实在。它的Alertmanager负责发警报,支持邮件、PagerDuty、OpsGenie这些渠道,你要是嫌吵也可以把某些通知关掉。
Prometheus的界面做得相当不错,浏览器打开就能看,还支持模板语言和Grafana集成,图表做出来非常漂亮。它还支持从Docker、StatsD、JMX这些数据源采集信息,扩展性很强。不管你是小公司还是大企业,Prometheus都能派上用场。
官网地址:https://prometheus.io/
最后总结一下
不管你从事哪个行业,只要你的业务依赖网络,那监控这事儿就绕不开。有了这些工具,你就不用天天提心吊胆地守着电脑,设备出问题了工具会自动告诉你。
上面说的这5款全都是开源的,不用花钱就能用,性价比很高。如果非要给个建议的话,我个人比较推荐Zabbix和Icinga 2——Zabbix功能全面、上手快,Icinga 2可视化和灵活性都很出色。当然了,这东西仁者见仁智者见智,哪个适合你,还得自己动手试了才知道。反正都是免费的,挨个装一遍也不亏,对吧?
