• Prometheus邮件告警


    一.  部署Alertmanager:

            1.  解压Alertmanager压缩包:

    [root@node5 ~]# tar xf alertmanager-0.24.0.linux-amd64.tar.gz -C /usr/local/

            2.  为解压后的文件做软连接

    [root@node5 ~]# ln -sv /usr/local/alertmanager-0.24.0.linux-amd64/ /usr/local/alertmanager

            3.  配置Alertmanager配置文件:

    1. [root@node5 ~]# cd /usr/local/alertmanager
    2. ## 备份原本配置文件
    3. [root@node5 alertmanager]# cp alertmanager.yml{,.bak}
    4. [root@node5 alertmanager]# vim alertmanager.yml
    5. global: ##全局配置
    6. resolve_timeout: 5m
    7. smtp_smarthost: 'smtp.163.com:456'
    8. smtp_from: 'xxq20010723@163.com' ##发送告警的邮箱
    9. smtp_auth_username: 'xxq20010723@163.com' ##邮箱的用户名
    10. smtp_auth_password: 'KEZSZMNTQZXBQXRU' ##邮箱的授权码,并非邮箱的登陆密码
    11. smtp_require_tls: false
    12. route: ##配置报警分发策略
    13. group_by: ['alertname'] ##分组标签
    14. group_wait: 10s ##告警等待时间
    15. group_interval: 10s ##两组告警的间隔时间
    16. repeat_interval: 1m ##重复告警的间隔时间
    17. receiver: 'mail' ##默认接收者
    18. routes: ##指定哪些组可以接受消息
    19. - receiver: mail
    20. receivers: ##配置接收者信息
    21. - name: 'mail'
    22. email_configs:
    23. - to: 'xxq20010723@163.com' ##接收报警邮件的邮箱

            4.  测试配置文件语法是否正确:

    1. [root@node5 alertmanager]# ./amtool check-config alertmanager.yml
    2. Checking 'alertmanager.yml' SUCCESS
    3. Found:
    4. - global config
    5. - route
    6. - 0 inhibit rules
    7. - 1 receivers
    8. - 0 templates

    二.  关联Prometheus和Alertmanager:

            1.  修改Prometheus.yml文件中的alerting配置项及rule_files配置项:

    1. [root@node5 ~]# vim /usr/local/prometheus/prometheus.yml
    2. alerting:
    3. alertmanagers:
    4. - static_configs:
    5. - targets:
    6. - localhost:9093
    7. rule_files: ##告警规则的文件
    8. - "rules.yml"

            2.  编写告警规则文件" rules.yml ":

    1. [root@node5 ~]# vim /usr/local/prometheus/rules.yml
    2. groups:
    3. - name: mem_rule
    4. rules: ##告警规则
    5. - alert: '内存报警' ##告警规则的名称
    6. expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes )) / node_memory_MemTotal_bytes * 100 > 1
    7. ##基于PromQL表达式告警触发条件,用于计算是否有时间序列满足该条件
    8. for: 30s ##评估等待时间,可选参数。用于表示只有当触发条件持续一段时间后才发送告警
    9. labels: ##自定义标签,允许用户指定要附加到告警上的一组附加标签
    10. severity: warning
    11. annotations: ##用于指定一组附加信息
    12. summary: "服务名:{{$labels.altername}} 内存报警" ##告警的摘要信息
    13. description: "{{ $labels.altername }} 内存资源利用率大于 10%" ##告警的详细信息
    14. value: "{{ $value }}" ##表达式计算后的值

            3.  重启prometheus服务:

    [root@node5 ~]# systemctl restart prometheus.service

    三.  配置Alertmanager服务启动文件:

            1.  编写服务启动文件:

    1. [root@node5 ~]# vim /usr/lib/systemd/system/alertmanager.service
    2. [Unit]
    3. Description=alertmanager
    4. Documentation=https://github.com/prometheus/alertmanager
    5. After=network.target
    6. [Service]
    7. Type=simple
    8. User=prometheus
    9. WorkingDirectory=/usr/local/alertmanager
    10. ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml --storage.path=/usr/local/alertmanager/data --log.level=debug --log.format=json
    11. Restart=on-failure
    12. [Install]
    13. WantedBy=multi-user.target

            2.  创建alertmanager的数据目录:

    [root@node5 ~]# mkdir -p /usr/local/altermanager/data

            3.  修改目录属主,属组:

    [root@node5 ~]# chown -R prometheus.prometheus /usr/local/alertmanager/*

             4.  启动服务:

    1. [root@node5 ~]# systemctl daemon-reload
    2. [root@node5 ~]# systemctl enable --now alertmanager.service

            5.  alertmanager服务默认端口是9093,查看端口是否监听:

    1. [root@slave2 ~]# ss -lntup | grep 9093
    2. tcp LISTEN 0 4096 [::]:9093 [::]:* users:(("alertmanager",pid=9770,fd=8))

            6.  访问alertmanager:

    http://192.168.188.115:9093

  • 相关阅读:
    基于袋獾算法的无人机航迹规划-附代码
    理论与实践:如何写好一个方法
    Pwn出题指南
    智能小车开发
    【Vue】ref引用,插槽
    Kafka25道面试题总结(答案解析)
    Java筑基35-反射(框架底层,必须掌握)
    antd4 Table实现翻页勾选
    CentOS-7安装grafana
    Pandas+Pyecharts | 快手APP大学生用户数据分析可视化
  • 原文地址:https://blog.csdn.net/NancyLCL/article/details/127946716