之前用过zabbix和prometheus监控服务器状态,但是对于小型项目来说感觉还是太重,最近发现一个相对轻量的监控面板netdata
docker安装
官方
docker run -d --name=netdata -p 19999:19999 -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
其他第三方容器 titpetric/netdata
访问
http://ip:19999
如图
邮件告警配置
netdata参考:https://learn.netdata.cloud/docs/agent/health/notifications/email
msmtprc邮件配置文件参考 https://marlam.de/msmtp/msmtprc.txt
编辑配置文件
vi /root/.msmtprc
yandex邮箱配置示例内容
defaults port 465 tls on tls_starttls off account yandex host smtp.yandex.com from zabbix@mail.abc.com auth login user zabbix@mail.abc.com password 12345678 account default : yandex
QQ邮箱配置示例内容
defaults port 465 tls on tls_starttls off logfile /var/log/msmtp.log account qqwork host smtp.exmail.qq.com from abc@example.net.cn auth login user abc@example.net.cn password 12345678 account default : qqwork
改权限
chmod 600 /root/.msmtprc
测试发邮件
echo "来自msmtp发出的告警邮件" | msmtp -d your@email.com
上述邮件没有主题可能会被当做垃圾邮件处理,建议改用下面的方式
echo -e "Subject: 你好nn这是来自msmtp发出的告警邮件." | msmtp -d your@email.com
其中-e开启n换行转义,用两个换行使主题和正文分开
或者使用html方式发邮件
vi sample.html
内容如下
From: sender@mail.com To: recipient@mail.com Subject: This is the Subject Mime-Version: 1.0 Content-Type: text/html This is Email Head This is the Main TitleThis is the body text
发送邮件
cat sample.html | msmtp -d recipient@mail.com
其他常见问题
1.配置文件中auth方式是on,但是yandex和qq企业邮箱并不支持,可以通过下面这个命令查看服务器支持auth的方式
msmtp --host=smtp.yandex.com --serverinfo msmtp --host=smtp.exmail.qq.com --serverinfo
2.debug信息报错,停留在reading recipients from the command line
解决方法:在.msmtprc配置文件添加配置tls_starttls off



