Prometheus
互联网的服务常依赖于成千上万的主机,而这些主机又部署在世界各地,再加上错综复杂的用户环境,要保证服务的稳定可靠,就需要对服务进行监控。监控的目的可以从这几个方面考虑:从系统维度,了解CPU、内存、硬盘使用情况;从网络监控维度,了解网络上行、下行速率;从服务监控维度,了解应用程序的健康性、可用性。当然,有了监控数据,还可以配置告警,通知维护人员、辅助排查故障问题。
1. 监控开源工具
1.1 Nagios
- 优点
- 监控所有协议(HTTP, FTP, SSH, POP3, SMTP, SNMP, MySQL…)
- 完全独立,没有依赖
- 支持震荡检测
- 插件化
- 缺点
- Web 页面不友好
- 不支持数据的图表显示
1.2 Zabbix
- 优点
- 监控所有协议(HTTP, FTP, SSH, POP3, SMTP, SNMP, MySQL…)
- Web 界面友好
- 可以监控 Log 文件
- 支持 Client agent ( Pull、Push model)
- 缺点
- 配置比较复杂
- 需要关系型数据库支持 ( mysql、PostgreSQL..)
1.3 Prometheus
- 优点
- 用 Go 编写,性能好
- 支持多语言客户端 (sdk)
- 支持 Pul l和 Push 模式
- 支持多种数据可视化模式 ( Grafana )
- 缺点
- 缺少插件支持