Prometheus 是什么
Prometheus 是 SoundCloud 公司开源的零碎 监控告警 工具。2016 年,继 k8s 后,作为第二个托管我的项目退出了云原生计算基金会。这个我的项目领有着十分沉闷的开发者和用户社区,随着云原生和 k8s 的推广,越来越多的公司的运维都是应用 Prometheus + Grafana(可视化)的这一套。
Prometheus 以时序数据的模式收集和存储其指标,同时反对增加自定义 label 的可选键值对
监控对象
- 硬件状态:电源状态、CPU 状态、机器温度、风扇状态 …
- 服务器根底:CPU,内存,磁盘,网络 应用状况
- 数据库: MySQL, ES …
- 中间件:Nginx, MQ..
- 利用:QPS,接口延时,线程数 …
Prometheus 劣势
其余计划
- Zabbix: 1998 年诞生 … 属于传统主机监控,次要用于物理主机,交换机,网络等监控
- Graphite: 专一于两件事,存储时序数据,可视化数据, 其它性能都要装置插件实现, Prometheus 功能丰富:趋势,查问 …
- InfluxDB: 时序数据库 … 监控局部本人搞,prometheus 不仅仅局限于存储时序数据
- Nagios:90 年代诞生 …
- Sensu:能够看作 Nagiosde 的降级版本
- Open-falcon:小米开源,社区活跃度个别
劣势
- 云原生反对好,K8s 和 Etcd 等一列我的项目都提供了对 Prometheus 的原生反对,是目前容器监控最风行的计划
- Prometheus 属于一站式监控告警平台,依赖少,功能齐全。
- 多维数据模型,聚合统计更不便
- 弱小的查问语句
劣势
- 数据存储扩展性不够好
Prometheus 架构
- Sever:抓取 (pull 模式) 和存储时序数据,提供查问接口
- Exporter:服务监控上报数据,如 MySQL、Redis、Node Exporter
- AlertManger:告警告诉
- 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: job
和instance
,
job
指的监控对象,这里 node exporter 是官网提供的监控机器状态的instance
是监控服务地址,一个 job 个别对应多个 instance。
node exporter 提供的监控数据都以 node_
结尾,下图是 Prometheus 页面中展现的 cpu 负载状况看板。prometheus 提供的可视化性能比拟弱,个别搭载 Grafana 应用
- 装置 Grafana。能关上 http://localhost:3000/
- 抉择 prometheus 作为数据源
- Add panel, 如下图,我在 Grafana 中减少了 cpu_load 的监控看板,可视化功能强大不少
-
手动增加看板比拟麻烦,能够应用 Grafana 模版库
- 模版库中搜寻
node_exporter
, 复制 ID - 在 Grafana 界面操作:
+
->import
-> 粘贴 ID -> 抉择导入的 prometheus 数据源
一个监控主机数据的残缺监控看板就诞生了!
- 模版库中搜寻
总结
- 介绍了 Prometheus 是什么,它风行的起因
- 介绍了 Prometheus 的总体架构
- 利用 Prometheus、Grafana、node exporter 展现了疾速搭建一个监控看板的过程
下期预报
- Prometheus 数据类型介绍
- Prometheus 查问语句 PromQL 介绍
参考
- https://prometheus.io/
- https://www.cncf.io/
- https://songjiayang.gitbooks….