监控利器-Prometheus安装与部署+实现邮箱报警

Prometheus(普罗米修斯)监控

环境准备:

三台docker主机(centos7):
docker01:172.16.1.30
部署服务:Prometheus server,Grafana,Node Exporter,cAdvrisor
docker02:172.16.1.31
部署服务:Node Exporter,cAdvrisor
docker03:172.16.1.32
部署服务:Node Exporter,cAdvrisor

注意:因为是测试环境,所以暂时关闭防火墙,禁用selinux,如果是对外网发布的服务器,不可以关闭防火墙,可以设置firewalld及iptables规则。


  • Prometheus server:普罗米修斯的主服务器,监听端口:9090
  • Node Exporter:收集Host硬件和操作系统的信息,监听端口:9100
  • vAdvrisor:负责收集Host上运行的container信息,监听端口:8080
  • Grafana:用来展示普罗米修斯监控操作界面。

项目操作:

1,部署Node Export(收集dockerhost信息)
#三台dockerhost都需要依次部署:

(1)下载镜像prom/node-exporter镜像:
[[email protected] ~]# docker pull prom/node-exporter
(2)运行Node Exporter容器(挂载系统目录)
[[email protected] ~]#  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)($|/)"

  • 参数--net=host:这样Prometheus server可以直接与Node Exporter通信

#查看容器是否正常运行:

三台都部署完成后,登录web网页进入验证:
输入URL(三台主机的都可以):http://172.16.1.30:9100/

进来以后,可以看到信息全是代码,非常的不友好,因为我们还没有部署图形化(Grafana)。



2,部署cAdvisor(收集container信息)
#依次在三台dockerhost上分别部署

(1)下载google/cadvisor镜像
[[email protected] ~]# docker pull google/cadvisor
(2)运行cAdvisor镜像:
[[email protected] ~]# 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

//查看容器是否正常运行:

登陆web网页验证:
URL:http://172.16.1.30:8080


可以检测到dockerhost的各种信息。



3,部署Prometheus server:(普罗米修斯的主服务)
只部署在docker01上:

(1)下载Prometheus镜像:
[[email protected] ~]# docker pull prom/prometheus
(2)获取普罗米修斯的配置文件,先运行一个基于普罗米修斯的镜像:
[[email protected] ~]# docker run -d -p 9090:9090 --name  prometheus --net=host prom/prometheus
(3)拷贝prometheus容器内配置文件到当前目录下:
[[email protected] ~]#  docker cp prometheus:/etc/prometheus/prometheus.yml /root/
修改该.yml文件:
[[email protected] ~]# vim prometheus.yml 

添加本机和另外两台docker主机上服务的监控地址:端口

(4)删除刚刚创建的Prometheus容器(只为拷贝配置文件)

[[email protected] ~]# docker stop prometheus
[[email protected] ~]# docker rm prometheus 
(5)运行一个Prometheus容器:
[[email protected] ~]# docker run -d -p 9090:9090 -v /root/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus --net=host prom/prometheus

//查看容器是否正常运行:

登陆Prometheus web页面:
URL:http://172.16.1.30:9090

确保监控到刚刚配置文件中添加三台dockerhost的主机及端口,并且状态为up。



4,部署Grafana:(提供友好的图形化界面)
在Prometheus server上进行部署:

(1)下载Grafana镜像:
[[email protected] ~]# docker pull grafana/grafana

(2)运行Grafana:(设置登陆密码为123.com)
[[email protected] ~]# mkdir grafana-storage
[[email protected] ~]# chmod 777 -R grafana-storage/
[[email protected] ~]# docker run -d -p 3000:3000 --name grafana -v /root/grafana-storage:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=123.com" grafana/grafana


如果出现以上报错,需要重新加载进程,并且重启docker服务。

确保容器已经运行:

访问web界面(图形化):
URL:http://172.16.1.30:3000
默认用户名:admin 密码:123.com

登陆界面如下:

(3)接下来我们在图形化web界面上进行部署:
点击首页上名称为“add data source”图标---------->选择“Prometheus”点击进入到以下界面

设置成功后,接下来进入Grafana的官网https://grafana.com/
下载监控模板





下载成功后,回到Grafana管理的图形化界面。
点击导入刚刚下载的josn文件:




导入成功后,可以看到以下监控界面:

当然你也可以导入其他模板,可以在刚才的官网上下载其他模板。


3,实现Prometheus邮箱报警:

