Docker监控部署

部署软件prometheus普罗米修斯

监控服务器 需要安装4个服务

Prometheus Server(普罗米修斯监控主服务器)

Node Exporter (收集Host硬件和操作系统信息)

cAdvisor (负责收集Host上运行的容器信息)

Grafana (展示普罗米修斯监控界面)

下面是两种部署模式,根据情况进行部署:



1. 下载prometheus到监控端

其实只是要里面的prometheus.yml文件

https://github.com/prometheus/prometheus/releases/download/v2.6.0-rc.0/prometheus-2.6.0-rc.0.linux-amd64.tar.gz

这里我解压到/mdata/prometheus目录下

2. 安装Node Exporter 来收集硬件信息

docker run -d -p 9100:9100 \

-v "/proc:/host/proc" \

-v "/sys:/host/sys" \

-v "/:/rootfs" \

-v "/etc/localtime:/etc/localtime" \

--net=host \

prom/node-exporter \

--path.procfs /host/proc \

--path.sysfs /host/sys \

--collector.filesystem.ignored-mount-points"^/(sys|proc|dev|host|etc)($|/)"


3. 安装cAdvisor 来收集容器信息 所有节点运行以下命令来安装cAdvisor

docker run \

--volume=/:/rootfs:ro \

--volume=/var/run:/var/run:rw \

--volume=/sys:/sys:ro \

--volume=/var/lib/docker/:/var/lib/docker:ro \

--publish=8080:8080 \

--detach=true \

--name=cadvisor \

--net=host \

-v "/etc/localtime:/etc/localtime" \

google/cadvisor:latest

4.修改prometheus.yml文件

vim /mdata/prometheus/prometheus.yml

修改文件最后的:

static_configs:

- targets:['localhost:9090','localhost:8080','localhost:9100']

加入之前启动的两个容器端口,此处使用localhost是因为我采用的是监控端与被监控端同属一台服务器的方式,若果不属于一台则指定IP即可

5.运行普罗米修斯监控服务

docker run -d -p 9090:9090 \

-v /mdata/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \

-v "/etc/localtime:/etc/localtime" \

--name prometheus \

--net=host \

prom/Prometheus

6. 访问页面

http://监控服务器IP:9090

单机Status下的Targets,显示全部为UP即为成功。


7. 安装grafana

docker run -d -i -p 3000:3000 -v"/etc/localtime:/etc/localtime" -e"GF_SERVER_ROOT_URL=http://grafana.server.name" -e"GF_SECURITY_ADMIN_PASSWORD=admin8888" --net=host grafana/grafana

#其中admin8888为密码,用户名默认为admin

通过http://IP:3000访问


8. 配置grafana

从做到右依次点击

点击save有明显的成功提示

添加图形

下载模板

https://grafana.com/dashboards?dataSource=prometheus&search=docker

点击下载

上传模板

点击+号会选择import,上传下载好的模板

此时会生成图形

9.  有些图形可能收取不到数据,原因是模板搜索的时候搜索不到,这时可以手动调整,例如:

假如下图出现的是N/A

点击running containers的小箭头(鼠标放置就会出现)

点击Edit编辑

在普罗米修斯web页面中进行搜索container_last_seen

搜索成功会出现数据

然后查看后面的匹配,如name!="" 表示排除到没有名字的数据,因为只有容器会定义名称,

如果没有匹配到说明正则有问题,根据输出进行修改即可

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

推荐阅读更多精彩内容

  • 操作系统:Ubuntu14.04 软件:npm,nodejs,sitespeed.io,graphite,graf...
    kikyoar阅读 5,971评论 0 0
  • 主机数据收集 主机数据的采集是集群监控的基础;外部模块收集各个主机采集到的数据分析就能对整个集群完成监控和告警等功...
    梅_梅阅读 11,669评论 0 7
  • 欢迎来到Spring Boot Actuator教程系列的第二部分。在第一部分中,你学习到了spring-boot...
    alvin_wang阅读 32,627评论 1 35
  • 家里有一个草缸,和妈妈申请了好久才“要”到的,过程艰辛就不必说了 鱼缸的底部铺了两层不同颜色的砂石...
    纳兰伊依阅读 1,332评论 0 0
  • 苹果官方的简介: The programmatic interface to objects that manag...
    Django_Monstar阅读 2,256评论 0 0