Prometheus 是什么

Prometheus 是 SoundCloud 公司开源的零碎监控告警工具。2016 年,继 k8s 后,作为第二个托管我的项目退出了云原生计算基金会。这个我的项目领有着十分沉闷的开发者和用户社区,随着云原生和 k8s的推广,越来越多的公司的运维都是应用 Prometheus + Grafana(可视化) 的这一套。

Prometheus 以时序数据的模式收集和存储其指标,同时反对增加自定义 label 的可选键值对

监控对象

  1. 硬件状态:电源状态、CPU 状态、机器温度、风扇状态...
  2. 服务器根底:CPU,内存,磁盘,网络 应用状况
  3. 数据库: MySQL, ES ...
  4. 中间件:Nginx, MQ..
  5. 利用:QPS,接口延时,线程数...

Prometheus 劣势

其余计划

  • Zabbix: 1998 年诞生... 属于传统主机监控,次要用于物理主机,交换机,网络等监控
  • Graphite: 专一于两件事,存储时序数据, 可视化数据, 其它性能都要装置插件实现, Prometheus 功能丰富:趋势,查问...
  • InfluxDB: 时序数据库... 监控局部本人搞,prometheus 不仅仅局限于存储时序数据
  • Nagios:90 年代诞生...
  • Sensu :能够看作 Nagiosde 的降级版本
  • Open-falcon:小米开源,社区活跃度个别

劣势

  • 云原生反对好,K8s 和 Etcd 等一列我的项目都提供了对 Prometheus 的原生反对,是目前容器监控最风行的计划
  • Prometheus 属于一站式监控告警平台,依赖少,功能齐全。
  • 多维数据模型,聚合统计更不便
  • 弱小的查问语句

劣势

  • 数据存储扩展性不够好

Prometheus 架构

  1. Sever:抓取(pull 模式)和存储时序数据,提供查问接口
  2. Exporter:服务监控上报数据,如 MySQL、Redis、Node Exporter
  3. AlertManger:告警告诉
  4. Pushgetaway: 反对被动向 Sever push 数据,实用于生命周期短暂的批处理的工作。

装置与应用

装置 官网教程

走过的一个坑

  • Prometheus 应用 docker 装置,node exporter 在本机跑,网络不通。倡议不应用 docker 装置

前提

  • mac
  • 装置 prometheus。能关上 http://localhost:9090/
  • 装置 node export。能关上 http://localhost:9100/
  • 配置好了 prometheus.yml(配置 node exporter 地址,server 通过这个地址 pull 数据)。http://localhost:9090/ 抉择 targes,呈现两个,如下图即装置胜利。

默认有两个 label: jobinstance,

  • job 指的监控对象,这里 node exporter 是官网提供的监控机器状态的
  • instance 是监控服务地址,一个 job 个别对应多个 instance。

node exporter 提供的监控数据都以 node_结尾,下图是 Prometheus 页面中展现的 cpu 负载状况看板。prometheus 提供的可视化性能比拟弱,个别搭载 Grafana 应用

  • 装置 Grafana 。能关上 http://localhost:3000/
  • 抉择 prometheus 作为数据源

  • Add panel, 如下图,我在 Grafana 中减少了 cpu_load 的监控看板,可视化功能强大不少

  • 手动增加看板比拟麻烦,能够应用 Grafana 模版库

    1. 模版库中搜寻 node_exporter, 复制 ID
    2. 在 Grafana 界面操作: + -> import -> 粘贴 ID -> 抉择导入的 prometheus 数据源

    一个监控主机数据的残缺监控看板就诞生了!

总结

  1. 介绍了 Prometheus 是什么,它风行的起因
  2. 介绍了 Prometheus 的总体架构
  3. 利用 Prometheus、Grafana 、node exporter 展现了疾速搭建一个监控看板的过程

下期预报

  1. Prometheus 数据类型介绍
  2. Prometheus 查问语句 PromQL 介绍

参考

  1. https://prometheus.io/
  2. https://www.cncf.io/
  3. https://songjiayang.gitbooks....