栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Prometheus监控docker容器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Prometheus监控docker容器

安装docker环境
使用命令

sudo yum update	//更新到最新
yum install docker	//安装docker

启动docker并设置成开机自启动

systemctl start docker
systemctl enable docker

关闭防火墙,禁用selinux

systemctl stop firewalld.service
sudo setenforce 0

使用sestatus查看selinux状态,这里只是暂时禁用

部署node-EXporter,收集硬件和系统信息,端口9100,客户机和服务器都需要安装

docker run -d -p 9100:9100 -v /proc:/host/proc -v /sys:/host/sys -v /:/rootfs --net=host prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

部署过程中会出现报错如下

unable to find image ‘prom/node-exporter:last’ locally

这里需要更换镜像源,我们换成阿里云
命令如下

vim /etc/docker/daemon.json

添加如下内容

{ 
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 
}

然后重启docker服务

systemctl restart docker
#systemctl status docker

然后重新执行部署命令

这里出现的警告,是因为docker容器启动时指定–network=host或-net=host,如果还指定了-p或-P,那这个时候就会有此警告,并且通过-p或-P设置的参数将不会起到任何作用,端口号会以主机端口号为主,重复时则递增。

进行验证,在本地主机上,输入地址
http://192.168.248.133:9100/metrics

出现如上就是安装成功了

部署安装cAdvisor,收集节点容器信息,服务器和客户机都需要安装,端口8080

docker run -v /:/rootfs:ro -v /var/run:/var/run/:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -p 8080:8080 --detach=true --name=cadvisor --net=host google/cadvisor

验证收集效果传递
在本地主机浏览器输入地址http://192.168.248.133:8080/containers/

部署prometheus-server服务,服务器安装即可
先启动一个prometheus服务,目的是复制他的配置文件,修改配置文件,prometheus挂载这个文件

mkdir /Prometheus
chmod 777 /Prometheus   #给文件夹权限
docker run -d --name test -P prom/Prometheus
docker cp test:/etc/prometheus/prometheus.yml /Prometheus
vim /prometheus/prometheus.yml     #修改配置文件

#编辑prometheus配置文件,在static_configs下面修改为
#以下添加的地址都将会被监控起来

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

本机输入IP地址进行测试
192.168.248.133:8080

遇到down的情况可以查看一下是否是容器关闭了,我中间有重启过docker服务,所以有容器关掉了,重新开起来就好

docker restart 容器名称
docker rm -f prometheus
docker run -d --name prometheus -p 9090:9090 -v /prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /prometheus/rules:/usr/local/prometheus/rules --net host prom/Prometheus

在prometheus服务器上部署Grafana,端口3000

mkdir /grafana
chmod 777 -R /grafana
docker run -d -p 3000:3000 --name grafana -v /grafana:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=123.com" grafana/grafana

访问测试,浏览器地址输入192.168.248.134:3000
默认账号密码为
username:admin
password:123.com

如上就是安装成功的样子。

登录进去,添加数据源
左侧选择【设置按钮】->【Data Source】->【 Add Data Source 】->输入服务器地址及端口
->点击【Save&test】,弹出【Data source is working】代表添加成功

导入8919模板,我们可以监控到客户机的本地资源,这里还监控不到docker资源信息


导入模板11600,我们选中监控客户机,然后可以看到客户机中docker的运行情况,如下图

以上就可以监控到docker容器的状况了。

创建邮箱报警

配置Alertmanager报警,服务端配置即可,端口9093
同样以 Docker 方式启动 AlertManager
同prometheus一样,先启动一个test容器,拷贝下来alertmanager的配置文件
就相当于创建一个模板,然后复制模板的配置文件加以修改后再使用,使用命令如下:

mkdir /alertmanager
sudo chmod 777 /alertmanager #给最高权限,方便读写
docker run -d --name test -p 9093:9093 prom/alertmanager
docker cp test:/etc/alertmanager/alertmanager.yml /alertmanager
cd /alertmanager
cp alertmanager.yml alertmanager.yml.bak


验证测试,出现如下就是安装成功
配置alertmanager邮箱报警
获取qq邮箱授权码(这个自行百度)

然后编辑配置文件

vim /alertmanager/alertmanager.yml


贴一个模板,大家复制黏贴使用

global:
  resolve_timeout: 5m
  smtp_from: '12345678@163.com'
  smtp_smarthost: 'smtp.163.com:465'
  smtp_auth_username: '12345678@163.com'
  smtp_auth_password: 'BPAOGHPPLGKBLYYNKFL'
  smtp_require_tls: false
  smtp_hello: '163.com'
route:
  group_by: ['alertname']
  group_wait: 5s
  group_interval: 5s
  repeat_interval: 5m
  receiver: 'email'
receivers:
- name: 'email'
  email_configs:
  - to: '12345678@163.com'
    send_resolved: true
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']

重启alertmanager容器

docker rm -f test
docker run -d --name alertmanager -p 9093:9093 -v /alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager

prometheus添加alertmanager报警规则
接下来,我们需要在 Prometheus 配置 AlertManager 服务地址以及告警规则,新建报警规则文件 node-up.rules 如下

mkdir /prometheus/rules
cd /prometheus/rules
vim node-up.rules


修改prometheus.yml文件,添加rules规则

vim /prometheus/prometheus.yml

重启普罗米修斯
在prometheus上查看相应的规则


如上就是配置成功了。

触发报警发送邮件
我们关闭客户机中其中一个服务,这里举例关闭容器cadvisor
使用命令 docker stop b8d26c109f64


15s会发一条邮箱到指定的邮箱当中,至此配置完成

结语

问题1
在配置前一定要关闭防火墙,禁用selinux,否则会没办法下载组件
问题2
在创建prometheus文件夹时,一定要给这个文件夹设置权限,这里我给了最高权限

Chmod 777 Prometheus

问题3
编辑报警组件的配置文件alertmanager.yml时,要注意smtp_auth_password这个参数不是
邮箱密码,而是我们生成的授权码
问题4
在添加rules路径的时候,前面有个小横杠不能忘

有问题请指出。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/890681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号