Nagios Notifo通知

nagifo的Python项目详细描述


Version:0.2.0

简介

Nagifo是一个简单的小程序包,可以向您的手机发送Nagios警报 通过Notifo,允许您确认Nagios警报,而无需 登录nagios。

安装

您可以使用pipeasy_install在cheeseshop上安装nagifo,或者 您可以从源安装。

使用easy_install,:

安装
$ easy_install nagifo

使用pip,:

安装
$ pip install nagifo

如果你已经从芝士店下载了源tarball,或者克隆了 nagifo存储库,您可以像这样安装nagifo:

$ python2 setup.py install

配置

任何进一步的配置都需要一个Notifo帐户,所以如果您需要 还没有(帐户是免费的)。您还需要notifo api密钥。 您可以在Notifo user settings页面上找到您的个人api密钥。

因为这一切(至少对我来说)都是为了在手机上获取警报 电话,您可能还想在电话上安装Notifo客户端。

注意,组织中每个希望通过notifo通知的人都会 需要他们自己的Notifo帐户。

Nagios配置

设置nagios以使用nagifo发送通知尽可能简单 弄清楚怎么做。

您将需要一个命令定义,这实际上是运行nagifo的 命令(确保nagifo位于$path!)。它们通常位于 commands.cfg。下面是要使用的命令定义:

define command{
        command_name    notify-by-notifo
        command_line    nagifo \
          "$CONTACTADDRESS1$" "$CONTACTADDRESS2$" "$NOTIFICATIONTYPE$" "$HOSTNAME$" \
          "$SERVICESTATE$" "$SERVICEDESC$" "$SERVICEOUTPUT$ $LONGDATETIME$"
        }

要让nagios通过Notifo向您发送警报,您需要告诉nagios 向您发送警报时运行notify-by-notifo命令。完成了 在联系人定义中添加以下行:

service_notification_commands   +notify-by-notifo

而且由于nagifo脚本需要用户的用户名和api密钥, 它将发出警报,这些也是联系人定义中所必需的。就像我一样 不知道Nagios是否支持联系人定义中的任意字段, 我使用了address1字段作为notifo用户名,使用了address2 notifo api键的字段。:

address1                        <notifo-username>
address2                        <notifo-API-key>

下面是完整联系人定义的示例:

define contact{
        contact_name                    jdoe
        use                             generic-contact
        alias                           John Doe
        email                           jdoe@company.com
        address1                        jdoe
        address2                        lkjsdf908234234kjndflkjsdf2342345439sdfsdf3
        service_notification_commands   +notify-by-notifo
        }

从notifo确认

这个包中包括一个小的webapp,它允许您 在不需要登录Nagios的情况下,确认来自手机的警报。 无可否认,这个webapp的配置更为复杂。

为了简洁起见,我假设您使用Apache2 Nagios,并已安装和加载mod_wsgi。也就是说,最快 让webapp工作的方法是将以下内容添加到apache2 配置文件:

WSGIScriptAliasMatch /nagifo /var/www/nagifo.wsgi

/var/www/nagifo.wsgi的内容很简单:

from nagifo.nagacknowledge import app as application

如果您的设置与我的假设不同,或者需要更多详细信息,请 看看Flask deployment guide

最后需要的是nagifo配置文件。nagifo配置 文件位于/etc/nagifo.conf,看起来像:

[default]
nagios_cmdfile = /usr/local/nagios/var/rw/nagios.cmd
secret_key = some_long_random_string22
external_url = nottaken.net:4444/nagifo

您需要找到nagios安装程序将其nagios.cmd文件放在何处,以及 将nagios_cmdfile设置为该文件的路径。

secret_key应该是一些长的随机字符串。绳子的用途 就像一个密码,防止随机的陌生人认出你 只需猜测url即可发出警报。

external_url设置应该是 服务器nagios正在运行,端口(如果需要)和wsgi的路径 脚本正在运行。因为在apache配置示例中,我将 只有当uri以/nagifo开头时,才请求nagifo,external_url 必须包含/nagifo

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用Spring和JSF向客户端授予临时权限   java除了Array/ArrayList之外,还有其他保存矩阵元素的方法吗   java BeanValidation不适用于单选按钮   通过java程序连接到配置单元数据库时出错   java如何使用maven解决二级依赖关系   JfreeChart/Java中带有图例的数据表   合并数组时发生java运行时错误   安全性如何在JavaEE中保护WebSocket端点?   java有没有一种方法可以使用insert方法为树插入值   java编程“静态”的另一种方式:代码可以吗?   java阅读文本文件时如何跳过3行   %04X在C中的含义以及如何在java中编写   java我如何验证一个方法不是仅在一个测试范围内对模拟调用的?   java如何在mac中使用启动appium desktop 1.6.1。球棒   仅匹配最多10位小数的java正则表达式