2020/07/14 Prometheus+Grafana监控Docker

Prometheus监控系统概述

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

在这里插入图片描述

Prometheus监控Docker主机

在这里插入图片描述
准备好两台安装好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=<job_name>` 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起来就可以了

在这里插入图片描述
现在就可以访问了

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

cadvisor通过docke安装
在这里插入图片描述
挂载一个根
在这里插入图片描述
挂载/var/run目录里面会有一些pid

在这里插入图片描述
系统启动的一些信息,当前统计的一些信息
在这里插入图片描述
挂载docker工作目录,通过这个目录可以获取运行的容器,要监控哪些容器
在这里插入图片描述
硬盘信息
在这里插入图片描述
在这里插入图片描述
8080访问看看,cadvisor只负责采集数据,不负责存储
在这里插入图片描述
cadvisor暴露了一个metrics指标,每一行都是监控指标,度量名称和标签,后面是对应的值,prometheus拿到这些数据放到tsdb时序数据库里
在这里插入图片描述
修改普罗米修斯的配置文件,采集监控端,指定连接协议 http,连接接口默认metrics
在这里插入图片描述
重启下容器就好

在这里插入图片描述
container开头的都是cadvisor发过来的数据
在这里插入图片描述

Prometheus+Grafana可视化展示

在这里插入图片描述
安装grafana,增加一个数据源,创建仪表盘,创建用户,安装插件

增加数据源,就把普罗米修斯的访问地址9090即可
在这里插入图片描述

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

在这里插入图片描述
上面是对容器的监控,还可以对主机的监控,需要下载exporter
在这里插入图片描述
在这里插入图片描述
跑一下脚本,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 <<EOF >/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配置文件修改

在这里插入图片描述
可以重读配置也可以直接重启容器

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

在这里插入图片描述
grafana有个9276模板
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果遇到不出图,可能遇到很多原因,没数据(编辑的时候把公式复制到prometheus里执行看看),时间不对(选择7天这种,看能否出图,能出图多半是时间不对),promsql语句不对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值