乐趣区

关于golang:Prometheus-快速入门01

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….
退出移动版