1

我希望在我的 Nagios Core/XI 中获取各种警报设置的性能数据。我认为它存储在 RRD 中。有什么方法可以访问它吗?

4

1 回答 1

3

如果您使用的是 Nagios XI,您可以通过几种不同的方式获取此数据。

如果您使用的是 XI 5 或更高版本,那么最容易想到的方法就是 API。以管理员身份登录到您的 XI 服务器,导航到“帮助”菜单,然后在左侧导航中选择“对象引用”并从“对象引用”导航框中找到“获取对象/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"
                ]
            }
        ]
    }
}

但是等等,还有另一种方法

无论您使用的是什么版本,这种方式都可以使用,并且如果您在核心系统上使用 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 文档

希望这有帮助!

于 2017-01-06T17:39:50.580 回答