Alerta是一个Web应用程序,用于合并和删除来自多个监视系统的警报,并在单个屏幕上显示它们。Alerta可以与许多被人们广泛熟知的监控工具集成,如Nagios,Zabbix,Sensu,InfluxData Kapacitor等等。
在本教程中,我们将教你配置Alerta并使其能够显示来自 Nagios的通知。
要学习本教程,您需要:
您可以使用Nagios Event Broker(NEB)模块扩展Nagios的功能。NEB是Nagios的事件集成机制,NEB模块是共享库,可以让您与Nagios集成其他服务。在此步骤中,我们将安装Nagios to Alerta Gateway(向Alerta发送通知的NEB模块)。
以非root用户身份登录Nagios服务器:
ssh sammy@your_nagios_server_ip
Nagios to Alerta Gateway没有预先配置的系统软件包,因此您必须从源代码构建。您需要安装一些开发工具和文件。您还需要安装Git,以便从GitHub获取源代码。
sudo yum install -y git curl gcc make libcurl-devel
安装了之前的组件后,使用Git从项目的GitHub存储库中克隆源代码:
git clone https://github.com/alerta/nagios-alerta.git
然后切换到新目录nagios-alerta:
cd nagios-alerta
然后使用make
命令编译模块nagios-alerta
make nagios4
您将看到以下结果:
cd ./src && make nagios4
make[1]: Entering directory `/root/nagios-alerta/src'
gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../include -I../include/nagios4 -lcurl -o alerta-neb.o alerta-neb.c -shared -lcurl
make[1]: Leaving directory `/root/nagios-alerta/src'
如果未显示如上内容,请确保已安装所有必备组件。
现在运行安装任务:
sudo make install
如果您看到如下结果,表明该模块已安装在/usr/lib/nagios:
cd ./src && make install
make[1]: Entering directory `/root/nagios-alerta/src'
[ -d /usr/lib/nagios ] || mkdir /usr/lib/nagios
install -m 0644 alerta-neb.o /usr/lib/nagios
make[1]: Leaving directory `/root/nagios-alerta/src'
安装模块后,我们可以配置Nagios来使用这个新模块。
让我们配置Nagios来向Alerta发送通知消息。
首先,在Nagios主配置文件中启用新安装的Alerta代理模块。在编辑器中打开Nagios配置文件:
sudo vi /usr/local/nagios/etc/nagios.cfg
找到包含broker\_module
指令的部分:
...
# EVENT BROKER MODULE(S)
# This directive is used to specify an event broker module that should
# by loaded by Nagios at startup. Use multiple directives if you want
# to load more than one module. Arguments that should be passed to
# the module at startup are separated from the module path by a space.
#
[...]
#broker_module=/somewhere/module1.o
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
...
要配置Alerta模块,您需要提供两个必需参数:
将此行添加到文件中以配置Alerta集成:
...
broker_module=/usr/lib/nagios/alerta-neb.o http://your_alerta_server_ip/api key=ALERTA_API_KEY
...
您还可以指定一些其他可选参数:
要指定所有这些选项,请用此行代码替代:
...
broker_module=/usr/lib/nagios/alerta-neb.o http://your_alerta_server_ip/api key=ALERTA_API_KEY env=Production hard_only=1 debug=1
...
保存文件并退出编辑器。
为了按环境和服务名称识别警报,您需要使用Nagios 自定义对象变量设置环境和服务名称。为此,请使用配置中的\_Environment
和\_Service
变量。
打开默认的Nagios主机对象配置文件,您可以在目录中找到该文件:/usr/local/nagios/etc/objects/
sudo vi /usr/local/nagios/etc/objects/localhost.cfg
我们会将此主机的所有提醒标记为 生产 提醒,我们将调用默认服务 Nagios 。找到以下主机定义:
...
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
}
...
将\_Environment
和\_Service
值添加到配置中:
...
host_name localhost
alias localhost
address 127.0.0.1
_Environment Production
_Service Nagios
}
...
现在将与"系统空间不足"相关的所有事件标记为 系统 警报。找到定义检查可用空间的这部分:
...
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
}
...
修改它以将其与System
服务相关联:
...
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
_Service System
}
...
保存文件并退出编辑器。重新启动Nagios以应用这些新设置:
sudo systemctl restart nagios.service
通过检查其状态来确保服务正在运行:
systemctl status nagios.service
您将看到以下输出:
...
Jul 01 08:44:31 nagios nagios[8914]: [alerta] Initialising Nagios-Alerta Gateway module, v3.4.1
Jul 01 08:44:31 nagios nagios[8914]: [alerta] debug is off
Jul 01 08:44:31 nagios nagios[8914]: [alerta] states=Hard/Soft
Jul 01 08:44:31 nagios nagios[8914]: [alerta] Forward service checks, host checks and downtime to http://your_alerta_server_ip/api
Jul 01 08:44:31 nagios nagios[8914]: Event broker module '/usr/lib/nagios/alerta-neb.o' initialized successfully.
Jul 01 08:44:31 nagios nagios[8914]: Successfully launched command file worker with pid 8920
现在,只要任何系统或服务在运行,Nagios就会发送通知。接下来让我们测试一下。
让我们生成测试警报以确保所有内容都已连接。默认情况下,Nagios会跟踪服务器上的可用磁盘空间量。我们将创建一个足够大的临时文件来触发Nagios的文件系统警报。
首先,查看您在Nagios服务器上有多少可用空间。您可以使用df命令查找:
df -h
你会看到如下输出:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 3.1G 16G 17% /
查看可用空间量。在这种情况下,可用空间是16GB。
使用fallocate命令创建占用可用磁盘空间80%以上的文件,该文件应足以触发警报:
fallocate -l 14G /tmp/temp.img
在几分钟内,Nagios将触发有关可用磁盘空间量的警报,并将通知消息发送给Alerta。您将在Alerta仪表板中看到此新通知:
既然您知道警报正在运行,请删除您创建的临时文件,以便回收磁盘空间:
rm -f /tmp/temp.img
一分钟后,Nagios将发送恢复消息。然后,警报将从主Alerta仪表板中消失,但您仍然可以通过点击 Closed 来查看所有已关闭的事件。
您可以单击事件行以查看更多详细信息。
在本教程中,您配置了Nagios以便向另一台运行Alerta的服务器发送通知。
Alerta为可以让您跟踪来自许多系统的警报。例如,如果基础架构的一部分使用Nagios,而其他部分使用Zabbix,则可以将来自两个系统的通知合并到一个面板中。你学会了嘛?购买一台服务器试试吧:https://cloud.tencent.com/product/cvm
参考文献:《How To Monitor Nagios Alerts with Alerta on CentOS 7》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。