一,alertmanager的用途

1,Alertmanager的作用:
Alertmanager是一个独立的报警模块,
它接收Prometheus等客户端发来的警报,并通过分组、删除重复等处理,
通过路由把警报发送给正确的接收器;
报警方式可以按照不同的规则发送给不同的模块负责人,
Alertmanager支持Email, Slack,等报警方式, 
也支持通过webhook接入钉钉等IM工具
 
2,我们这里配置的例子:
当一台运行node_exporter的服务器发生故障后,
alertmanager通过prometheus得到监控信息,
会发送邮件给指定的邮箱实现报警
 

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,下载alertmanager

1,官网下载地址
https://prometheus.io/download/
2,下载安装包
[root@blog prometheus]# pwd
/usr/local/source/prometheus
[root@blog prometheus]# wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz

三,安装alertmanager

1,解压
[root@blog prometheus]# tar -zxvf alertmanager-0.20.0.linux-amd64.tar.gz
2,移动到安装目录
[root@blog prometheus]# mv alertmanager-0.20.0.linux-amd64 /usr/local/soft/
3,查看安装效果:
   查看alertmanager的版本
[root@blog prometheus]# /usr/local/soft/alertmanager-0.20.0.linux-amd64/alertmanager --version
alertmanager, version 0.20.0 (branch: HEAD, revision: f74be0400a6243d10bb53812d6fa408ad71ff32d)
build user: root@00c3106655f8
build date: 20191211-14:13:14
go version: go1.13.5

四,配置alertmanager

1,编辑配置文件
[root@blog alertmanager-0.20.0.linux-amd64]# pwd
/usr/local/soft/alertmanager-0.20.0.linux-amd64
[root@blog alertmanager-0.20.0.linux-amd64]# vi alertmanager.yml
内容:
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.163.com:465'
smtp_from: 'chinalinuxzend@163.com'
smtp_auth_username: 'chinalinuxzend@163.com'
smtp_auth_password: 'yourauthcode'
smtp_require_tls: false
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'mail'
receivers:
- name: 'mail'
email_configs:
- to: '371125307@qq.com'

说明:

如果是在阿里云上,需要配置465端口发送邮件,因为25端口被封禁了,参考这一篇:

https://www.cnblogs.com/architectforest/p/12924395.html

smtp_auth_password:它不是邮箱的登录密码,而是邮件服务商提供的一个授权码

2,检查配置是否正确?
[root@blog alertmanager-0.20.0.linux-amd64]# ./amtool check-config alertmanager.yml
如果看到Checking 'alertmanager.yml’  SUCCESS
表示配置正确
 

五,使systemd支持alertmanager服务

 
1,编辑service文件
[root@blog alertmanager-0.20.0.linux-amd64]# vi /usr/lib/systemd/system/alertmanager.service 
内容:
[Unit]
Description=Alertmanager
After=network.target [Service]
Type=simple
ExecStart=/usr/local/soft/alertmanager-0.20.0.linux-amd64/alertmanager --config.file=/usr/local/soft/alertmanager-0.20.0.linux-amd64/alertmanager.yml
Restart=on-failure [Install]
WantedBy=multi-user.target
2,重新加载service文件
[root@blog alertmanager-0.20.0.linux-amd64]# systemctl daemon-reload
3,启动alertmanager服务
[root@blog alertmanager-0.20.0.linux-amd64]# systemctl start alertmanager.service
4,检查服务启动是否成功
[root@blog alertmanager-0.20.0.linux-amd64]# systemctl status alertmanager.service
5,检查alertmanager是否已在守护端口?
[root@blog alertmanager-0.20.0.linux-amd64]# ss -lntp | grep alertmanager
LISTEN 0 1024 *:9093 *:* users:(("alertmanager",pid=29807,fd=6))
LISTEN 0 1024 *:9094 *:* users:(("alertmanager",pid=29807,fd=3))
6,通过url访问9093端口:
http://121.122.123.47:9093/

六,配置prometheus使用alertmanager报警

1,生成报警的规则文件?
[root@blog ~]# mkdir -p /data/prometheus/rules
[root@blog ~]# cd /data/prometheus/rules/
[root@blog rules]# vi rule.yml
内容:
groups:
- name: alert-rules.yml
rules:
- alert: InstanceStatus # alert 名字
expr: up{job="118node"} == 0 # 判断条件
for: 10s # 条件保持 10s 才会发出 alter
labels: # 设置 alert 的标签
severity: "critical"
annotations: # alert 的其他标签,但不用于标识 alert
description: 服务器 已当机超过 20s
summary: 服务器 运行状态
 
2,在prometheus的配置文件中,指定rule和alert
[root@blog ~]# vi /usr/local/soft/prometheus-2.18.1.linux-amd64/prometheus.yml
内容:
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
rule_files:
- "/data/prometheus/rules/rule.yml"

说明:指定了报警服务的地址/规则文件的地址

七,重启prometheus和alertmanager,使配置生效

重启prometheus
[root@blog ~]# systemctl restart prometheus.service
重启alertmanager
[root@blog ~]# systemctl restart alertmanager.service

八,测试发送邮件效果:

1,从promethus的管理界面查看已添加的alert
http://121.122.123.47:9090/alerts
如图:
 
2,在118这个node上,关掉node_exporter
[root@cacheServer ~]# ps auxfww | grep node
root 6440 0.3 0.0 718788 16520 ? Sl Jun05 14:13 /usr/local/soft/node_exporter-1.0.0.linux-amd64/node_exporter
[root@cacheServer ~]# kill 6440
[root@cacheServer ~]# ps auxfww | grep node
3,返回到管理界面,查看:
状态变成了firing,同时也已经收到了邮件
如图:
 
