当前位置:首页 > 技术 > 正文内容

Prometheus–Alertmanager邮件报警配置

醉清风2020-11-03技术196

1、安装配置 Alertmanager

$ tar xf alertmanager-0.15.2.linux-amd64.tar.gz -C /usr/local/
$ mv alertmanager-0.15.2.linux-amd64/ alertmanager

2,创建启动文件

$ vim /usr/lib/systemd/system/alertmanager.service

添加如下内容:

[Unit]
Description=alertmanager
Documentation=https://github.com/prometheus/alertmanager
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alert-test.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target

Alertmanager 安装目录下默认有 alertmanager.yml 配置文件,可以创建新的配置文件,在启动时指定即可。

$ cd /usr/local/alertmanager
$ vim alert-test.yml
global:
  smtp_smarthost: 'smtp.163.com:25'
  smtp_from: '1qaz2wsx@163.com'
  smtp_auth_username: '1qaz2wsx@163.com'
  smtp_auth_password: '123546' # 这里是邮箱的授权密码,不是登录密码
  smtp_require_tls: false
templates:
  - '/alertmanager/template/*.tmpl'
route:
  group_by: ['alertname', 'cluster', 'service']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 10m
  receiver: default-receiver
receivers:
- name: 'default-receiver'
  email_configs:
  - to: 'liqilong@edspay.com'
    html: ''
    headers: { Subject: "[WARN] 报警邮件 test" }

邮箱一开始使用的是公司的邮箱,结果在后边验证的时候,总是会报错level=error ts=2019-01-26T06:21:59.062483579Z caller=notify.go:332 component=dispatcher msg="Error on notify" err="*smtp.plainAuth failed: unencrypted connection",也在这里看了一些人踩坑的报告,试验了25、465、587端口,发现均无效果,最后改成163邮箱,直接就生效了。


smtp_smarthost:是用于发送邮件的邮箱的 SMTP 服务器地址+端口;

smtp_auth_password:是发送邮箱的授权码而不是登录密码;

smtp_require_tls:不设置的话默认为 true,当为 true 时会有 starttls 错误,为了简单这里设置为 false;

templates:指出邮件的模板路径;

receivers 下 html 指出邮件内容模板名,这里模板名为 “alert.html”,在模板路径中的某个文件中定义。

headers:为邮件标题;

3,配置告警规则

配置 rule.yml

$ cd /usr/local/prometheus
$ vim rule.yml
groups:
- name: alert-rules.yml
  rules:
  - alert: InstanceStatus # alert 名字
    expr: up{job="linux-node01"} == 0 # 判断条件
    for: 10s # 条件保持 10s 才会发出 alter
    labels: # 设置 alert 的标签
      severity: "critical"
    annotations:  # alert 的其他标签,但不用于标识 alert
      description: 服务器  已当机超过 20s
      summary: 服务器  运行状态

在 prometheus.yml 中指定 rule.yml 的路径

$ cat prometheus.yml 
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - localhost:9093 # 这里修改为 localhost
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
  - "/usr/local/prometheus/rule.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090','localhost:9100']
  - job_name: '111.4'
    scrape_interval: 5s
    static_configs:
    - targets: ['192.168.111.4:9100']

重启 Prometheus 服务:

$ chown -R prometheus.prometheus /usr/local/prometheus/rule.yml
$ systemctl restart prometheus

4,编写邮件模板

注意:文件后缀为 tmpl

$ mkdir -pv /alertmanager/template/
$ vim /alertmanager/template/alert.tmpl
<table>
    <tr><td>报警名</td><td>开始时间</td></tr>
        <tr><td></td><td></td></tr>
</table>

5,启动 Alertmanager

$ chown -R prometheus.prometheus /usr/local/alertmanager
$ systemctl daemon-reload
$ systemctl start alertmanager.service
$ systemctl status alertmanager.service
$ ss -tnl|grep 9093

6,验证效果。

此时到管理界面可以看到如下信息:

无标题.png

然后停止111.4节点上的 node_exporter 服务,然后再看效果。

$ systemctl stop node_exporter.service

接着邮箱应该会收到邮件:

无标题.png

扫描二维码至手机访问

扫描二维码推送至手机访问。

版权声明:本文由红柚酱发布,如需转载请注明出处。

转载请注明出处:https://www.notenet.cn/post/140.html

返回列表

上一篇:Prometheus–安装部署及简单监控

没有最新的文章了...

相关文章

laravel中artisan命令的使用详解

laravel中artisan命令的使用详解

artisan工具,首先,这个是一个php文件,它放在我们laravel框架的根目录。Artisan工具简介Artisan 是 Laravel 中自带的命令行工具的名称。它提供了一些对您的应用开发有帮...

热点新闻滚动(文字单行向上滚动)特效的代码

热点新闻滚动(文字单行向上滚动)特效的代码

我们在很多大型门户网站都会有看到有些一热点新闻都会一直向上滚动,下面我就来给大家推荐一款Javascript中热点新闻滚动特效代码,有需要了解的朋友可以参考一下<!DOCTYPE ht...

阿里云,腾讯云Linux服务器如何安装宝塔面板?

阿里云,腾讯云Linux服务器如何安装宝塔面板?

为什么要安装宝塔Linux面板呢,因为对于新手接触服务器来说,不知道到底该做什么,下载宝塔Linux面板的话,操作什么我们都一目了然了。宝塔安装前言环境要求Linux面板环境要求宝塔Linux面板支持...

ubuntu16.04安装lnmp环境

ubuntu16.04安装lnmp环境

1.安装mysqlsudo apt install mysql-server2.安装nginx和php#添加nginx和php的ppa源sudo apt-add...

ubuntu 18.04 安装 php7.2-mcrypt

ubuntu 18.04 安装 php7.2-mcrypt

检查版本,安装pecl支持php -v  # 检查版本,确定为php7.2pecl version sudo apt-get i...