Prometheus alertmanager邮件发送+grafana告警展示
前言
前面一篇博客,我已经介绍了prometheus如何监控mysql。
这一篇我来介绍如何通过alertmanger进行告警邮件发送(微信或钉钉类似,因为需要企业帐户,我就不试了),以及如何通过grafana查看告警。
开始演示
测试机器
Prometheus: 192.168.56.140
Host01:192.168.56.103
安装alertmanager
获取安装包
wget https://github.com/prometheus/alertmanager/releases/download/v0.22.2/alertmanager-0.22.2.linux-amd64.tar.gz
创建目录
mkdir -p /etc/alertmanager/
mkdir -p /etc/alertmanager/data
mkdir -p /etc/alertmanager/template/
获取邮件模板
[root@prometheus-server template]# pwd
/etc/alertmanager/template
[root@prometheus-servertemplate]# wget https://raw.githubusercontent.com/prometheus/alertmanager/master/template/default.tmpl
复制文件到/etc/alertmanager目录
[root@prometheus-server ftpusr]cp ./alertmanager-0.22.2.linux-amd64/alertmanager* /etc/alertmanager/.
配置启动服务
[root@prometheus-server alertmanager]# cat /etc/systemd/system/alertmanager.service [Unit] Description=Alertmanager After=network.target [Service] Type=simple User=prometheus ExecStart=/etc/alertmanager/alertmanager \ --config.file=/etc/alertmanager/alertmanager.yml \ --storage.path=/etc/alertmanager/data Restart=on-failure [Install] WantedBy=multi-user.target
配置alertmanager邮件发送
如下我使用的是163邮箱来发送邮件。
如需使用SMTP服务,需要先开启服务。开启后,增加授权码,如下配置文件里面的smtp_auth_password填写的是授权码(而不是个人邮箱密码)
[root@prometheus-server alertmanager]# cat alertmanager.yml
global: smtp_smarthost: 'smtp.163.com:25' smtp_from: 'xxxx@163.com' smtp_auth_username: 'xxxx@163.com' smtp_auth_password: 'xxxxxxxxxxx' smtp_require_tls: false templates: - '/etc/alertmanager/template/*.tmpl' route: group_by: ['alertname','cluster','service'] group_wait: 10s group_interval: 10s repeat_interval: 10m receiver: 'default-receiver' receivers: - name: 'default-receiver' email_configs: - to: '20889922@qq.com' html: '{{ template "email.default.html" . }}' headers: { Subject: "Prometheus 告警测试邮件" }
启动服务
service alertmanager start
prometheus配置alertmanager
prometheus.yml配置
# Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: ["localhost:9093"] # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: - "rules.yml" # - "first_rules.yml" # - "second_rules.yml"
rules.yml配置
[root@prometheus-server prometheus]# cat rules.yml # hostStatsAlert groups: - name: hostStatsAlert rules: - alert: NodeDown expr: up == 0 for: 1m labels: severity: "Critical" annotations: summary: "Instance {{$labels.instance}} down" description: "{{$labels.instance}} of job {{$labels.job}} has been down for more than 5 minutes." - alert: NodeCPUUsage expr: sum(avg without (cpu)(irate(node_cpu_seconds_total{mode!='idle'}[5m]))) by (instance) > 0.85 for: 1m labels: severity: "Warning" annotations: summary: "Instance {{ $labels.instance }} CPU usgae high" description: "{{ $labels.instance }} CPU usage above 85% (current value: {{ $value }})" - alert: NodeMemoryUsage expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)/node_memory_MemTotal_bytes > 0.85 for: 1m labels: severity: "Warning" annotations: summary: "Instance {{ $labels.instance }} MEM usgae high" description: "{{ $labels.instance }} MEM usage above 85% (current value: {{ $value }})" - alert: filesystemUsageAlert expr: 100 - ((node_filesystem_avail_bytes{mountpoint="/",fstype=~"ext4|xfs"} * 100) / node_filesystem_size_bytes {mountpoint="/",fstype=~"ext4|xfs"}) > 85 for: 1m labels: severity: "Warning" annotations: summary: "Instance {{ $labels.instance }} root DISK usgae high" description: "{{ $labels.instance }} root DISK usage above 85% (current value: {{ $value }})"
重新启动prometheus使服务生效
service prometheus restart
查看告警邮件
等待几分钟后,可以看到邮件的告警信息
登录alertmanager端口,也可查看告警信息
Alertmanager grafana展示
安装
grafana-cli plugins install camptocamp-prometheus-alertmanager-datasource
安装完后,重新启动grafana-server
service grafana-server restart
添加alertmanager datasource
导入dashboard
展示效果
碰到的问题与解决方法
告警展示的时候,虽然alerts有两个告警,但downnode却显示没有。
通过下载展示的JSON文件,查看原来是altername在告警文件中,与JSON文件中不匹配。匹配完成就OK了。
serverity在邮件显示正常,但是grafana无法正常显示。这个还没调查清楚。
估计得需要谷歌了。但是,你能体会中国人无法上谷歌的痛苦吗?
参考资料:
https://www.cnblogs.com/danny-djy/p/11097726.html
https://medium.com/devops-dudes/prometheus-alerting-with-alertmanager-e1bbba8e6a8e
Prometheus alertmanager邮件发送+grafana告警展示的更多相关文章
- 验证Prometheus alertmanager邮件发送
新环境上配置alertmanager时出现了“Client was not authenticated to send anonymous mail during MAIL FROM”错误,但老环境上 ...
- Docker+Prometheus+Alertmanager+Webhook钉钉告警
Docker+Prometheus+Alertmanager+Webhook钉钉告警 1.环境部署 1.1 二进制部署 1.2 docker部署 1.2.1 webhook 1.2.2 alertma ...
- Prometheus + Alertmanager 实现企微告警
上一篇:二进制安装Prometheus 下面准备在监控的流程中呈现到告警到企微 查看企业ID,用于后续配置文件 四.安装Alertmanager1.准备安装的包 --选择上面链接给的Linux的ta ...
- Prometheus + AlertManager 邮件报警
安装 wget https://github.com/prometheus/alertmanager/releases/download/v0.13.0/alertmanager-0.13.0.lin ...
- 使用 Prometheus Alertmanager 模块发送 Doris 异常信息至钉钉报警群
基础环境 1.Prometheus 版本:2.22.2 下载地址: https://github.com/prometheus/prometheus/releases/download/v2.22.2 ...
- Prometheus学习笔记(5)Grafana可视化展示
目录 一.Grafana安装和启动 二.配置数据源 三.配置dashboard 四.配置grafana告警 一.Grafana安装和启动 Grafana支持查询Prometheus.从Grafana ...
- [k8s]prometheus+alertmanager二进制安装实现简单邮件告警
本次任务是用alertmanaer发一个报警邮件 本次环境采用二进制普罗组件 本次准备监控一个节点的内存,当使用率大于2%时候(测试),发邮件报警. k8s集群使用普罗官方文档 环境准备 下载二进制h ...
- jmx_prometheus_javaagent+prometheus+alertmanager+grafana完成容器化java监控告警(二)
一.拓扑图 二.收集数据 2.1前期准备 创建共享目录,即为了各节点都创建该目录,有两个文件,做数据共享 /home/target/prom-jvm-demo 1.下载文件 jmx_prometheu ...
- cadvisor+prometheus+alertmanager+grafana完成容器化监控告警(一)
一.概况 1.拓扑图 2.名词解释 Grafana 可视化监控容器运行情况 Prometheus: 开源系统监视和警报工具包 Alertmanager 一个独立的组件,负责接收并处理来自Prometh ...
随机推荐
- Hystrix 使用说明
1.什么情况下会触发 fallback 方法 名字 描述 触发fallback EMIT 值传递 NO SUCCESS 执行完成,没有错误 NO FAILURE 执行抛出异常 YES TIMEOUT ...
- WebContent的子目录里面的jsp文件无法将数据传递给Servlet
在WebContent下创建子目录FormCheck,register.jsp将跳转到RegisterServlet这个Servlet中去 分两种情况:在web.xml里面配置 和 使用注解 1.在w ...
- linux命令-------find命令之exec
p.p1 { margin: 0; font: 18px "Hannotate SC"; color: rgba(4, 51, 255, 1); -webkit-text-stro ...
- 使用Docker的同学注意了,这10个坑小心中招了
Docker容器优点容器已经成为企业IT基础设施中必不可少的部分,它具有许多的优点,比如: 1 容器是不可变的--操作系统,库版本,配置,文件夹和应用程序都包装在容器内.你保证在质量检查中测试过的同一 ...
- leetcode 数组分成和相等的三个部分
题目: 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + . ...
- ESP32低功耗模式
1.ESP32 系列芯片提供三种可配置的睡眠模式,针对这些睡眠模式,我们提供了了多种低功耗解决方案,用户可以结合具体需求选择睡眠模式并进行配置.三种睡眠模式如下: Modem-sleep 模式:CPU ...
- CDN相关知识及CDN绕过
#什么是CDN? 内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络.CDN应用广泛,支持多种行业 ...
- 浅淡fhq_Treap
浅淡 \(fhq\_Treap\) 前言 fhq_Treap \(yyds\)! \(sto\ FHQ\ orz\) 机房大佬们都打的 \(Splay\) 只有蒟蒻打的 \(fhq\) (防火墙)(范 ...
- EXCEL:关键字有重复,其他信息一行多列显示
=INDEX(A:A,SMALL(IF(MATCH($A$2:$A$13,$A$2:$A$13,0)=ROW($A$2:$A$13)-1,ROW($2:$13),4^8),ROW(1:1)))& ...
- vue-qiankun公司微前端项稳定目落地后的总结(附github仓库demo,将会持续更新)
️本文为博客园社区首发文章,未获授权禁止转载 大家好,我是aehyok,一个住在深圳城市的佛系码农♀️,如果你喜欢我的文章,可以通过点赞帮我聚集灵力️. 个人github仓库地址: https:gi ...