美文网首页Amazing Arch
Prometheus快速体验

Prometheus快速体验

作者: 十毛tenmao | 来源:发表于2019-03-02 21:47 被阅读21次

    Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes 的项目。

    Prometheus监控系列

    简介及工作原理

    Prometheus 生态圈中包含了多个组件,其中许多组件是可选的:

    • Prometheus Server: 用于收集和存储时间序列数据。
    • Client Library: 客户端库,为需要监控的服务生成相应的 metrics 并暴露给 Prometheus server。当 Prometheus server 来 pull 时,直接返回实时状态的 metrics。
    • Push Gateway: 主要用于短期的 jobs。由于这类 jobs 存在时间较短,可能在 Prometheus 来 pull 之前就消失了。为此,这次 jobs 可以直接向 Prometheus server 端推送它们的 metrics。这种方式主要用于服务层面的 metrics,对于机器层面的 metrices,需要使用 node exporter。
    • Exporters: 用于暴露已有的第三方服务的 metrics 给 Prometheus。
    • Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty,OpsGenie, webhook 等。
    • 一些其他的工具。
    Prometheus 架构图

    从上图可以看出,Prometheus 的主要模块包括:Prometheus server, exporters, Pushgateway, PromQL, Alertmanager 以及图形界面。

    其大概的工作流程是:

    1. Prometheus server 定期从配置好的 jobs 或者 exporters 中拉 metrics,或者接收来自 Pushgateway 发过来的 metrics,或者从其他的 Prometheus server 中拉 metrics。
    2. Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。
    3. Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。
    4. 在图形界面中,可视化采集数据。

    metrics是Prometheus的核心概念,代表被监控的数据,每个客户端都需要提供一个metrics查询接口供Prometheus获取监控数据。(下面最后可以通过浏览器查看Prometheus自己暴露的查看接口:http://localhost:9090/metrics

    需要指出的是,由于数据采集可能会有丢失,所以 Prometheus 不适用对采集数据要 100% 准确的情形。但如果用于记录时间序列数据,Prometheus 具有很大的查询优势,此外,Prometheus 适用于微服务的体系架构。

    快速体验

    • 下载&解压
    wget https://github.com/prometheus/prometheus/releases/download/v2.7.1/prometheus-2.7.1.linux-amd64.tar.gz
    tar xzf prometheus-2.7.1.linux-amd64.tar.gz
    cd prometheus-2.7.1.linux-amd64
    ./prometheus --help
    
    • 配置(prometheus.yml)
    global:
      scrape_interval:     15s
      evaluation_interval: 15s
    
    rule_files:
      # - "first.rules"
      # - "second.rules"
    
    scrape_configs:
      - job_name: prometheus
        static_configs:
          - targets: ['localhost:9090']
    
    • 启动Prometheus服务器
    ./prometheus --config.file=prometheus.yml
    
    • 查看结果
    监控效果图

    参考

    相关文章

      网友评论

        本文标题:Prometheus快速体验

        本文链接:https://www.haomeiwen.com/subject/buoyuqtx.html