前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在CVM上监控其他Centos系统

在CVM上监控其他Centos系统

原创
作者头像
水门
修改2018-07-18 11:52:09
1.8K1
修改2018-07-18 11:52:09
举报

简介

Alerta是一个Web应用程序,用于合并和删除来自多个监视系统的警报,并在单个屏幕上显示它们。Alerta可以与许多被人们广泛熟知的监控工具集成,如Nagios,Zabbix,Sensu,InfluxData Kapacitor等等。

在本教程中,我们将教你配置Alerta并使其能够显示来自 Nagios的通知。

准备

要学习本教程,您需要:

  • 使用腾讯云云服务器CVM购买并安装两个CentOS 7服务器,腾讯云默认包含sudo非root用户。
  • 在第一台运行Nagios的CentOS服务器上,安装以下组件:
    • Apache,MySQL和PHP。
    • Nagios 4。
  • 在第二个CentOS服务器上,我们将安装Alerta和以下组件:
    • Nginx。
    • MongoDB。
    • Alerta。

第一步、安装Nagios-to-Alerta事件代理模块

您可以使用Nagios Event Broker(NEB)模块扩展Nagios的功能。NEB是Nagios的事件集成机制,NEB模块是共享库,可以让您与Nagios集成其他服务。在此步骤中,我们将安装Nagios to Alerta Gateway(向Alerta发送通知的NEB模块)。

以非root用户身份登录Nagios服务器:

代码语言:txt
复制
ssh sammy@your_nagios_server_ip

Nagios to Alerta Gateway没有预先配置的系统软件包,因此您必须从源代码构建。您需要安装一些开发工具和文件。您还需要安装Git,以便从GitHub获取源代码。

代码语言:txt
复制
sudo yum install -y git curl gcc make libcurl-devel

安装了之前的组件后,使用Git从项目的GitHub存储库中克隆源代码:

代码语言:txt
复制
git clone https://github.com/alerta/nagios-alerta.git

然后切换到新目录nagios-alerta:

代码语言:txt
复制
cd nagios-alerta

然后使用make 命令编译模块nagios-alerta

代码语言:txt
复制
make nagios4

您将看到以下结果:

代码语言:txt
复制
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'

如果未显示如上内容,请确保已安装所有必备组件。

现在运行安装任务:

代码语言:txt
复制
sudo make install

如果您看到如下结果,表明该模块已安装在/usr/lib/nagios:

代码语言:txt
复制
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-to-Alerta模块

让我们配置Nagios来向Alerta发送通知消息。

首先,在Nagios主配置文件中启用新安装的Alerta代理模块。在编辑器中打开Nagios配置文件:

代码语言:txt
复制
sudo vi /usr/local/nagios/etc/nagios.cfg

找到包含broker\_module指令的部分:

代码语言:txt
复制
...
# 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模块,您需要提供两个必需参数:

  • URL :用于与Alerta API通信的地址。您是在教程的第3步中配置的。
  • key :您在教程的步骤4中创建的API密钥。您需要这个key来对Alerta进行身份验证并发布事件。

将此行添加到文件中以配置Alerta集成:

代码语言:txt
复制
...
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启用此模式。

要指定所有这些选项,请用此行代码替代:

代码语言:txt
复制
...
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/

代码语言:txt
复制
sudo vi /usr/local/nagios/etc/objects/localhost.cfg

我们会将此主机的所有提醒标记为 生产 提醒,我们将调用默认服务 Nagios 。找到以下主机定义:

代码语言:txt
复制
...
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值添加到配置中:

代码语言:txt
复制
...
        host_name               localhost
        alias                   localhost
        address                 127.0.0.1
        _Environment            Production
        _Service                Nagios
        }
...

现在将与"系统空间不足"相关的所有事件标记为 系统 警报。找到定义检查可用空间的这部分:

代码语言:txt
复制
...
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服务相关联:

代码语言:txt
复制
...
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以应用这些新设置:

代码语言:txt
复制
sudo systemctl restart nagios.service

通过检查其状态来确保服务正在运行:

代码语言:txt
复制
systemctl status nagios.service

您将看到以下输出:

代码语言:txt
复制
...
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-Alerta集成

让我们生成测试警报以确保所有内容都已连接。默认情况下,Nagios会跟踪服务器上的可用磁盘空间量。我们将创建一个足够大的临时文件来触发Nagios的文件系统警报。

首先,查看您在Nagios服务器上有多少可用空间。您可以使用df命令查找:

代码语言:txt
复制
df -h

你会看到如下输出:

代码语言:txt
复制
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda1        20G  3.1G   16G   17% /

查看可用空间量。在这种情况下,可用空间是16GB。

使用fallocate命令创建占用可用磁盘空间80%以上的文件,该文件应足以触发警报:

代码语言:txt
复制
fallocate -l 14G /tmp/temp.img

在几分钟内,Nagios将触发有关可用磁盘空间量的警报,并将通知消息发送给Alerta。您将在Alerta仪表板中看到此新通知:

既然您知道警报正在运行,请删除您创建的临时文件,以便回收磁盘空间:

代码语言:txt
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 准备
  • 第一步、安装Nagios-to-Alerta事件代理模块
  • 第二步、配置Nagios-to-Alerta模块
  • 第三步、生成测试警报以验证Nagios-Alerta集成
  • 结论
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档