比较常见的开源监控系统
Nagios
介绍:
它是一款免费的开源IT基础设施监控系统,能有效监控 Windows 、Linux、VMware 和 Unix 主机状态,交换机、路由器等网络设置等。Nagios核心功能是监控报警,告警能力很不错,但是图形展示效果很差。l另外通过安装插件和编写监控脚本,用户可以实现应用监控,并针对大量的监控主机和多个对象部署层次化监控架构。
同时nagios更加灵活。Nagios最大的特点是其强大的管理中心,尽管其功能是监控服务和主机的,但Nagios自身并不包括这部分功能代码,所有的监控、告警功能都是由相关插件完成的。
功能特性:
- 监控网络服务(SMTP、POP3、HTTP、NNTP、PING等)
- 监控主机资源(处理器负荷、磁盘利用率等);
- 简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
- 并行服务检查机制;
优点:
- 通过安装插件和编写监控脚本,可以实现对目标的监控
- 出错的服务器、应用和设备会自动重启,自动日志滚动
- 配置灵活,可以自定义shell脚本,通过分布式监控模式
- 支持以冗余方式进行主机监控,报警设置多样
- 命令重新加载配置文件无需打扰Nagios的运行
缺点:
- 事件控制台功能很弱,插件易用性差
- 对性能、流量等指标的处理不给力
- 看不到历史数据,只能看到报警事件,很难追查故障原因
- 配置复杂,初学者投入的时间、精力和成本比较大
Cacti
介绍:
基于php,mysql,snmp及rrdtool开发的网络流量监测图形分析工具
优点:
机房、流量监控方面应用较广泛
缺点:
报警比较简陋
Ganglia
介绍
用于监控数以千计的节点的基础性能和流量使用情况,Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统。它已被广泛移植到各种操作系统和处理器架构上。
优点
- 部署方便,用不同分层管理上万台机器,无需逐个添加配置;
- ganglia服务端能通过一台客户端收集同一个网段的所有客户端的数据;
- ganglia集群服务端能够通过一台服务端收集到它下属的所有客户端数据。
- 适合监控系统性能,通过曲线很容易见到每个节点的工作状态
- 可以自定义监控项,监控展示有表格和图像两种,支持手机版
- 部署方便,通过不同的分层管理上万台机器,无需逐个添加配置
缺点
没有内置的消息系统,出现问题不能够及时报警无法报警
Zabbix
介绍
Zabbix 是一个企业级的分布式开源监控方案,是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源运维平台,也是目前国内互联网用户中使用最广的监控软件。zabbix易于管理和配置,能生成比较漂亮的数据图,其自动发现功能大大减轻日常管理的工作量,丰富的数据采集方式和API接口可以让用户灵活进行数据采集,而分布式系统架构可以支持监控更多的设备。
优点
- 支持多平台的企业级分布式开源监控软件
- 安装部署简单,多种数据采集插件灵活集成
- 功能强大,可实现复杂多条件告警,
- 自带画图功能,得到的数据可以绘成图形
- 提供多种API接口,支持调用脚本
- 出现问题时可自动远程执行命令(需对agent设置执行权限)
缺点
- 项目批量修改不方便
- 社区虽然成熟,但是中文资料相对较少,服务支持有限;
- 入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发,难度较大;
- 系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;并且自定义的项目报警需要自己设置,过程比较繁琐;
- 缺少数据汇总功能,如无法查看一组服务器平均值,需进行二次开发;
- 数据报表需要特殊二次开发定义;
Openfalcon
介绍
OpenFalcon是一款企业级、高可用、可扩展的开源监控解决方案,Open-falcon是小米运维团队从互联网公司的需求出发,根据多年的运维经验,结合SRE、SA、DEVS的使用经验和反馈,开发的一套面向互联网的企业级开源监控产品。
优点
- 自动发现,支持falcon-agent、snmp、支持用户主动push、用户自定义插件支持
- 支持每个周期上亿次的数据采集、告警判定、历史数据存储和查询
- 高效的portal、支持策略模板、模板继承和覆盖、多种告警方式、支持callback调用
- 单机支撑200万metric的上报、归档、存储
- 采用rrdtool的数据归档策略,秒级返回上百个metric一年的历史数据
- 多维度的数据展示,用户自定义Screen
- 通过各种插件目前支持Linux、Windows、Mysql、Redis、Memache、RabbitMQ和交换机监控。
缺点
由于发布时间较短,很多基础的服务监控插件(如Tomcat、apache等)还不支持,很多功能还在不断完善中,另外由于缺少专门的支持,虽然有开放社区,但是解决问题的效率相对较低。
Prometheus
介绍
Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus作为新一代的云原生监控系统
优点
官网介绍
- 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据
- PromQL,一种灵活的查询语言 ,可利用此维度
- 不依赖分布式存储;单服务器节点是自治的
- 时间序列收集通过HTTP上的拉模型进行
- 通过中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
其他
- 强大的功能,除了云平台之外,还支持主机,各种db资源,web网站,dns,网络延时,端口连通性,各种语言写的监控程序等
- 良好的性能:单机实例支持数十万监控项/每秒
- 高可用的架构:核心组件都有高可用解决方案
- 强大的查询能力:自带查询语言
- 成熟的社区和健全的生态
缺点
没有认证!!!prometheus官方文档也是写的,他们专注于监控,不提供用户认证体系。需要的话,需要自己在最外层包一层nginx实现反向代理认证。
总结
- Prometheus并不是最好的监控系统,选择它的主要原因是他对云环境的原生支持
- 恰好现在云环境是当前最火,应用最广泛的解决方案
- 监控是应用于服务的,不同的服务场景选择不同的监控软件,切勿盲从