肯定是在Prometheus server进行部署啦

(1)下载Alertmanager告警镜像
[[email protected] ~]# docker pull prom/alertmanager

(2)运行alertmanager:
[[email protected] ~]#  docker run --name alertmanager -d -p 9093:9093 prom/alertmanager

测试能否访问web界面:
URL:http://172.16.1.30:9093/

(3)拷贝它配置文件:
如果不知道它的配置文件路径,则需要进入容器进行查看:

[[email protected] ~]# docker cp alertmanager:/etc/alertmanager/alertmanager.yml /root/

删除刚刚创建的容器:(只为了拷贝配置文件)

[[email protected] ~]# docker stop alertmanager
[[email protected] ~]# docker rm alertmanager
修改该.yml配置文件:
[[email protected] ~]# vim alertmanager.yml 

设置实现报警的邮箱信息:

注意:上面定义的smtp邮件协议,qq邮箱是465,如果填写的是其他邮箱,则需要填写相对应的smtp端口号。

  • 配置项解释:
  • global: 全局配置。报警策略,报警渠道等。
  • route: 分发策略。
  • receivers: 接收者。
  • inhibit_rules: 抑制策略。当存与另一组匹配的警报,抑制规则将禁止与一组匹配的警报。
(4)重新运行容器:
[[email protected] ~]# docker run -d --name alertmanager  -p 9093:9093  -v /root/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager

//确保容器正常运行:

(5)设置Alertmanager报警规则:
[[email protected] ~]# mkdir -p prometheus/rules
[[email protected] ~]# cd prometheus/rules/
编写规则文件:
[[email protected] rules]# vim node-up.rules 

以上是自己自定义编写的,当然也可以登陆Prometheus官网,搜索规则模板进行编写:

//接下来修改普罗米修斯配置文件:
[[email protected] ~]# vim prometheus.yml

删除刚刚运行的普罗米修斯容器:
[[email protected] ~]# docker stop prometheus
prometheus
[[email protected] ~]# docker rm prometheus
prometheus
//需要重新运行容器,将规则目录挂载到容器中:
[[email protected] ~]# docker run -d -p 9090:9090 -v /root/prometheus.yml:/etc/prometheus/prometheus.yml -v /root/prometheus/rules:/usr/local/prometheus/rules --name prometheus --net=host prom/prometheus

确保容器正常运行后,登陆网页进行查看:

确保能够看到刚才编写的规则。



(6)测试邮箱报警:
接下来模拟其中一台主机上的某个服务宕机掉,验证qq邮箱是否能够收到邮件:

[[email protected] ~]# docker stop cadvisor
cadvisor

登陆Prometheus界面可以看到该服务down:


当服务宕机后,邮箱收到该报警邮件,提示为“FIRING”



如果当你的服务又恢复了正常运行,依然后触发报警规则,会给你发送邮件,提示容器已修复“RESOLVED”(如下图)

(7)搭建报警信息模板:

[[email protected] ~]# mkdir alertmanager-tmpl
[[email protected] ~]# cd alertmanager-tmpl/
[[email protected] alertmanager-tmpl]# vim email.tmpl

编写模板脚本:(填写报警的qq邮箱)
{{ define "email.from" }}[email protected]{{ end }}
{{ define "email.to" }}[email protected]{{ end }}
{{ define "email.to.html" }}
{{ range .Alerts }}
=========start==========<br>
告警程序: prometheus_alert<br>
告警级别: {{ .Labels.severity }} 级<br>
告警类型: {{ .Labels.alertname }}<br>
故障主机: {{ .Labels.instance }}<br>
告警主题: {{ .Annotations.summary }}<br>
触发时间: {{ .StartsAt.Format "2019-08-04 16:58:15" }} <br>
=========end==========<br>
{{ end }}
{{ end }}

//修改alertmanager配置文件:
[[email protected] ~]# vim alertmanager.yml

#注意缩进:

//删除原来的容器:
[[email protected] ~]# docker stop alertmanager
 [[email protected] ~]# docker rm alertmanager
//重新运行容器(重新挂载文件)
[[email protected] ~]# docker run -d --name alertmanager -p 9093:9093 -v /root/alertmanager.yml:/etc/alertmanager/alertmanager.yml -v /root/prometheus/alertmanager-tmpl:/etc/alertmanager-tmpl prom/alertmanager

确保容器已正常运行:

接下来停掉一个容器,模拟宕机:

状态为down:

