Scripting 是否可以从终端确认nagios警报?

Scripting 是否可以从终端确认nagios警报?,scripting,nagios,Scripting,Nagios,我已经设置了nagios警报,通过jabber发送到ack的http链接 是否有可能从远程工作站上的终端运行脚本,该脚本将主机名作为参数并确认警报 /ack主机名 好处虽然看似平凡,但有三个方面。首先,从nagios上下载http。其次,nagios http页面的加载可能需要10-20秒,所以我想在那里节省时间。第三,避免使用较慢的鼠标+web界面+firefox/其他令人烦恼的较慢浏览器 理想情况下,我想要一个绑定到键盘快捷键的脚本,该快捷键可以简单地确认最近的警报。最后,我想从操纵杆、按钮

我已经设置了nagios警报,通过jabber发送到ack的http链接

是否有可能从远程工作站上的终端运行脚本,该脚本将主机名作为参数并确认警报

/ack主机名

好处虽然看似平凡,但有三个方面。首先,从nagios上下载http。其次,nagios http页面的加载可能需要10-20秒,所以我想在那里节省时间。第三,避免使用较慢的鼠标+web界面+firefox/其他令人烦恼的较慢浏览器

理想情况下,我想要一个绑定到键盘快捷键的脚本,该快捷键可以简单地确认最近的警报。最后,我想从操纵杆、按钮等获取输入,并将其连接到绑定到脚本的一个大红色按钮,这样我就可以通过点击按钮lol来确认最近的nagios警报。(如果该按钮在外壳上有一个屏幕,显示已确认警报的文本lol,那也将是rad)

你想怎么取笑我就怎么取笑我,但这实际上对我很有用。如果我可以为每个警报节省5秒钟,并且每天收到200个需要确认的警报,那么我每天就可以节省15分钟。系统管理员的全部目的不是自动化可以自动化的东西吗


谢谢

是的,可以通过解析
/var/lib/nagios3/retention.dat
文件来确认nagios

见:

#!/usr/bin/env python
# -*- coding: utf8 -*-
# vim:ts=4:sw=4

import sys

file = "/var/lib/nagios3/retention.dat"

try:
    sys.argv[1]
except:
    print("Usage:\n"+sys.argv[0]+" <HOST>\n")
    sys.exit(1)

f = open(file, "r")
line = f.readline()

c=0
name = {}
state = {}
host = {}

while line:
    if "service_description=" in line:
        name[c] = line.split("=", 2)[1]
    elif "current_state=" in line:
        state[c] = line.split("=", 2)[1]
    elif "host_name=" in line:
        host[c] = line.split("=", 2)[1]
    elif "}" in line:
        c+=1

    line = f.readline()

for i in name:
    num = int(state[i])

    if num > 0 and sys.argv[1] == host[i].strip():
        print(name[i].strip("\n"))
#/usr/bin/env python
#-*-编码:utf8-*-
#vim:ts=4:sw=4
导入系统
file=“/var/lib/nagios3/retention.dat”
尝试:
系统argv[1]
除:
打印(“用法:\n”+sys.argv[0]+“\n”)
系统出口(1)
f=打开(文件“r”)
line=f.readline()
c=0
名称={}
状态={}
主机={}
while line:
如果“service_description=”在同一行:
名称[c]=行分割(“=”,2)[1]
elif“current_state=”行中:
状态[c]=行分割(“=”,2)[1]
elif“host_name=”行中:
主机[c]=行分割(“=”,2)[1]
行中的elif“}”:
c+=1
line=f.readline()
以我的名义:
num=int(状态[i])
如果num>0且sys.argv[1]==主机[i].strip():
打印(名称[i]。条带(“\n”))

您只需将主机作为参数,脚本将显示中断的服务。

一点也不!我只是慢了,哈哈。我还意识到我应该把这个贴在服务器故障上。我假设你从nagios服务器运行脚本?我希望能从远程工作站运行一些东西,但我应该澄清一下。是的,从nagios服务器。您可以使用ssh在远程主机上执行相同的操作:
ssh-nagios-server/path/to/executable/script.py