我目前有一个 Ubuntu Server 16.04 LTS,我希望能够收到包含有关我的服务器资源使用情况的信息的电子邮件通知。CPU、内存、交换,等等。
我知道我可以使用 Glances 进行本地监控,但我不会一直在控制台上查看信息。我只需要电子邮件通知,告知我资源达到正常/临界值以上并收到通知。
有谁知道有什么方法可以让我做到这一点?
答案1
我会给你一个小工具列表——我个人会推荐纳吉奥斯就像我习惯的那样。它拥有庞大的用户群、丰富的插件集合等 - 但我听说伊辛加也一样。
请注意设置纳吉奥斯或者伊辛加需要一些时间才能拥有一个完美运行的设置,覆盖/监控所有现有服务。开始可能并不容易,但一旦您开始运行,它就会成为一个很棒的设置,如果状态发生变化,它会通知您所有定义的服务,因此某些可报告/定义为关键的服务
项目名称和链接
首先,简单概述一下:
客户端和服务器设置
其他有趣的软件
- 吸烟(功能有限)
单主机设置
更多信息
关于 Nagios
维基百科写道
Nagios /ˈnɑːɡiːoʊs/,现称为 Nagios Core,是一款免费的开源计算机软件应用程序,用于监控系统、网络和基础设施。Nagios 为服务器、交换机、应用程序和服务提供监控和警报服务。当出现问题时,它会向用户发出警报,并在问题解决后再次发出警报。
示例图像 - 展示您拥有的多个视图之一:
这是一篇很好的 AskUbuntu 帖子,关于如何安装 Nagios。 Nagios 交易所提供大量的插件、附加组件、文档、扩展等。
关于 Munin
维基百科写道
Munin 是一款免费的开源计算机系统监控、网络监控和基础设施监控软件应用程序。它为服务器、交换机、应用程序、服务等提供监控和警报服务。当出现问题时,它会向用户发出警报,并在问题解决后再次发出警报
示例图像
关于 Icinga
维基百科写道
Icinga 是一个开源计算机系统和网络监控应用程序。它最初于 2009 年作为 Nagios 系统监控应用程序的一个分支而创建。
Icinga 试图克服 Nagios 开发过程中存在的缺陷,并添加新的功能,例如现代 Web 2.0 风格的用户界面、附加数据库连接器(用于 MySQL、Oracle 和 PostgreSQL)以及 REST API,使管理员无需对 Icinga 核心进行复杂的修改即可集成众多扩展。
示例图像显示了多个视图中的 1 个:
关于 Spiceworks
维基百科写道:
Spiceworks 是一家面向信息技术 (IT) 行业的专业网络,总部位于德克萨斯州奥斯汀。该公司由 Scott Abel、Jay Hallberg、Greg Kattawar 和 Francis Sullivan 于 2006 年 1 月创立,旨在开发 IT 管理软件。
Spiceworks 是一个在线社区,用户可以在这里相互协作和寻求建议,还可以参与市场以购买 IT 相关服务和产品。据估计,该网络被超过 600 万 IT 专业人士和 3,000 家技术供应商使用。
关于 monit
维基百科写道
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
维基百科写道:
Cacti 是一款基于 Web 的开源网络监控和绘图工具,旨在作为开源行业标准数据记录工具 RRDtool 的前端应用程序。Cacti 允许用户以预定的时间间隔轮询服务并绘制结果数据。它通常用于绘制 CPU 负载和网络带宽利用率等指标的时间序列数据。一种常见用法是通过简单网络管理协议 (SNMP) 轮询网络交换机或路由器接口来监控网络流量。
前端可以处理多个用户,每个用户都有自己的图表集,因此网络托管提供商(尤其是专用服务器、虚拟专用服务器和托管提供商)有时会使用它来显示客户的带宽统计信息。它可用于配置数据收集本身,允许监控某些设置,而无需手动配置 RRDtool。Cacti 可以扩展为通过 shell 脚本和可执行文件监控任何来源。
关于 Zabbix
维基百科写道:
Zabbix 是一款企业开源网络和应用程序监控软件,由 Alexei Vladishev 创建。它旨在监控和跟踪各种网络服务、服务器和其他网络硬件的状态。
Zabbix 使用 MySQL、PostgreSQL、SQLite、Oracle 或 IBM DB2 来存储数据。其后端用 C 编写,Web 前端用 PHP 编写。Zabbix 提供多种监控选项
答案2
您可以使用多种解决方案。其中之一是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 [email protected] but not on { instance, pid, ppid } #does not send alert on pid changes
#set alert [email protected]
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
文件。各种服务的 Monit 配置从文件夹加载/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
配置:
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
各种服务的配置都从文件夹加载。使用以下命令使用 Monit 配置文件/etc/monit/conf.d
监控驱动器空间:Monit, create a
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 服务器。
...
答案3
您还可以查看海狮您可以为 CPU 使用率、内存等设置自定义警报。此外,您还可以添加自己的指标并为其配置通知。此外,您还可以安排命令以特定间隔运行,并在时间轴显示中查看其输出。您可以找到有关它的更多信息这里。
答案4
在我的学校,我们的老师对我们进行了 Pandora FMS 的培训,这是一个涵盖服务器监控、应用程序甚至网络的监控解决方案!
那时我只知道 Zabbix 和 Nagios,之前从未听说过这个解决方案,但现在我以它为基础开展项目,因为它提供了额外的功能。服务器监控部分非常成熟,在我看来,它配置起来更简单,并且可以尽快获得性能统计数据:http://pandorafms.com/monitoring-solutions/服务器监控/