如何读取不同架构的RRD

How to read RRD with different architecture

我在服务器 A 中有一组 RRD 文件,我需要读取这些数据。我还没有在服务器 A 中安装 rrrdtool。我尝试了几种方法,但我找不到任何可能的方法来在服务器 A 中安装 rrdtool。我已经在这个问题 RRDtool cannot find in python 中提出了关于服务器 A 的相关数据。

Server A Details

    OS Version:
    Red Hat Enterprise Linux Server release 5 (Tikanga)

    Python Version:
    Python 2.4.3

现在我需要读取那些rrddata,所以我下载了文件并将它们上传到服务器B 并尝试读取它们。但我的结局如下。

file_path=r'rrd/rrdfile.rrd'
rrdfilename = file_path
rrd = rrdtool.lastupdate(rrdfilename)

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-62-8e31bdc49f04> in <module>
      1 file_path=r'rrd/rrdfile.rrd'
      2 rrdfilename = file_path
----> 3 rrd = rrdtool.lastupdate(rrdfilename)

OperationalError: This RRD was created on another architecture

谁能帮我从服务器 B 读取那些 rrd 文件?因为我无法从服务器 A

读取它们

由于您在服务器 A 上安装了 rrdtool,您使用 rrdtool dump 命令以 architecture-indepdenent 格式导出数据,然后在服务器 B 上 rrdtool restore生成正确的 RRD 二进制文件。

在服务器 A 上:

rrdtool dump rrd/rrdfile.rrd rrdfile.xml

rrdfile.xml 复制到服务器 B,然后在服务器 B 上:

rrdtool restore rrdfile.xml rrdfile.rrd

现在您有一个 .rrd 文件,您可以使用 Python 模块读取它。