通过电子邮件通知进行系统监控


11

我目前有一个Ubuntu Server 16.04 LTS,我希望能够接收有关服务器资源使用情况的电子邮件通知。CPU,内存,交换,都可以命名。

我知道我可以使用Glances进行本地监视,但是我不会一直在控制台上查看信息。我只需要电子邮件通知即可通知我超出正常/关键值的资源并得到通知。

有人知道允许我执行此操作的方法吗?


netdata非常适合您的需求。
luv.preet '17

Answers:


13

我将为您提供一小部分工具-虽然我会像我已经习惯的那样亲自推荐Nagios。它具有庞大的用户群,大量的插件等-但我也听说过有关Icinga的好消息。

请注意,设置NagiosIcinga会花费一些时间,直到您拥有一个可以正常工作的设置来覆盖/监视所有现有服务。开始很可能不是那么容易,但是一旦它开始工作,它是一个可爱的设置,如果状态发生变化,它将通知您所有已定义的服务,因此可以报告/定义为关键的事情

项目名称和链接

首先-快速概述:

客户端和服务器设置

其他有趣的软件

单主机设置

更多信息

关于纳吉奥斯

维基百科写道

Nagios,现在被称为Nagios Core,是一个免费的开源计算机软件应用程序,用于监视系统,网络和基础结构。Nagios为服务器,交换机,应用程序和服务提供监视和警报服务。它在出现问题时向用户发出警报,并在问题解决后再次向用户发出警报。

示例图片-显示您拥有的几种视图之一:

在此处输入图片说明

这是一个有关如何安装Nagios的好AskUbuntu帖子。 Nagios Exchange提供了大量的插件,附加组件,文档,扩展等等。

关于穆宁

维基百科写道

Munin是一个免费的开源计算机系统监视,网络监视和基础结构监视软件应用程序。它为服务器,交换机,应用程序,服务等提供监视和警报服务。当出现问题时向用户发出警报,并在问题解决后再次向用户发出警报。

范例图片

在此处输入图片说明

关于伊辛加

维基百科写道

Icinga是一个开源计算机系统和网络监视应用程序。它最初是作为Nagios系统监控应用程序的分支于2009年创建的。

Icinga试图克服Nagios开发过程中的缺点,并添加新功能,例如现代的Web 2.0风格的用户界面,附加的数据库连接器(用于MySQL,Oracle和PostgreSQL)以及一种REST API,使管理员可以集成众多扩展,而无需对Icinga核心进行复杂的修改。

示例图像显示了几个视图之一:

在此处输入图片说明

关于Spiceworks

维基百科写道:

Spiceworks是面向信息技术(IT)行业的专业网络,总部位于德克萨斯州奥斯汀。该公司由Scott Abel,Jay Hallberg,Greg Kattawar和Francis Sullivan于2006年1月成立,旨在开发IT管理软件。

Spiceworks是一个在线社区,用户可以在此相互协作并相互寻求建议,还可以参与市场购买与IT相关的服务和产品。估计有600万以上的IT专业人员和3,000家技术供应商使用该网络。

关于监控

维基百科写道

Monit是针对Unix和Linux的免费,开源过程监控工具。使用Monit,可以直接从命令行或通过本机HTTP(S)Web服务器查看系统状态。Monit在Ruby on Rails和Mongrel Web服务器上变得越来越流行,[需要引用],因为需要一种工具来管理许多相同的Mongrel流程,而这些流程需要运行以支持可扩展的Ruby on Rails站点,Monit非常独特适合Ruby on Rails社区的需求。许多流行的Rails网站都使用过Monit,包括Twitter和scribd。

关于仙人掌

维基百科写道:

Cacti是一个基于开放源代码的,基于Web的网络监视和制图工具,旨在作为开放源代码的行业标准数据记录工具RRDtool的前端应用程序。Cacti允许用户以预定的时间间隔轮询服务并绘制结果数据图。它通常用于绘制指标的时间序列数据,例如CPU负载和网络带宽利用率。一种常见用法是通过简单网络管理协议(SNMP)通过轮询网络交换机或路由器接口来监视网络流量。

