prometheus之docker监控与告警系列(一)

本系列主要介绍prometheus+cadvisor+alertmanager打造docker监控,主要监控指定docker容器是否挂掉

本节主要熟悉prometheus的部署和基本使用

一、部署环境

mac

二、下载prometheus的mac版

进入下载页,操作系统选择darwin

https://prometheus.io/download/

download.png

三、解压,进入目录运行

./prometheus --config.file=prometheus.yml

四、浏览监控页面,查看对自身监控的一些信息

图表页: http://localhost:9090/graph
metrics页面: http://localhost:9090/metrics

1)查看控制台日志输出
切换到Console尝试输入表达式,并点击execute,查看结果

prometheus_target_interval_length_seconds

image.png

count(prometheus_target_interval_length_seconds)

image.png

更多表达式参考:expression language documentation

2)查看图表输出

切换到Graph尝试输入表达式,并点击execute,查看结果

rate(prometheus_tsdb_head_chunks_created_total[1m])

image.png

五、做点实验

1)确保已经安装了go的开发环境,并配置了环境变量,golang的protobuf依赖是最新的

# Fetch the client library code and compile example.
git clone https://github.com/prometheus/client_golang.git
cd client_golang/examples/random
go get -d
go build

# Start 3 example targets in separate terminals:
./random -listen-address=:8080
./random -listen-address=:8081
./random -listen-address=:8082

接下来分别打开以下网址查看metrics

http://localhost:8080/metrics
http://localhost:8081/metrics
http://localhost:8082/metrics

2)修改prometheus.yml

scrape_configs:
  - job_name:       'example-random'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:8080', 'localhost:8081']
        labels:
          group: 'production'

      - targets: ['localhost:8082']
        labels:
          group: 'canary'

打开网址 http://localhost:9090/
输入以下条件过滤,查看console

rpc_durations_seconds

image.png

3)根据给定规则输出监控内容
新增prometheus.rules.yml

groups:
- name: example
  rules:
  - record: job_service:rpc_durations_seconds_count:avg_rate5m
    expr: avg(rate(rpc_durations_seconds_count[5m])) by (job, service)

修改prometheus.yml指定prometheus.rules.yml

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.
  evaluation_interval: 15s # Evaluate rules every 15 seconds.

  # Attach these extra labels to all timeseries collected by this Prometheus instance.
  external_labels:
    monitor: 'codelab-monitor'

rule_files:
  - 'prometheus.rules.yml'

scrape_configs:
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']

  - job_name:       'example-random'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:8080', 'localhost:8081']
        labels:
          group: 'production'

      - targets: ['localhost:8082']
        labels:
          group: 'canary'

在localhost:9090的console查看新规则的聚合数据

job_service:rpc_durations_seconds_count:avg_rate5m

image.png

参考:https://prometheus.io/docs/prometheus/latest/getting_started/

欢迎继续阅读:

prometheus之docker监控与告警系列(二)

prometheus之docker监控与告警系列(三)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 下载Prometheus下载最新安装包,本文说的都是在Linux x64下面内容,其它平台没尝试过,请选择合适的下...
    Zero___阅读 4,712评论 0 2
  • 翻译 原文链接 Prometheus是一个监控平台,通过抓取目标上和metric相关的HTTP endpoint,...
    xufeibuaa阅读 13,428评论 2 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,447评论 19 139
  • 1 第一次受到你的惊吓,是在由辅导员召开的新生入学班会上。 我们寝室四个坐在了第一排,相互寒暄,简单介绍了自己的名...
    乔克儿阅读 4,010评论 6 21
  • 很久以前就想来平遥,这次终于决定出发,为什么选在这个时候,就是想找一个远离生活,远离都市的地方,静静地待一...
    奔跑ing的蜗牛阅读 1,651评论 0 1