RRDTool - 不是有效的 vname



我正在使用RRDTool来管理和绘制我的性能数据。
目前,我正在从 bash 脚本调用 RRDTool,但我收到一个错误,我无法修复。
我的 Bash 脚本如下所示:

# Call RRDTool and save the output
output=$(rrdtool graph --width 4000 
DEF:data=/usr/local/pnp4nagios/var/perfdata/FM/win_tcpu.rrd:proc:AVERAGE 
VDEF:slope=data,LSLSLOPE 
PRINT:slope:'%lf')
echo "Output: " $output

我试图用这个简单的例子来解决 y = m*x + b 中的 m
我的性能数据如下所示:

<NAGIOS>
<DATASOURCE>
  <TEMPLATE>nrpe_win_tcpu</TEMPLATE>
  <RRDFILE>/usr/local/pnp4nagios/var/perfdata/FM/win_tcpu.rrd</RRDFILE>
  <RRD_STORAGE_TYPE>SINGLE</RRD_STORAGE_TYPE>
  <RRD_HEARTBEAT>8460</RRD_HEARTBEAT>
  <IS_MULTI>0</IS_MULTI>
  <DS>1</DS>
  <NAME>proc</NAME>
  ...
</DATASOURCE>
...

如您所见,文件名是正确的,数据源名称也是正确的。
我的问题是 DEF 似乎不起作用。我收到以下错误消息:

ERROR: Not a valid vname: data in line VDEF:slope=data,LSLSLOPE

当尝试像这样访问保存在变量数据中的数据时,只是为了检查问题是否出在我的 VDEF 行中:

LINE1:data#0000FF:"data" 

我收到以下错误:

ERROR: parameter 'data' does not represent a number in line LINE1:data#0000FF:data

这澄清了问题出在 DEF 行的某个地方,但我不知道为什么会发生这种情况。

有没有人知道为什么我会收到这些错误消息以及如何解决此问题?

任何帮助表示赞赏。提前谢谢。

我发现了问题。这只是我犯的一个非常愚蠢的错误。我打电话给:

rrdtool graph --width 4000 
DEF:data=/usr/local/pnp4nagios/var/perfdata/FM/win_tcpu.rrd:proc:AVERAGE 
VDEF:slope=data,LSLSLOPE 
...

再次查看RRDTool图的使用说明,向我展示了以下内容:

rrdtool graph filename [-s|--start seconds] [-e|--end seconds] ...

我只是缺少一个文件名。当像上面提到的那样调用它时,RRDTool 将我的 DEF 行解释为文件名。这将在将结果写入此文件时导致错误,但 RRDTool 在 VDEF 行上退出并显示错误,因为从未定义过数据

感谢您的所有评论。我只是想澄清我测试的一些事情:
- 变量名称数据不会导致任何问题
- 拥有名称为 1 的 DS 是完全有效的,您也可以在 CDEF 中访问它,依此类推

感谢您的帮助!

你不能做一行VDEF - 它是一个值,并且只对聚合函数有效。

发件人:http://oss.oetiker.ch/rrdtool/doc/rrdgraph_rpn.en.html LSLSLOPE 有效。

不过,您应该能够绘制data图,例如

LINE1:data#00CC00:data

你不能 - 并且得到"不代表一个数字"让我想知道你的数据源中有什么。我建议你看看xport转储RRD,看看里面有什么。

您可能没有获得足够的输入数据来在 RRD 中构建 CDP,因此它们都是UNKNOWNNaN

(无效的 VNAME 确实让我想知道 - 您是否尝试过将其更改为 data 以外的其他内容 - 这似乎可能是一个保留字。

相关内容

  • 没有找到相关文章

最新更新