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

Ser*_*erk 12 notification email system

我目前有一个 Ubuntu Server 16.04 LTS,我希望能够接收电子邮件通知,其中包含有关我服务器上资源使用情况的信息。CPU、内存、交换,你能想到的。

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

有谁知道允许我这样做的方法?

duf*_*fte 14

我会给你一个小的工具列表——虽然我个人会推荐Nagios,因为我已经习惯了它。它拥有庞大的用户群、丰富的插件集等 - 但我也听说过关于Icinga的好消息。

请注意,设置NagiosIcinga需要一些时间,直到您拥有涵盖/监控所有现有服务的完美工作设置。开始很可能不是那么容易,但是一旦你开始工作,它就是一个可爱的设置,如果状态确实发生变化,它会通知你所有定义的服务,所以一些可报告/定义为关键的东西

项目名称和链接

首先 - 快速概览:

客户端和服务器设置

其他有趣的软件

单主机设置

更多信息

关于 Nagios

维基百科写道

Nagios /?n???i?o?s/,现在称为 Nagios Core,是一个免费的开源计算机软件应用程序,用于监控系统、网络和基础设施。Nagios 为服务器、交换机、应用程序和服务提供监控和警报服务。它会在出现问题时提醒用户,并在问题解决后再次提醒他们。

示例图像 - 显示您拥有的多个视图之一:

在此处输入图片说明

这是一篇关于如何安装 Nagios的好 AskUbuntu 帖子。 Nagios Exchange提供了大量的插件、插件、文档、扩展等。

关于穆宁

维基百科写道

Munin 是一款免费开源的计算机系统监控、网络监控和基础设施监控软件应用程序。它为服务器、交换机、应用程序、服务等提供监控和警报服务。它在出现问题时提醒用户,并在问题解决后再次提醒他们

示例图像

在此处输入图片说明

关于 Icinga

维基百科写道

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

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

示例图像显示了多个视图中的一个:

在此处输入图片说明

关于香料工厂

维基百科写道:

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) 轮询网络交换机或路由器接口来监控网络流量。

前端可以处理多个用户,每个用户都有自己的图形集,因此有时被网络托管提供商(特别是专用服务器、虚拟专用服务器和配置提供商)用来为他们的客户显示带宽统计信息。它可用于配置数据收集本身,允许在无需手动配置 RRDtool 的情况下监控某些设置。Cacti 可以扩展为通过 shell 脚本和可执行文件监视任何源。

关于 Zabbix

维基百科写道:

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

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


270*_*974 5

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

从命令行,只需运行以下命令:

sudo apt-get install monit
Run Code Online (Sandbox Code Playgroud)

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

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

监控配置

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

sudo mv /etc/monit/monitrc /etc/monit/monitrc.bak
Run Code Online (Sandbox Code Playgroud)

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

sudo /etc/monit/monitrc 
Run Code Online (Sandbox Code Playgroud)

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

# 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/*
Run Code Online (Sandbox Code Playgroud)

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

现在使用以下命令来确保 Monit 运行良好。

要测试Monit语法错误的配置:

sudo monit -t
Run Code Online (Sandbox Code Playgroud)

要启动监控:

sudo monit
Run Code Online (Sandbox Code Playgroud)

要检查监控状态:

sudo monit status
Run Code Online (Sandbox Code Playgroud)

使用 Monit 进行系统负载监控

您需要有一个带有适当/etc/monit/monitrc文件的工作 Monit 实例。各种服务的监控配置从/etc/monit/conf.d文件夹加载。要使用 监视服务器负载Monit,请Monit使用以下命令创建配置文件:

sudo /etc/monit/conf.d/systemload
Run Code Online (Sandbox Code Playgroud)

复制以下内容到里面,保存退出

# 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
Run Code Online (Sandbox Code Playgroud)

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

测试和重新加载监视器

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

sudo monit -t
Run Code Online (Sandbox Code Playgroud)

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

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

sudo /etc/init.d/monit status
Run Code Online (Sandbox Code Playgroud)

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

sudo /etc/init.d/monit reload
Run Code Online (Sandbox Code Playgroud)

现在,启动您的 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)
Run Code Online (Sandbox Code Playgroud)

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

使用 Monit 进行存储监控

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

sudo /etc/monit/conf.d/storagespace
Run Code Online (Sandbox Code Playgroud)

复制以下内容到里面,保存退出

# 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
Run Code Online (Sandbox Code Playgroud)

上面的代码将监视 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/
Run Code Online (Sandbox Code Playgroud)

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

...