• 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

  • 相关阅读:
    【PyTorch笔记】60分钟入门PyTorch——训练一个图片分类器
    【React】05.JSX语法使用上的细节
    【Flutter -- GetX】准备篇
    计算机专业应该学哪些课程?或许我们还有更大的进步空间
    JavaScript中的隐含参数arguments
    2.springboot代理调用
    DDP、pytorch的分布式 torch.distributed.launch 训练说明
    Oracle中instr,rtrim,XMLPARSE,XMLAGG,GETCLOBVAL函数的使用
    在Windows 环境下使用 Nginx 搭建 HTTP文件服务器 实现文件下载 全步骤(详细)
    基于XC7VX690T FPGA+ZU15EG SOC的6U VPX总线实时信号处理平台(支持4路光纤)
  • 原文地址:https://blog.csdn.net/gsls200808/article/details/125451875