【问题标题】:Munin output in json rather than in graphsMunin 以 json 格式而不是图形输出
【发布时间】:2014-06-12 06:04:20
【问题描述】:

我想使用 munin 来收集系统统计信息并将其保存在数据库中。但是我找不到任何方法来获取 munin 收集的原始统计数据。有什么方法可以获取 munin 收集的原始数据并使用它创建图表?

【问题讨论】:

  • Munin 团队大约每月推送一次更新。现在提到了 JSON API,它可能会改变这个问题的答案。如果您弄明白了,请添加一个完整的答案。来自munin-monitoring.org/wiki:2014-05-05:Munin 2.1.7 发布。将 SQL 用于内部状态的不稳定版本。 JSON API 的第一个版本。

标签: linux statistics munin


【解决方案1】:

另一种可能性是使用rrdtool 命令访问历史数据,例如使用 rrdtool fetch /var/munin/{domain}/{something}.rrd AVERAGE 之类的东西(这是 FreeBSD 系统上数据文件的路径,在 Linux 上可能是 /var/lib/munin 左右)。

【讨论】:

    【解决方案2】:

    您可以使用 xml 格式导出 munin(或者更确切地说是底层 rrdtool)数据

    rrdtool xport \
          --start now-1h --end now \
          DEF:xx=host-inout.lo.rrd:output:AVERAGE \
          DEF:yy=host-inout.lo.rrd:input:AVERAGE \
          CDEF:aa=xx,yy,+,8,* \
          XPORT:xx:"out bytes" \
          XPORT:aa:"in and out bits"
    

    生成的元数据部分是(值将取决于 RRD 特征):

    <meta>
    <start>1020611700</start>
    <step>300</step>
    <end>1020615600</end>
    <rows>14</rows>
    <columns>2</columns>
    <legend>
      <entry>out bytes</entry>
      <entry>in and out bits</entry>
    </legend>
    

    结果数据部分是:

    <data>
    <row><t>1020611700</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020612000</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020612300</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020612600</t><v>3.4113333333e+00</v><v>5.4581333333e+01</v></row>
    <row><t>1020612900</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020613200</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020613500</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020613800</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020614100</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020614400</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020614700</t><v>3.7333333333e+00</v><v>5.9733333333e+01</v></row>
    <row><t>1020615000</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020615300</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
    <row><t>1020615600</t><v>NaN</v><v>NaN</v></row>
    

    我使用 xml 导出使用 JavaScript 生成图表,用于http://pi.tafkas.net/temperatures/ 的家庭温度监控

    【讨论】:

      【解决方案3】:

      Munin 依靠其插件来收集统计数据。尽管插件几乎可以用任何语言编写,但大多数是某种类型的脚本(shell、Perl、Python 等)。查看每个插件(您要使用的)以了解数据是如何收集的。您应该能够编写自己的代码并将其 cron(就像 munin 所做的那样),以便它每 5 分钟(或您想要的任何时间)获取一个指标。

      在绘制一些较大的数据集(例如,绘制一整年的数据)时,您可能需要编写额外的脚本来聚合数据。在特定时间段后删除数据的那个和/或脚本。

      【讨论】:

      • 在 Ubuntu 系统上,插件位于 /usr/lib/munin/plugins。
      猜你喜欢
      • 2020-10-20
      • 1970-01-01
      • 2018-10-03
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2019-01-26
      • 2017-05-06
      • 1970-01-01
      相关资源
      最近更新 更多