将 Cacti 从 Windows 迁移到 Linux

将 Cacti 从 Windows 迁移到 Linux

我正在将 Cacti 从 Windows 迁移到 Linux,但遇到了一些问题。

Windows 服务器正在运行旧版本的 Cacti,因此我将其迁移到 0.8 版本。

我已成功将数据库移植到新服务器,安装程序成功运行,表格已迁移到新版本。我已将 RRA 文件夹(包含旧 RRD 文件)从 Windows 服务器复制到 Linux 服务器上的新版本,但图表未显示。

当 Cacti 尝试更新 RRD 文件时,从命令行手动运行 poll.php 会显示此错误:

ERROR: reached EOF while loading header rrd->ds_def

知道可能是什么原因造成的吗?

提前致谢!

克里斯

答案1

您的 RRD 文件中有 Windows 行尾,因此 Linux 上的 cacti/rrdtool 无法读取它们。

公认的方法是使用 rrddump 将 RRD 文件转换为 XML,然后在目标机器上使用 rrdrestore 将它们恢复为 RRD。在 RRD 上运行 dos2unix 可能会解决这个问题,但我从未尝试过。

--由原始海报编辑--

为了以防万一,这里有一些具体信息:

Windows 机器

将 rrd 文件转换为 xml。

for /F "usebackq" %i in (`dir /s /b d:\Old_Cacti\rra_working_copy\*.rrd`) do rrdtool dump %i > %i.xml

将转换后的文件复制到其他地方进行 tarring/zip 压缩,然后再移至 Linux 机器

copy d:\Old_Cacti\rra_working_copy\*.xml d:\Old_Cacti\converted_rra_files\

Linux 机器

更改为包含已转换(xml)文件的目录并将其转换回 .rrd 文件。

find . -exec rrdtool restore {} {}.rrd \;

将新转换的文件复制到 rra 目录中。

cp *.rrd.xml.rrd /var/www/html/rra/

进入 rra 目录并将文件重命名为 *.rrd

rename .rrd.xml.rrd .rrd *.rrd.xml.rrd

相关内容