Назад | Перейти на главную страницу

Миграция Cacti с Windows на Linux

Я переношу Cacti с Windows на Linux и столкнулся с небольшой проблемой.

На сервере Windows установлена ​​более старая версия Cacti, поэтому я переношу ее на версию 0.8.

Мне удалось перенести базу данных на новый сервер, установщик успешно запустился, и таблицы были перенесены в новую версию. Я скопировал папку RRA (содержащую старые файлы RRD) с сервера Windows в новую версию на сервере Linux, но графики не отображаются.

При ручном запуске poll.php из командной строки эта ошибка обнаруживается, когда Cacti пытается обновить файлы RRD:

ERROR: reached EOF while loading header rrd->ds_def

Есть идеи, что может быть причиной этого?

Заранее спасибо!

Крис

У вас есть окончания строк Windows в ваших файлах RRD, поэтому cacti / rrdtool в Linux не может их прочитать.

Принятый метод - использовать rrddump для преобразования файлов RRD в XML, а затем использовать rrdrestore на целевой машине, чтобы вернуть их в RRD. Возможно, запуск dos2unix на ваших RRD решит эту проблему, но я никогда не пробовал.

- Редактировать оригинальным постером -

На всякий случай вот некоторые особенности:

Windows машина

Преобразуйте файлы rrd в xml.

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

Скопируйте преобразованные файлы в другое место для архивирования / архивирования перед перемещением в 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