2020/07/14 Prometheus+Grafana监控Docker

Prometheus监控系统概述

2020/07/14 Prometheus+Grafana监控Docker_第1张图片
2020/07/14 Prometheus+Grafana监控Docker_第2张图片
2020/07/14 Prometheus+Grafana监控Docker_第3张图片
类似zabbix的proxy这个中间人
在这里插入图片描述
可以通过ansible批量consul来监控主机
在这里插入图片描述
pushgateway就是用来采集短周期的数据,不是持续进行的,比如定时任务
2020/07/14 Prometheus+Grafana监控Docker_第4张图片
常规任务,exporter去采集
2020/07/14 Prometheus+Grafana监控Docker_第5张图片
服务发现,原生支持对k8s的服务发现
2020/07/14 Prometheus+Grafana监控Docker_第6张图片
服务端
2020/07/14 Prometheus+Grafana监控Docker_第7张图片
告警,微信告警,webhook,钉钉告警都能支持,支持告警收敛,防止告警信息轰炸
2020/07/14 Prometheus+Grafana监控Docker_第8张图片
可以用grafana、来进行展示
2020/07/14 Prometheus+Grafana监控Docker_第9张图片
2020/07/14 Prometheus+Grafana监控Docker_第10张图片
两个概念,实例可以认为是被监控端,作业就是实例的集合(一堆被监控端服务器可以进行分组)

2020/07/14 Prometheus+Grafana监控Docker_第11张图片

Prometheus监控Docker主机

2020/07/14 Prometheus+Grafana监控Docker_第12张图片
准备好两台安装好docker的,前提是有一个主配置文件

采集周期和评估周期

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration  告警是由独立组件来完成的,需要指定组件在什么位置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.下面是监控配置
scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

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

  - job_name: "docker"
    static_configs:
    - targets: ['192.168.31.62:8080']

  - job_name: "Linux"
    static_configs:
    - targets: ['192.168.31.62:9100']

docker run起来就可以了

2020/07/14 Prometheus+Grafana监控Docker_第13张图片
现在就可以访问了

2020/07/14 Prometheus+Grafana监控Docker_第14张图片
有自己的数据模型,度量指标名,里面有多个标签,为了让这个指标存入多维度的数据模型
2020/07/14 Prometheus+Grafana监控Docker_第15张图片
监控docker主机,要先运行一个容器
2020/07/14 Prometheus+Grafana监控Docker_第16张图片
2020/07/14 Prometheus+Grafana监控Docker_第17张图片
可以用states内置命令查看容器内的情况
2020/07/14 Prometheus+Grafana监控Docker_第18张图片
现在是交互式一直在变动
在这里插入图片描述
可以加上no-stream
在这里插入图片描述
可以通过shell的awk把值取出来
在这里插入图片描述
直接取利用率百分比
在这里插入图片描述
Prometheus的都要按照这个来,度量指标名称+依赖
2020/07/14 Prometheus+Grafana监控Docker_第19张图片
google开源了容器指标采集的系统cadvisor,内置在了K8S里,也是收集k8s里pod相关的指标的

cadvisor通过docke安装
2020/07/14 Prometheus+Grafana监控Docker_第20张图片
挂载一个根
在这里插入图片描述
挂载/var/run目录里面会有一些pid

在这里插入图片描述
系统启动的一些信息,当前统计的一些信息
在这里插入图片描述
挂载docker工作目录,通过这个目录可以获取运行的容器,要监控哪些容器
在这里插入图片描述
硬盘信息
在这里插入图片描述
2020/07/14 Prometheus+Grafana监控Docker_第21张图片
8080访问看看,cadvisor只负责采集数据,不负责存储
2020/07/14 Prometheus+Grafana监控Docker_第22张图片
cadvisor暴露了一个metrics指标,每一行都是监控指标,度量名称和标签,后面是对应的值,prometheus拿到这些数据放到tsdb时序数据库里

修改普罗米修斯的配置文件,采集监控端,指定连接协议 http,连接接口默认metrics
2020/07/14 Prometheus+Grafana监控Docker_第23张图片
重启下容器就好

在这里插入图片描述
container开头的都是cadvisor发过来的数据
2020/07/14 Prometheus+Grafana监控Docker_第24张图片

Prometheus+Grafana可视化展示

2020/07/14 Prometheus+Grafana监控Docker_第25张图片
安装grafana,增加一个数据源,创建仪表盘,创建用户,安装插件

增加数据源,就把普罗米修斯的访问地址9090即可
2020/07/14 Prometheus+Grafana监控Docker_第26张图片

这样就完成了添加数据源
在这里插入图片描述
建议先去grafana的仪表盘库里去找,监控docker有一个不错的,id号是193
2020/07/14 Prometheus+Grafana监控Docker_第27张图片
苦于直接选择导入仪表盘
2020/07/14 Prometheus+Grafana监控Docker_第28张图片
输入193
2020/07/14 Prometheus+Grafana监控Docker_第29张图片
选择数据源
2020/07/14 Prometheus+Grafana监控Docker_第30张图片
这样数据就出来了,起来的两个容器都采集到了

2020/07/14 Prometheus+Grafana监控Docker_第31张图片
上面是对容器的监控,还可以对主机的监控,需要下载exporter
在这里插入图片描述
2020/07/14 Prometheus+Grafana监控Docker_第32张图片
跑一下脚本,node_exporter.sh

#!/bin/bash

wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz

tar zxf node_exporter-0.17.0.linux-amd64.tar.gz
mv node_exporter-0.17.0.linux-amd64 /usr/local/node_exporter

cat </usr/lib/systemd/system/node_exporter.service
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable node_exporter
systemctl restart node_exporter

这样就起来了
在这里插入图片描述
node_exporter监控地址是9100
在这里插入图片描述
Prometheus配置文件修改

2020/07/14 Prometheus+Grafana监控Docker_第33张图片
可以重读配置也可以直接重启容器

在这里插入图片描述
现在都好了

2020/07/14 Prometheus+Grafana监控Docker_第34张图片
grafana有个9276模板
2020/07/14 Prometheus+Grafana监控Docker_第35张图片
2020/07/14 Prometheus+Grafana监控Docker_第36张图片

2020/07/14 Prometheus+Grafana监控Docker_第37张图片
如果遇到不出图,可能遇到很多原因,没数据(编辑的时候把公式复制到prometheus里执行看看),时间不对(选择7天这种,看能否出图,能出图多半是时间不对),promsql语句不对

你可能感兴趣的:(K8S进阶)