我希望在Nagios Core / XI中获取各种警报设置的性能数据。我认为它存储在RRD中。我有办法获得它吗?
答案 0 :(得分:3)
如果您使用的是Nagios XI,则可以通过几种不同的方式获取此数据。
如果您使用的是XI 5或更高版本,那么最让您想到的就是API。以管理员身份登录XI服务器,导航到“帮助”菜单,然后在左侧导航栏中选择“对象参考”,从“对象参考”导航框中找到“GET objects / rrdexport”(或者向下滚动到附近)底部)。
示例curl可能如下所示:
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"
]
}
]
}
}
但等等,还有另外一种方式
无论您使用的是什么版本,这种方式都可以正常工作,如果您在Core系统上使用NPCD处理性能数据,这种方式也会有效。
通过ssh或console登录到您的服务器,然后将您的对接到/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 documentation
希望这有帮助!