prometheus监控docker的状态2020-06-17

参考课程来源:https://www.bilibili.com/video/BV1T54y1Q7VY

 

1.prometheus

 

prometheus是监控系统,也是时间序列数据库

prometheus.yml配置文件,关于配置文件,也可以参考官方文档:https://prometheus.io/docs/prometheus/latest/configuration/configuration/

global:
  # How frequently to scrape targets by default.
  scrape_interval: 15s  

  # How frequently to evaluate rules.
  evaluation_interval: 15s

# Rule files specifies a list of globs. Rules and alerts are read from
# all matching files.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A list of scrape configurations.
scrape_configs:
  - job_name: 'prometheus'
  static_configs:
  - targets:['localhost:9090']

# Alerting specifies settings related to the Alertmanager.
alerting:  
  alertmanagers:
    - targets:
  # - alertmanager:9093

prometheus配置文件说明,参考自官方文档

prometheus监控docker的状态2020-06-17

 

 

创建prometheus容器,请注意prometheus.yml配置文件存放的位置

sudo docker run -d \
--name=prometheus \
--restart=always \
-p 9090:9090 \
-v /root/docker/temp/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus

运行效果

prometheus监控docker的状态2020-06-17

 

打开服务器的9090端口,能看到只监控自己本身(即localhost:9090) prometheus监控docker的状态2020-06-17

 

2.cAdvisor

cAdvisor(Container Advisor)是Google开源,用于收集一台机器上所有运行的容器信息(cAdvisor只进行查看,并不做数据的保存,所以需要将cAdvisor的数据加载到Prometheus中)

sudo docker run -d \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
--restart=always \
google/cadvisor:latest

运行效果

prometheus监控docker的状态2020-06-17

 

查看服务器的8080端口

prometheus监控docker的状态2020-06-17

 

 

查看服务器的8080端口如果进入到服务器的http://172.17.130.131:8080/metrics地址,则可以看到监控的指标prometheus监控docker的状态2020-06-17

 

 

3.node-exporter

node-expoter是prometheus开源的,能够提取到机器的信息

docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  prom/node-exporter

运行效果

prometheus监控docker的状态2020-06-17

 

查看服务器地址:http://172.17.130.131:9100/metrics,也可以查看到node-export的监控指标

prometheus监控docker的状态2020-06-17

 

修改配置文件prometheus.yml,增加了cAdvisor和node-expoter配置,修改如下(删除了部分注释),然后重启prometheus容器

lobal:
  scrape_interval:     15s
  evaluation_interval: 15s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: docker
    static_configs:
      - targets: ['172.17.130.131:8080']
        labels:
          instance: localhost

  - job_name: linux
    static_configs:
      - targets: ['172.17.130.131:9100']
        labels:
          instance: localhost  

 

 

4.Grafana

grafana是跨平台的开源试题分析和可视化工具,可以通过将采集的数据查询然后做可视化的展示。
启动Grafana容器

sudo docker run -d --name=grafana --restart=always -p 3001:3000 grafana/grafana

运行效果

prometheus监控docker的状态2020-06-17

 

进入到服务器的3001端口(原本是3000端口,因为服务器在占用3000端口,所以修改成3001)
默认的用户名与密码都是admin,首次进入需要修改密码

prometheus监控docker的状态2020-06-17

 

 

进入后新增数据源(Data Source)

prometheus监控docker的状态2020-06-17

 

可以增加一个prometheus的数据源

prometheus监控docker的状态2020-06-17

 

在prometheus中选择数据源为服务器的9090地址

prometheus监控docker的状态2020-06-17

 

导入grafana,http://172.17.130.131:3001/dashboard/import
Docker主机监控模板:193
Linux主机监控模板:9276 8919 12227

prometheus监控docker的状态2020-06-17

 

 点击Load后,可以看到看板的信息

prometheus监控docker的状态2020-06-17

 

Docker容器的看板

prometheus监控docker的状态2020-06-17

 

 

prometheus监控docker的状态2020-06-17

 

 

 

有道云笔记地址:https://note.youdao.com/ynoteshare1/index.html?id=d91a9f59c0d6f208fdc42014c3870c59&type=note

上一篇:docker重启提示已存在一个容器的问题处理


下一篇:CentOS8图形化运维利器--Cockpit