为 Ubuntu Server 配置自动发邮件警报的 Monit

2018-01-08 13:41:29来源:https://imtx.me/archives/2407.html作者:I'm TualatriX人点击

分享

前几天奇点的服务器因为 CPU 100% 而被限频了,导致最近服务器的响应非常慢。我一直没有在服务器上做一些最基本的监控服务「比如连续多久 CPU 使用过 95% 就发一封警报邮件」之类的,这次事件让我决定做起这件事情。


我采用的是 Monit 这个开源工具,结合 Mailgun 邮件发送服务。下面就是一份最基础的安装+配置向导。


图为过去一周我的 Server 的 CPU 占用:为何是 25%?因为我用的 主机 会将长期 CPU 使用超过 100% 的 Server 限制频率为原有的 1/4。



安装 Monit

首先在 Ubuntu 上安装 Monit:


sudo apt-get install monit

安装成功后,编辑配置文件:


sudo vim /etc/monit/monitrc

我主要做了以下改动,是满足我需求的最小的改动。


配置 Monit
以 60 秒为间隔做一次检查

默认是 120 秒,但我觉得 60 秒这个整数比较好:smile:


set daemon 60
设置 Mail Server 和目标邮箱

我用的是 Mailgun 的免费档服务,足够给我发 Alert 邮件了。


set mailserver smtp.mailgun.org port 587
username postmaster@HOST password "YOURPASSWORD"
using TLSV1 with timeout 30 seconds
set alert TARGET@HOST
设置 Alert 触发条件

主要条件是:15分钟的负载超过 4,或者 10 次检查的 CPU 使用率超过 95%(也就是 10 分钟),或者内存占用超过 75%,或者 SWAP 使用超过 50%。


这些触发条件设置的相对极端一点,但不一定适合未来,所以要不断调整。


check system $HOST
if loadavg (15min) > 4 then alert
if cpu usage > 95% for 10 cycles then alert
if memory usage > 75% then alert
if swap usage > 50% then alert
使用 Monit

配置完成后,在终端重启 Monit,如果一切顺利的话,你就会立刻收到一封 Monti 启动的邮件,没错,默认的规则是会将 Monit 的关闭和启动都会发送邮件的。


sudo systemctl restart monit

如果没有收到邮件,那么一定是哪里配置出了问题,比如邮件服务出问题的话,你可以在 Log 里面看到「Relaying denied」之类的信息,总之查看 Log 即可:


sudo tailf /var/log/monit.log

图为成功发送邮件的 Monit:



后记

作为一个业余的运维,这样的监控+警报已经能满足我这样单一 Server 的简单需求了,假如 Mailgun 之类的邮件服务已经注册好的话,整个设置也非常简单。


不知道读到最后的你一般采用什么样的方式来监控 Server?欢迎留言。


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台