前端可以处理多个用户,每个用户都有自己的图集,因此有时Web托管提供商(尤其是专用服务器,虚拟专用服务器和并置提供商)会使用它来为其客户显示带宽统计信息。它可用于配置数据收集本身,从而无需任何RRDtool的手动配置即可监视某些设置。可以将Cacti扩展为通过Shell脚本和可执行文件监视任何源。

关于扎比克斯

维基百科写道:

Zabbix是由Alexei Vladishev创建的用于网络和应用程序的企业开源监视软件。它旨在监视和跟踪各种网络服务,服务器和其他网络硬件的状态。

Zabbix使用MySQL,PostgreSQL,SQLite,Oracle或IBM DB2来存储数据。它的后端用C编写,Web前端用PHP编写。Zabbix提供了几种监视选项


4

您可以使用几种解决方案。其中之一是monit

在命令行中,只需运行以下命令:

sudo apt-get install monit

现在应该安装Monit,并可以通过以下URL之一访问它:

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

监控配置

在开始Monit用于服务器自动监视之前,必须进行一些基本配置。首先Monit使用以下命令备份现有的默认配置:

sudo mv /etc/monit/monitrc /etc/monit/monitrc.bak

接下来,monitrc使用以下命令创建一个新文件

sudo /etc/monit/monitrc 

并将以下内容复制到其中。

# How often in seconds should monit check your services.
set daemon 120

set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state

# Configure your SMTP out server. 
set mailserver smtp-server.columbus.rr.com port 25,localhost

set eventqueue
    basedir /var/lib/monit/events # set the base directory where events will be stored
    # optionally limit the queue size
    slots 100 

# Use one of the following 2 lines. The second line alerts on every little change and can be annoying.
set alert admin@domain.com but not on { instance, pid, ppid } #does not send alert on pid changes
#set alert admin@domain.com 

set httpd port 2812 and
    #Change username and password
    allow Username:Password
    # To enable SSL for WebUI uncomment the next 2 lines
    #ssl enable
    #pemfile /path/to/unified/certificate.pem
    # To restrict access to localhost only uncomment the following line
    #allow localhost