邮件内容:
 
 

九,查看prometheus的版本

[root@blog ~]# /usr/local/soft/prometheus-2.18.1.linux-amd64/prometheus --version
prometheus, version 2.18.1 (branch: HEAD, revision: ecee9c8abfd118f139014cb1b174b08db3f342cf)
build user: root@2117a9e64a7e
build date: 20200507-16:51:47
go version: go1.14.2

十,查看linux的版本

[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)的更多相关文章

  1. zabbix配置发送报警邮件

    配置邮件分为两种情况: 第一种:使用远端邮件服务器发送报警邮件 Linux系统版本:CentOS6.5-64 下载mailx: http://nchc.dl.sourceforge.net/proje ...

  2. 使用Zabbix服务端本地邮箱账号发送报警邮件及指定报警邮件操作记录

    邮件报警有两种情况:1)Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:root@localhost.localdomain), ...

  3. 使用python脚本配置zabbix发送报警邮件

    #前提得在zabbix_server配置文件中配置触发脚本的目录,例如,我配置的在/usr/local/zabbix/server/scripts目录下 编写python脚本如下 因为我的服务器在腾讯 ...

  4. shell:实现linux服务器资源监控并发送告警邮件

    1.安装方式 wget http://10.8.225.126/wsmonitor/install.sh;sh install.sh test@test.com 2.install.sh #!/bin ...

  5. linux下发送报警邮件(mailx)

    本文章主要解决 linux下监控到系统状况后怎么发邮件报警的问题. 如果你是最小化安装的centos/redhat 系统,是没有自带mailx的,也就是没有mail 命令. 解决办法 yum -y i ...

  6. 小白的linux笔记8:linux自动运行爬虫并发送提醒邮件

    有了成功运行的爬虫后,希望能每天定时运行,且遇到错误时能及时发出提醒. 发出提醒 可以用mailx发出邮件做提醒.没有的话先安装Yum install mailx. 以qq邮箱为例,需要设置/etc/ ...

  7. 监控服务器ssh登录,并发送报警邮件

    最近想监控下云主机的ssh登录情况,所以开始写ssh登录报警监控.实现方式并不难. 一:邮箱申请开启SMTP 在邮箱中选择“设置”----->“账户” 在如下图处开启POP3/SMTP服务,并生 ...

  8. 监控CPU使用率并发送报警邮件

    #!/bin/bash DATE=$(date +%F" "%H:%M) #只支持centos6 IP=$(ifconfig eth0 | awk -F '[ :]+' '/ine ...

  9. C++实现的服务不可用发送报警邮件

    正在看C++,我主业是Java开发,但是最近服务不太稳定,自己用C++造了个小轮子. 配置好要监控的访问路径,IP.端口号和路径.涉及到的知识点有以下几个部分: 构造函数与析构函数 内存的分配与释放( ...

随机推荐

  1. python中使用cookie进行模拟登录

    背景:使用cookie模拟登录豆瓣->我的豆瓣网页 [准备工作] 1.通过Fiddler抓取“我的豆瓣”url: 2.通过Fiddler抓取“我的豆瓣”cookie值. import urlli ...

  2. k8s service对象

    k8s service对象   概述 service服务也是Kubernetes里核心字眼对象之一,Kubernetes里的每一个service其实就是我们经常提起的微服务架构中的一个微服务,之前讲解 ...

  3. 基于Prometheus网关的监控完整实现参考

    prometheus 是一个非常好的监控组件,尤其是其与grafana配合之后,更是如虎添翼.而prometheus的监控有两种实现方式.1. server端主动拉取应用监控数据:2. 主动推送监控数 ...

  4. Java Web学习(一)Web基础

    文章更新时间:2020/07/24 一.基本概念 web资源 Internet上供外界访问的Web资源分为两种: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. 动态w ...

  5. 深夜,我偷听到程序员要对session下手……

    我是一个web服务器 我是一个web服务器,我的工作是给人类提供上网服务,我每天要为数以万计的人提供网页浏览服务. 已经是深夜了,我还在和手下几个兄弟为了一件事紧张讨论着. "老大,现在咱们 ...

  6. Kubernetes客户端和管理界面大集合

    今天给大家介绍目前市面上常用的kubernetes管理工具,总有一款适合您~~~ 简介 Kubectl K9s Kubernetes-Dashboard Rancher Kuboard Lens Oc ...

  7. LINQ中的OrderBy实现按照两个字段升序、降序排序操作

    在公司或许有这种需求,先根据第一个某个字段按照升序排序,然后如果相同,在按照第二个某个字降序排序,我们该怎么去实现呢? 现在来教教大家分别使用Labmda和LINQ进行这种操作. 1.先按照第一个字段 ...

  8. 记一次GDB调试

    目标文件: ciscn_2019_ne_5. 来源 :https://buuoj.cn/challenges 保护情况:保护是没有保护的 主要伪代码: int __cdecl main(int arg ...

  9. sping cloud入门

    可以参考原文 https://www.cnblogs.com/sam-uncle/archive/2018/04/25/8943471.html 注册服务 https://www.cnblogs.co ...

  10. 【宝塔面板】centOS部署前后端分离所有遇到的坑,Django

    1:刚刚买完服务器,在宝塔面板安装完一切工具,Django顺利运行后(不能运行一般是起了中文名) # 问题:想迁移数据库,结果发现-bash: python3: command not found# ...