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

yum install epel-release.noarch
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目录下,不要用复制,复制会有配置冲突

chmod 644 ~/.msmtprc
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 \

完整命令

docker run -d --name=netdata  \
  -p 19999:19999 \
  -v netdatacache:/var/cache/netdata \
  -v /proc:/host/proc:ro  \
  -v /sys:/host/sys:ro  \
  -v /var/run/docker.sock:/var/run/docker.sock:ro  \
  --restart unless-stopped  \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

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

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

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

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

增加映射

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

完整命令

docker run -d --name=netdata  \
  -p 19999:19999 \
  -v netdatacache:/var/cache/netdata \
  -v /proc:/host/proc:ro  \
  -v /sys:/host/sys:ro  \
  -v /var/run/docker.sock:/var/run/docker.sock:ro  \
  -v /etc/localtime:/etc/localtime:ro  \
  --restart unless-stopped  \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值