Возникла проблема при переносе базы RRD, используемой cacti, с одного железа на другое. При этом одно железо x32, а другое x64. Ошибка:This RRD was created on another architecture
После того, как я перенес файлы rrd и запустил web морду cacti в логах увидел следующее:
ERROR: This RRD was created on another architecture
Прочитав как я могу оперировать rrd базами на официальном сайте RRD понял, что не все так печально.
Моя последовательность действий:
- rrdtool dump [source.rrd] [dest.xml]
- перенос .xml на целевую архитектуру
- rrdtool restore [source.xml] [dest.rrd]
На этом задача решена.
Файлы удобно забирать по sftp. И сразу выполнять все действия скриптом.
P.S код скритпа:
#!/bin/sh # get xml files, restore to rrd and put in cacti # get files sftp -i ./.ssh/id_rsa -b batch [server] # restore files outputxmldir=/usr/local/share/cacti/rra inputdir=/home/extor/xml/ for i in `ls $inputdir`; do echo $i out=`echo $i | awk -F. '{print $1"."$2}'` echo $out `sudo rrdtool restore $inputdir/$i $outputxmldir/$out` done #set rights `sudo chown -R cacti:www $outputxmldir`
Файл batch содержит последовательность действий для sftp. Скрипт использует утилиту sudo.
P.P.S.
Для того что бы cacti корректно отображал подписанные на кириллице графики, надо поставить шрифт, поддерживающий кирилицу в систему. В freebsd это можно сделать так:
# cd /usr/ports/x11-fonts/dejavu
# make install clean
В cacti: Console — Settings — Visual прописываю путь к шрифтам — «/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono.ttf»