Prometheus-简单介绍

989 阅读2分钟

简介

是一个面向云原生应用程序的开源的监控&报警工具。

  • 开源:继Kubernetes之后的第二个CNCF开源项目,Go语言开发
  • 监控:通过HTTP服务定时从配置的目标收集指标数据,识别数据展示规则,展示监控系统和服务指标数据
  • 报警:监控到的指标数据达到某一设定好的条件时,触发报警机制
  • 时间序列数据库: 时间序列是由唯一的指标名称(Metrics)和一组标签(key=value)的形式组成
  • PromeQL:基于Prometheus时间序列数据库的一个灵活的查询语言

监控对象

  • 资源监控

    服务器的资源使用情况,在Kubernetes集群中,则可以做到对Kubernetes Node、 Deployment 、Pod的资源利用以及apiserver,controller-manager,etcd等组件的监控。

  • 应用监控

    业务应用暴露端口供Prometheus调用实现监测,比如实时的用户在线人数,数据库的当前连接数等。

Prometheus优势

  • 支持机器资源和动态配置的应用监控;
  • 多维数据收集和查询;
  • 服务独立,少依赖。

Prometheus组件

  • Prometheus Server:采集监控数据,存储时序指标,提供数据查询;
  • Prometheus Client SDK:对接开发工具包,提供自定义的指标数据等;
  • Push Gateway:推送指标数据的网关组件;
  • Third-part Exporter:外部指标采集系统,暴露接口供Prometheus采集;
  • AlertManager:指标数据的分析告警管理器;

流程架构

Prometheus architecture
上图来源于官网

  • 处理流程
    1. 配置资源目标或应用抓取;
    2. 抓取资源或应用指标数据;
    3. 制定报警规则,推送报警;
    4. 灵活查询语言,结合Grafana展示

结束语

Prometheus是一款优秀的系统资源、应用状态等方面的监控工具,配置简单,能够与Grafana(一款数据度量分析的可视化工具,也很强大)无缝配合,呈现最佳指标数据的呈现。