include /etc/monit/conf.d/*

以#开头的行是注释,可帮助您自定义配置。确保至少已正确配置了管理电子邮件,SMTP服务器和SMTP端口。您还应该考虑更改Monit WebUI用户名和密码。如果您拥有SSL证书,则也可以启用该证书以进行HTTPS访问

现在,使用以下命令确保Monit正常运行。

要测试Monit配置是否存在语法错误:

sudo monit -t

要启动Monit:

sudo monit

要检查监视状态:

sudo monit status

使用Monit监视系统负载

要求您的Monit实例正常且/etc/monit/monitrc文件正确。各种服务的监控配置从/etc/monit/conf.d文件夹加载。要使用监视服务器负载Monit,请Monit使用以下命令创建配置文件:

sudo /etc/monit/conf.d/systemload

将以下内容复制到其中,然后保存并退出

# domain.com could be IP, hostname, or localhost
check System domain.com
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 80% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

Monit当满足上述条件之一(例如,平均负载>4至少1分钟或超过75% RAM满负荷)时,此代码将向您发送电子邮件警报。您可以根据需要自定义上述规则。以下是发送的示例电子邮件警报,Monit以及造成警报的原因的描述。

测试并重新加载Monit

进行任何更改后,您必须测试Monit配置:

sudo monit -t

您应该看到以下消息: Control File Syntax OK.

然后,Monit使用以下命令检查是否已在运行:

sudo /etc/init.d/monit status

如果Monit正在运行,请Monit使用以下命令重新加载配置:

sudo /etc/init.d/monit reload

现在,启动您的Web浏览器,并根据Monit的配置访问以下URL之一(请确保使用正确的端口号):

http://localhost:2812
http://IPADDRESS:2812 (local network IP)
http://domain.com:2812 (if you have domain name pointing to your server)

您应该看到系统状态,负载,CPU负载,内存负载和交换负载

使用Monit进行存储监视

接下来,要求您的工作Monit实例具有正确的/etc/monit/monitrc文件。Monit/etc/monit/conf.d文件夹加载各种服务的配置。Monit, create a使用以下命令通过Monit`配置文件监视驱动器空间:

sudo /etc/monit/conf.d/storagespace

将以下内容复制到其中,然后保存并退出

# add each drive you want to monitor below
check filesystem Ubuntu with path /dev/sda1
    if space usage > 90% then alert
check filesystem Home with path /dev/sda3
    if space usage > 90% then alert
check filesystem Media with path /dev/sdb1
    if space usage > 90% then alert

上面的代码将监视2个驱动器中3个分区中的硬盘驱动器空间。如果它们中的任何一个超过90%已满,您将收到警报。

您还可以监视特定的服务。

使用Monit监视Apache服务器

Monit使用Monit’s预制的配置模板来设置Apache服务器监视。您所要做的就是将现有模板从复制/etc/monit/monitrc.d/etc/monit/conf.d文件夹。

sudo cp /etc/monit/monitrc.d/apache2 /etc/monit/conf.d/

除了复制,您还可以创建一个符号链接。Apache Web服务器进程创建apache2.pid。上面的代码监控apache2.pid文件,如果不存在,Monit将尝试重新启动Apache。重新启动将触发电子邮件警报。如果重启多次失败,则Monit将停止监视Apache服务器。

...


2

您也可以查看SeaLion。可以设置有关CPU使用率,内存等的自定义警报。此外,还可以添加自己的指标并为其配置通知。另外,您可以安排命令以特定的时间间隔运行,并在时间线显示中查看其输出。您可以在这里找到更多有关它的信息


1

上面的工具都非常适合生成电子邮件。由于我不想整天坐着看仪表板,因此我更喜欢通过电子邮件进行日常监控。问题是您被电子邮件淹没,并且只对出现问题时感兴趣。另外,您怎么知道是否由于某种原因从未发送过电子邮件,并且您认为一切正常。

我搜索了很长时间,发现有2种产品可以读取您的报告电子邮件并在需要采取措施时向您发出警告。

  1. PRTG您可以设置邮件过滤器来搜索包含某些单词的电子邮件。做起来有点复杂。
  2. 一个叫做wwww.smtpviewer.com的在线工具实际上可以完成这项工作,此外它还具有超时设置,当来自被监控设备的电子邮件在设定的时间内未到达时,它将向您发出警告。

许多邮件客户端已经具有过滤,排序,标记,...邮件的功能。因此,我真的没有看到为此需要外部解决方案的需求。例如,多年以来,我一直在使用Thunderbird的过滤器执行此操作。如果邮件服务器支持,则还可以使用Sieve脚本直接在服务器上过滤,排序,标记,...邮件。
Henning Kockerbeck '16

0

在我学校,我们的老师给了我们Pandora FMS培训,这是一个涵盖服务器监控,应用程序甚至网络的监控解决方案!

那时我只了解Zabbix和Nagios,我以前从未听说过这种解决方案,但是现在由于它提供了额外的功能,我将其立足于此。服务器监视部分确实很成熟,我认为,配置和获取性能统计信息更为简单:http//pandorafms.com/monitoring-solutions/server-monitoring/


-1商业软件包...
Fabby

0

尽管它并不能完全满足您的要求,但我发现logwatch它是一个非常有用且简单的工具。

它为您提供了/var/log目录中所有已发生事件的每日摘要,以及一些其他重要的系统信息,例如当前磁盘空间。缺少的任何内容都可以非常简单地添加(例如,我添加了一个脚本,用于检查某些守护程序是否仍在运行)。


0

据我了解,您的需求是非常基本的。您想通过文本搜索电子邮件内容中的特定关键字,然后在发生这种情况时得到通知。因此,仅当例如电子邮件中包含您要通知的失败字时,而不是包含成功字词时才收到通知。我还使用John Grobbelaar提到的www.smtpviewer.com来获得通知。使用在线工具的优点是,您总是可以在未收到预期的电子邮件时收到通知。在我使用过的所有邮件监控工具中,这是最简单的,并且只做一件事。


这似乎无法回答问题。请重新回答该问题,或删除此回答/将其移至评论。谢谢,欢迎来到Ask Ubuntu!
zwork
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.