Snmp 有没有办法以json/xml的形式获取Nagios中各种警报的历史性能数据?
我希望在Nagios Core/XI中获得各种警报设置的性能数据。我认为它存储在RRDs中。有没有方法可以访问它? < p>如果你使用NigiS席,你可以用几种不同的方式得到这个数据。Snmp 有没有办法以json/xml的形式获取Nagios中各种警报的历史性能数据?,snmp,nagios,nagiosxi,Snmp,Nagios,Nagiosxi,我希望在Nagios Core/XI中获得各种警报设置的性能数据。我认为它存储在RRDs中。有没有方法可以访问它? < p>如果你使用NigiS席,你可以用几种不同的方式得到这个数据。 如果你使用席5或更晚,那么最容易想到的就是API。登录到你的席服务器作为管理员,导航到“帮助”菜单,然后选择“对象引用”在左侧导航,并找到“获取对象/ RRXTestPoT”从对象参考导航框(或只是向下滚动到底部)。 卷曲示例可能如下所示: curl -XGET "http://nagiosxi/nagiosxi
如果你使用席5或更晚,那么最容易想到的就是API。登录到你的席服务器作为管理员,导航到“帮助”菜单,然后选择“对象引用”在左侧导航,并找到“获取对象/ RRXTestPoT”从对象参考导航框(或只是向下滚动到底部)。 卷曲示例可能如下所示:
curl -XGET "http://nagiosxi/nagiosxi/api/v1/objects/rrdexport?apikey=YOURAPIKEY&pretty=1&host_name=localhost"
您的回答应该如下所示:
{
"meta": {
"start": "1453838100",
"step": "300",
"end": "1453838400",
"rows": "2",
"columns": "4",
"legend": {
"entry": [
"rta",
"pl",
"rtmax",
"rtmin"
]
}
},
"data": {
"row": [
{
"t": "1453838100",
"v": [
"6.0373333333e-03",
"0.0000000000e+00",
"1.7536000000e-02",
"3.0000000000e-03"
]
},
{
"t": "1453838400",
"v": [
"6.0000000000e-03",
"0.0000000000e+00",
"1.7037333333e-02",
"3.0000000000e-03"
]
}
]
}
}
但是等等,还有另一种方法
无论您使用的是哪个版本,这种方法都会起作用,如果您在核心系统上使用NPCD处理性能数据,这种方法也会起作用
通过ssh或控制台登录到服务器,并转到/usr/local/nagios/share/perfdata
目录。从这里我们将使用localhost对象作为示例
$ cd /usr/local/nagios/share/perfdata/
$ ls
localhost
$ cd localhost/
$ ls
Current_Load.rrd Current_Users.xml HTTP.rrd PING.xml SSH.rrd Swap_Usage.xml
Current_Load.xml _HOST_.rrd HTTP.xml Root_Partition.rrd SSH.xml Total_Processes.rrd
Current_Users.rrd _HOST_.xml PING.rrd Root_Partition.xml Swap_Usage.rrd Total_Processes.xml
$ rrdtool dump _HOST_.rrd
一旦您运行rrdtool dump
命令,将会有大量的输出,因此我将此作为练习留给读者;)
如果您试图自动化某种类型的东西,那么应该注意,xml文件包含rrd文件的元数据,可能有助于首先解析
另外,如果你和我一样,你也喜欢阅读技术手册。下面是一个很好的例子:
希望这有帮助 谢谢你的回答。rrdtool dump有助于收集每个报警性能数据。我现在安装了NigiSXi22R2.9,可以后端API帮助这里,因为我想使用这个数据作为服务。不幸的是,没有。RRD出口端点直到席席5才可用。您必须通过
rrdtool export
的组合编写自己的代码,并将该数据提供给您的http客户端。谢谢。我想知道curl-XGET“”如何获取此API的文档。我想知道GET请求的所有参数。很难找到用于此的API。如果您像您所说的那样使用2012R2.9,那么我无法向您提供可在您的服务器上运行的API/v1 curl请求。但是,如果您已经更新到席的最新版本(<代码>https://assets.nagios.com/downloads/nagiosxi/xi-latest.tar.gz)那么API实际上在应用程序内部有很好的文档记录。历史报警数据无法通过rrd导出获得,为此,您需要类似以下内容:curl-XGET"http://nagiosxi/nagiosxi/api/v1/objects/logentries?apikey=YOURAPIKEYHERE&pretty=1“
但搜索这些内容的能力相当有限。最好将它们全部提取出来,然后在获得它们后再进行解析。