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 )
  • 缺点
    • 缺少插件支持

2. Prometheus + Grafana 搭建