我正在使用 rrdtools 存储我的服务器的指标,并想使用 rrddump 命令将此 rrd 转储为 XML。因此需要这种 XML 格式的文档,我在哪里可以找到它?
答案1
没有专门针对 RRD 文件的 XML 格式的文档,但可以从二进制 RRD 格式的文档中得出如下结论:
本指南是根据以下网站的信息编写的:
- http://www.cuddletech.com/articles/rrd/ar01s02.html
- https://gridweb.triumf.ca/recipes/showentry.php?rid=112
另请参阅 rrdtool 网站上的文档。
RRD XML文件的基本结构是:
<rrd> <version /> <step /> <lastupdate />
<ds> <name /> <type /> <step /> <minimal_heartbeat /> <min /> <max /> <last_ds /> <value /> <unknown_sec /> </ds> ...
<rra> <cf /> <pdp_per_row /> <xff />
<cdp_prep> <ds> <value /> <unknown_datapoints /> </ds> ... <cdp_prep>
<database> <row> <v /> ... </row> ... </database>
</rra>...
</rrd>
在这个临时的语法定义中,我使用省略号(...)来表示元素的基数为 1 或更多。
该结构可以描述为:每个 Round Robin Database(<rrd>)有一个或多个 Data Source(<ds>)和一个或多个 Round Robin Archives(<rra>)。每个 <rra> 包含一个 Database(<database>),该 Database 有多个行(<row>)。每个 <row> 有多个 Value(<v>),其数量与为 <rrd> 定义的 Data Source(<ds>)的数量相对应。
数据源元素(<ds>)定义了将要监控的每个数据源(DS)的数据特征:
- < 名称 >:DS 的自由文本名称
- < step >:数据收集的采样率(以秒为单位)。假定每个主数据点 (PDP) 存储自上一个 PDP 以来的某个时间点的数据。如果未指定,则使用默认值 300。
- < type >:捕获的测量类型 - { COUNTER | DERIVE | ABSOLUTE | GAUGE } 声明为 COUNTER 的 DS 将保存步长周期内值的变化率。这假设值始终在增加(当前值与前一个值之间的差大于 0)。路由器上的流量计数器是使用 COUNTER 作为 DST 的理想候选。DERIVE 与 COUNTER 相同,但它也允许负值。如果您想查看服务器上可用磁盘空间的变化率,那么您可能需要使用 DERIVE 数据类型。ABSOLUTE 也保存变化率,但它假设前一个值设置为 0。当前值与前一个值之间的差始终等于当前值。GAUGE 不保存变化率。它保存实际值本身。没有除法或计算。服务器中的内存消耗是仪表的典型示例。
- < minimal_heartbeat >:我们可以不进行更新的最长时间(以秒为单位)。例如,如果 minimal_heartbeat = 120,并且我们超过 120 秒没有听到任何值,则此间隔的主要数据点将设置为 UNKNOWN。
- < min >:数据源的最小可记录值
- <max>:数据源的最大可记录值
- <最后>:??
- <值>:??
循环存档元素 (< rra >) 定义了 RRD 中每个存档的测量特性。
档案由每个定义的数据源 (DS) 的多个数据值或统计信息组成。< rra > 的元素包括:
- < cf >:档案的合并函数 - { AVERAGE | MIN | MAX | LAST }。PDP 根据合并函数进行聚合或筛选。
- < pdp_per_row >:构成记录值的 PDP 数量。如果 pdp_per_row 大于 1,则将根据 < cf > 聚合或过滤 PDP。< pdp_per_row > 和 DS < step > 的乘积给出了 < rra > 中每条记录的采样率(以秒为单位)。例如,如果 DS < step > = 300 且 < pdp_per_row > = 6,则 < rra > 的采样率为 1800 秒。
- < xff >:XFiles Factor (XFF),指在不导致记录值未知的情况下,未知的 PDP 百分比。
- < cdp-准备 >: ??
- < database >:< rra > 存储的数据。< database > 由多个 < row > 元素组成,每个元素包含的 < v > 元素数量等于为 < rrd > 定义的数据源元素 (< ds >) 的数量。< v > 元素存储由 rrdupdate 函数调用写入 RRD 文件的采样数据 - 换句话说,即 RRD 与之交互的监控工具生成的数据。
有几个元素我还没能找到解释。它们被标记为??。
答案2
如果您检查 rrddump 生成的 XML,并且对 rrdtool 的工作原理有基本的了解,就会发现格式非常具有自描述性。我不知道有任何文档。