Nagios Notifo通知
nagifo的Python项目详细描述
Version: | 0.2.0 |
---|
简介
Nagifo是一个简单的小程序包,可以向您的手机发送Nagios警报 通过Notifo,允许您确认Nagios警报,而无需 登录nagios。
安装
您可以使用pip或easy_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。