Cacti是一套基于PHP + MySQL + SNMP + RRDTool的网络流量监测图形剖析工具。紧张功能是用SNMP做事获取数据,然后用RRDTool储存和更新数据,当用户须要查看数据的时候用RRDTool天生图表呈现给用户。
RRDTool是一个基于韶光序列的环形数据库。前文《物联网关键技能:时序数据库 》曾经先容过RRDTool。
Nagios

Nagios能监视所指定确当地或远程主机以及做事,同时供应非常关照功能等。Nagios Core版本是可以免费利用的,Nagios XI 版本是个商业软件,可以免费无限制利用60天。
Nagios由一个主程序和一组指令插件(Plugins)组成。Nagios本身并不包含任何监控机制,所有监控事情都是由指令插件来实现的。指令插件常日是安装在做事器或者目标监控机上的可以独立运行的perl或者shell脚本,供主程序远程调度。
从监控能力的全面性来看,Nagios要比Cacti更全面,而Cacti的特点在于数据的图形化展示,因此很多人都把Nagios与Cacti结合利用。
ZabbixZabbix
Zabbix是一个基于WEB界面的供应分布式系统监视以及网络监视功能的企业级的开源办理方案。Zabbix与Cacti、Nagios并称为“监控三剑客”,利用的年头超过20年,也是目前利用比较广泛的监控系统。
Zabbix利用场景
Zabbix是结合了Nagios的全面性以及Cacti的图形化能力,利用场景也是非常广泛的。zabbix server可以通过SNMP、zabbix agent、ping及端口监视等方法供应对远程做事器/网络状态的监视,数据网络等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
Zabbix的紧张组件包括:
Zabbix Agent:Agentd安装在被监控的主机上,Agent卖力定期网络客户端本地各项数据,并发送至Zabbix Server端;Zabbix Server:收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。Zabbix Proxy:常用于分布监控环境中,代理Server网络部分被监控的监控数据并统一发往Server端,常日大于500台主机须要利用。我所在团队目前也在利用Zabbix对网络交流设备进行SNMP流量监控,不过我们也只是用于对交流机的流量监控,整体监控全部都用Zabbix的话,觉得有些太重了。
SmokepingSmokeping
Smokeping是RRDTool的作者Tobi Oetiker的作品,用Perl措辞写的,紧张是监视网络性能。
Open-falcon(猎鹰)Open falcon
猎鹰是小米公司开源出来的监控软件,监控能力和性能较强,比较Zabbix更轻量级,比较符合互联网公司的口味。
Open-falcon架构图
Open-falcon的紧张组件包括:
Falcon-agent卖力采集负载监控指标数据,并把数据上报到TransferGraph吸收transfer组件推送过来的监控数据,同时处理API组件的查询要求、返回绘图数据。Transfer不但会转发给Graph组件来绘图,还会转发给Judge用于判断是否触发告警。Judge产生的报警事宜写入redis,Alarm从redis读取处理,并发送到不同渠道。API组件供应统一的restAPI操作接口,Dashboard、Portal都是通过API获取数据。Heartbeat Server是心跳做事器,连接所有的agent,每个agent每分钟发一次心跳要求。相称于对agent的监控。proxy-gateway类似于Zabbix Proxy,起到代理网络监控数据的浸染。NightingaleNightingale架构
滴滴基于open-falcon二次开拓后,又开源出来一个新的分布式监控系统,也因此鸟类命名,叫做Nightingale(夜莺)。夜莺的组件和猎鹰基本都是逐一对应的,比如collector对应的是agent,tsdb对应的是graph,等等。
Nightingale
我们团队也在用夜莺,紧张是由于夜莺除了有监控能力,还有一些CMDB的功能。与Open-falcon不同,夜莺采取了工具树的导航模式,方便对监控目标进行分组管理。
PrometheusPrometheus架构
末了要说的是大名鼎鼎的Prometheus,这是目前云原生基金会的第二大项目。Prometheus是由SoundCloud开拓的开源监控报警系统和时序列数据库。Prometheus利用Go措辞开拓,是Google BorgMon监控系统的开源版本。
Prometheus的基本事理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要供应对应的HTTP接口就可以接入监控,不须要任何SDK或者其他的集成过程。这样做非常适宜做虚拟化环境的监控系统,常常与K8S合营利用。
Prometheus的紧张组件包括:
Server 紧张卖力数据采集和存储,供应PromQL查询措辞的支持。Alertmanager 警告管理器,用来进行报警。Push Gateway 支持临时性Job主动推送指标的中间网关。如果系统支配紧张以容器和K8S为主,那么利用Prometheus是最佳监控方案。
我会持续更新关于物联网、云原生以及数字科技方面的文章,用大略的措辞描述繁芜的技能,也会偶尔揭橥一下对IT家当的意见,欢迎大家关注、转发和评论,感激。