//qq邮箱收到报警邮件:

//同样的,如果当你的服务恢复了正常运行后,也会发送报警邮件:

至此普罗米修斯监控部署完毕,并且成功实现邮箱报警。。。

———————— 本文至此结束,感谢阅读 ————————

原文地址:https://blog.51cto.com/13972012/2446995

时间: 2024-08-29 12:27:59

监控利器-Prometheus安装与部署+实现邮箱报警的相关文章

k8s实践17:监控利器prometheus helm方式部署配置测试

监控利器prometheus helm方式部署配置测试 1.部署helm 部署helm参考方法 后面使用helm部署grafana和prometheus,因此首先需要部署helm,保证helm能正常使用. 部署helm客户端过程见下: [[email protected] helm]# curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh % Total % Receive

运维监控利器nagios安装与配置Nagios监控系统(一)

nagios 的功能原理 我这里就不介绍了 我们主要讲述安装配置 使用nagios对服务器进行监控,其特点可实时实现手机短信.电子邮件.MSN.飞信报警. 按照上面的命令写 我就不用多说什么了 如果你安装的最小化版的centos 可能会提示没有sendmail 这时候使用 yum -y install sendmail 安装 /etc/init.d/sendmail restart 启动服务 我在指定的时候 提示图下 这是没安装gcc插件  yum -y install gcc 在执行 ./co

k8s监控组件heapster安装部署

k8s监控组件heapster安装部署 参考文档 https://github.com/kubernetes/heapster/tree/master/deploy k8s集群安装部署 http://jerrymin.blog.51cto.com/3002256/1898243  k8s集群RC.SVC.POD部署 http://jerrymin.blog.51cto.com/3002256/1900260     k8s集群组件kubernetes-dashboard和kube-dns部署 h

运维监控利器Nagios之:安装nagios

一.安装前准备 (1)创建nagios用户和用户组 [[email protected] ~]#useradd -s /sbin/nologin nagios [[email protected] ~]#mkdir /usr/local/nagios [[email protected] ~]#chown –R  nagios.nagios /usr/local/nagios (2)开启系统sendmail服务 在nagios监控服务器上开启sendmail服务的主要作用是让nagios在检测到

zabbix监控实战&lt;2&gt;----zabbix-server的安装与部署

第一章     zabbix-server的安装与部署 1.1  环境部署 eth0                               eth1 master      10.0.0.71                     172.16.1.71 node1       10.0.0.81                     172.16.1.81 1.2   安装zabbix-server 一. [[email protected] ~]# rpm -ivh https:/

小米开源监控系统Open-Falcon安装使用笔记

前言 近期爆出Zabbix有严重bug,加上一直对zabbix的性能.UI不满.所以这次想钻研一下最近很火的open-falcon,源于小米公司的开源项目,赞一个. 一.官网介绍 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择.当公司刚刚起步,业务规模较小,运维团队也刚刚建立的初期,选择一款开源的监控系统,是一个省时省力,效率最高的方案.之后,随着业务规模的持续快速

初探分布式监控利器zabbix

Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案.    被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据    Server端:通过收集SNMP和agent发送的数据,写入数据库(MySQL, ORACLE)再通过php+apache在web前端展示. zabbix运行条件:    Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下(或者LNMP),对硬件要求低   

2019最新 prometheus视频教程 prometheus监控视频 prometheus入门与实践教程

┣━━prometheus-3 [15.6G]┃ ┣━━01.监控介绍.mov [989.9M]┃ ┣━━prometheus1-5.pdf [2.3M]┃ ┣━━03.prometheus数据及安全模型介绍.mov [336.9M]┃ ┣━━04.prometheus在centos7上安装.mov [364.6M]┃ ┣━━05.prometheus在docker容器中运行.mov [283.2M]┃ ┣━━06.使用Node-exporter监控节点.mov [1.2G]┃ ┣━━07.使用

监控利器sysdig&amp;Weave Scope

监控利器sysdig(实时查看) sysdig 是一个轻量级的系统监控工具,同时它还原生支持容器.通过 sysdig 我们可以近距离观察 linux 操作系统和容器的行为. Linux 上有很多常用的监控工具,比如 strace,tcpdump,htop, iftop,lsof ...... 而 sysdig 则是将这些工具的功能集成到一个工具中,并且提供一个友好统一的操作界面. //安装和运行sysdig的最简单方法就是运行docker容器,命令为:[[email protected] ~]#