有没有办法可以将Nagios中各种警报的历史性能数据作为json / xml获取?

时间:2017-01-06 08:33:10

标签: snmp nagios nagiosxi

我希望在Nagios Core / XI中获取各种警报设置的性能数据。我认为它存储在RRD中。我有办法获得它吗?

1 个答案:

答案 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

希望这有帮助!