• netdata邮件告警配置


    接上一篇msmtp服务配置完成之后,这篇继续配置邮件告警

    1.配置netdata邮件收件人

    /etc/netdata/edit-config health_alarm_notify.conf


    命令类似vi i进编辑模式,编辑完成 esc输入:wq保存

    修改

    DEFAULT_RECIPIENT_EMAIL="root" 

    将root修改成邮件地址,多个地址用空格分开,邮件后可接|critical告警等级,如

    DEFAULT_RECIPIENT_EMAIL="12345678@qq.com abc@abc.net.cn|critical"

    其中第一个邮件地址接收所有等级的告警,第二个邮件地址接收critical等级的告警结果。

    2.配置sendmail的路径为msmtp的路径

    修改配置

    /etc/netdata/edit-config health_alarm_notify.conf

    sendmail=""

    改成

    sendmail="/usr/bin/msmtp"

    测试发送

    /usr/libexec/netdata/plugins.d/alarm-notify.sh test 

    第一个邮件地址能收到3封邮件,第二个邮件地址能收到2封邮件,第一个多一个warning邮件。

    3.用stress压测cpu

    安装stress

    1. yum install epel-release.noarch
    2. yum install stress


    压测cpu

    stress --cpu 1 --timeout 600


    这里使用模拟1个 CPU 使用率 100% 的场景

    1是cpu核数,根据你的电脑调整,是几核就改成几,等待10分钟就有critical级别的告警了。

    常见问题

    1.十分钟后没有发送邮件查找日志

    日志错误报

    msmtp: account default not found: no configuration file available

    将.msmtprc文件权限改成644并且剪切到/etc/msmtprc目录下,不要用复制,复制会有配置冲突

    1. chmod 644 ~/.msmtprc
    2. mv ~/.msmtprc /etc/msmtprc

    2.日志错误报

    msmtp: /etc/msmtprc: line 11: account default was already defined

    解决方法:将/root/.msmtprc文件删除,只保留/etc/msmtprc文件

    3.带|critical的收不到告警恢复的clear邮件

    查看日志报

    touch: /var/cache/netdata/alarm-notify/email/abc@abc.net.cn/1655974263: Permission denied

    如果是docker环境,将:/var/cache/netdata目录映射出去就解决了

    docker run命令添加

     -v netdatacache:/var/cache/netdata \

    完整命令

    1. docker run -d --name=netdata \
    2. -p 19999:19999 \
    3. -v netdatacache:/var/cache/netdata \
    4. -v /proc:/host/proc:ro \
    5. -v /sys:/host/sys:ro \
    6. -v /var/run/docker.sock:/var/run/docker.sock:ro \
    7. --restart unless-stopped \
    8. --cap-add SYS_PTRACE \
    9. --security-opt apparmor=unconfined \
    10. netdata/netdata

    实测告警恢复的clear邮件有半小时延迟,critical和warning邮件没有延迟,具体情况还得继续研究。

    注意:这里的 -v netdatacache使用的docker数据卷,不能用其他目录如${PWD}/netdatacache代替,否则docker无法启动

    5.docker日志和邮件日志时间为utc

    查看相关issue发现,netdata会读取/etc/localtime的配置,做一下目录映射就好了

    增加映射

    -v /etc/localtime:/etc/localtime:ro  \

    完整命令

    1. docker run -d --name=netdata \
    2. -p 19999:19999 \
    3. -v netdatacache:/var/cache/netdata \
    4. -v /proc:/host/proc:ro \
    5. -v /sys:/host/sys:ro \
    6. -v /var/run/docker.sock:/var/run/docker.sock:ro \
    7. -v /etc/localtime:/etc/localtime:ro \
    8. --restart unless-stopped \
    9. --cap-add SYS_PTRACE \
    10. --security-opt apparmor=unconfined \
    11. netdata/netdata

  • 相关阅读:
    QT基础教程(QDebug和QString)
    模型推荐丨电子商务实战案例模型分享
    SpringBoot-logback不同业务模块输出不同的日志文件
    第2-4-5章 规则引擎Drools高级语法-业务规则管理系统-组件化-中台
    【Python从入门到进阶】58、Pandas库中Series对象的操作(一)
    Golang 并发机制 CSP模型
    Java安装教程:如何安装java环境?
    linux系统配置之单一网卡配置多个不同网段IP(centos)
    m1 安装 cocoapods
    MIPI CSI接口调试方法: data rate计算
  • 原文地址:https://blog.csdn.net/gsls200808/article/details/125451875