Prometheus+Grafana部署监控docker

监控docker
安装 cAdvisor 被监控的主机都要安装
CAdvisor是谷歌开发的用于分析运行中容器的资源占用和性能指标的开源工具。CAdvisor是一个运行时的守护进程,负责收集、聚合、处理和输出运行中容器的信息。
官方地址:https://github.com/google/cadvisor

docker run \
  --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=8090:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:v0.24.1

cAdvisor的web界面,数据实时刷新但是不能存储

Prometheus+Grafana部署监控docker_第1张图片Prometheus+Grafana部署监控docker_第2张图片Prometheus+Grafana部署监控docker_第3张图片Prometheus+Grafana部署监控docker_第4张图片

Prometheus

官方地址:https://prometheus.io/

Prometheus 具有以下特点:

强大的多维度数据模型:

    时间序列数据通过 metric 名和键值对来区分。
    所有的 metrics 都可以设置任意的多维标签。
    数据模型更随意,不需要刻意设置为以点分隔的字符串。
    可以对数据模型进行聚合,切割和切片操作。
    支持双精度浮点类型,标签可以设为全 unicode。

灵活而强大的查询语句(PromQL):在同一个查询语句,可以对多个 metrics 进行乘法、加法、连接、取分数位等操作。
易于管理: Prometheus server 是一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。
高效:平均每个采样点仅占 3.5 bytes,且一个 Prometheus server 可以处理数百万的 metrics。
使用 pull 模式采集时间序列数据,这样不仅有利于本机测试而且可以避免有问题的服务器推送坏的 metrics。
可以采用 push gateway 的方式把时间序列数据推送至 Prometheus server 端。
可以通过服务发现或者静态配置去获取监控的 targets。
有多种可视化图形界面。
易于伸缩。

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

1.环境
192.168.200.131 Prometheus 监控服务器
192.168.200.132 docker 服务(被监控端)
centos7系统

2.下载安装包
https://prometheus.io/download/ (需要的安装包都可以下载)

服务端(监控server)

[root@node-6 prometheus]# wget https://github.com/prometheus/prometheus/releases/download/v2.18.1/prometheus-2.18.1.linux-amd64.tar.gz

3.安装prometheus部署到/usr/local/目录
promethus不用编译安装,解压目录中有配置文件与启动文件

[root@node-6 prometheus]# tar -zxvf prometheus-2.3.2.linux-amd64.tar.gz -C /usr/local/
[root@node-6 prometheus]# cd /usr/local/ 
[root@node-6 prometheus]# mv prometheus-2.3.2.linux-amd64/ prometheus
[root@node-6 prometheus]# cd prometheus/

备份配置文件并配置

[root@node-6 prometheus]# cp prometheus.yml prometheus.yml-bak
[root@node-6 prometheus]# vi prometheus.ym

Prometheus+Grafana部署监控docker_第5张图片
在最后一行添加需要监控的服务器IP和端口`

[root@node-6 prometheus]#./prometheus --config.file=prometheus.yml &
[root@node-6 prometheus]# ss -ntl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128           *:22                        *:*                  
LISTEN      0      100    127.0.0.1:25                        *:*                  
LISTEN      0      128          :::9090                     :::*    

Prometheus+Grafana部署监控docker_第6张图片
点击”status”可以查看相关状态。

4.node_exporter安装
wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz
解压并安装
tar xf node_exporter-0.16.0.linux-amd64.tar.gz C /usr/local/
cd /usr/local/ && mv mv node_exporter-0.16.0 node_exporter
cd node_exporter/ && ./node_exporter &

返回一大堆指标

5.grafana安装

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-6.7.3-1.x86_64.rpm

 yum localinstall grafana-6.7.3-1.x86_64.rpm -y
 
 systemctl daemon-reload
 
 systemctl start grafana-server
 查看服务是否正常启动
 systemctl status grafana-server
 开启系统默认启动
 systemctl enable grafana-server

访问:http://192.168.200.131:3000/login
默认密码:admin/admin

Prometheus+Grafana部署监控docker_第7张图片
Prometheus+Grafana部署监控docker_第8张图片
Prometheus+Grafana部署监控docker_第9张图片
Prometheus+Grafana部署监控docker_第10张图片
Prometheus+Grafana部署监控docker_第11张图片
Prometheus+Grafana部署监控docker_第12张图片
Prometheus+Grafana部署监控docker_第13张图片

你可能感兴趣的:(Prometheus+Grafana部署监控docker)