Cacti – это популярный инструмент построения сетевых графиков, широко используемый многими поставщиками услуг.
Тем из вас, кто использовал Cacti для визуализации производительности различных элементов вашей сети, иногда необходимо перенести Cacti и все его наборы графических данных с одного сервера на другой.
Зачем?
Текущий сервер может быть старым, или ему не хватает места и процессора, или вы можете просто захотеть перейти на новую аппаратную платформу.
В любом случае, можно переносить наборы данных Cacti с одного сервера на другой, минимизируя сбои при построении графиков.
В этом уроке мы увидим, насколько легко мы можем это сделать.
Шаг 1: Настройка Cacti на новом сервере
Нам нужно будет остановить Cacti на старом сервере во время процесса миграции.
Чтобы минимизировать пробелы в графиках, мы сначала подготовим новый сервер (пока Cacti на старом сервере все еще работает).
Мы начнем процесс с установки Cacti на новый сервер.
Напомним, что мы можем использовать apt-get (Debian / Ubuntu) или yum (RHEL / CentOS) для установки Cacti и настройки необходимых баз данных MySQL.
Шаг 2: Отключение Poller на обоих серверах
После завершения установки мы отключим задание cron для Cacti poller на обоих серверах.
Это гарантирует, что ни один из серверов не будет опрашивать или заполнять больше графиков.
То есть графики будут оставаться неизменными в течение миграции. М
ы включим задание cron после переноса графиков.
# vim /etc/cron.d/cacti
## Comment out the cacti poller cron job ## # */5 * * * * www-data php --define suhosin.memory_limit=512M /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log
Шаг 3: Миграция базы данных Cacti
На следующем шаге мы создадим дамп базы данных с сервера MySQL, работающего на старом сервере Cacti.
Как только дамп базы данных будет готов, мы скопируем этот файл дампа на новый сервер и обновим записи в базе данных Cacti.
Шаг 3.1: Старый сервер
Чтобы создать дамп базы данных, мы будем использовать следующую команду.
При появлении запроса введите пароль root для MySQL.
# mysqldump -u root -p cacti > cactidump.sql
Приведенная выше команда создаст файл дампа MySQL с именем cactidump.sql, который содержит все данные из базы данных ‘cacti’.
Далее мы передадим файл дампа на сервер.
# scp cactidump.sql root@NewServerIP:/root
Вы должны использовать IP-адрес вашего нового сервера и пользователя, который имеет отношение к вашей настройке.
Я использую root в качестве примера.
Шаг 3.2: Новый сервер
После переноса файла дампа мы снова будем использовать mysqldump, чтобы заполнить базу данных ‘cacti’ данными со старого сервера.
# mysqldump -u root -p cacti < /root/cactidump.sql
Необязательно: Вы можете легко проверить, была ли база данных заполнена, изучив ее следующим образом.
# mysql -u root –p</div> <div class="console">mysql> use cacti;
Database changed
mysql> select description from host;
+-------------+ | description | +-------------+ | Server-2 | | Server-1 | +-------------+ 2 rows in set (0.00 sec)
mysql> exit;
Шаг 4. Подготовка и перенос файлов RRD
К сожалению, Cacti не может обновить графики, если файлы RRD копируются непосредственно на новый сервер.
Правильный способ переноса графиков – это преобразовать их в XML, переместить их на новый сервер и восстановить файлы RRD из XML.
Шаг 4.1: Старый сервер
На старом сервере преобразуйте файлы RRD в файлы XML следующим образом.
Создайте каталог для хранения файлов XML.
# mkdir /tmp/xml # cd /var/lib/cacti/rra
# for i in `find -name "*.rrd"`; do rrdtool dump $i > /tmp/xml/$i.xml; done
# cd /tmp/xml # tar cvfz cacti.tar.gz *
# scp cacti.tar.gz root@NewServerIP:/root
Шаг 4.2: Новый сервер
На новом сервере мы скопируем файл tar в правильный каталог и извлечем его содержимое.
После извлечения мы восстановим файлы RRD из файлов XML.
Скопируйте и извлеките файлы в нужный каталог.
# cp /root/cacti.tar.gz /var/lib/cacti/rra # cd /var/lib/cacti/rra # tar zxvf cacti.tar.gz
Восстановите файлы RRD из файлов XML.
# for i in `find -name "*.xml"`; do rrdtool restore $i `echo $i |sed s/.xml//g`; done
Шаг 5. Изменение владельца файлов RRD на новом сервере
Мы почти закончили с миграцией.
На новом сервере нам нужно убедиться, что Cacti Poller может читать / записывать файлы RRD.
Для этого сначала проверим данные о владельце файлов RRD.
На старом сервере:
# ls -l /var/lib/cacti/rra/
-rw-rw-r-- 1 www-data www-data 94816 Dec 14 13:50 server-1_traffic_in_8.rrd -rw-rw-r-- 1 www-data www-data 94816 May 7 02:10 server-1_traffic_in_9.rrd -rw-rw-r-- 1 www-data www-data 94816 May 7 02:10 server-2_traffic_in_10.rrd
# chown www-data:www-data /var/lib/cacti/rra/*.rrd
Шаг 6: Активация Poller
# vim /etc/cron.d/cacti
## Uncomment the cacti poller cron job ## */5 * * * * www-data php --define suhosin.memory_limit=512M /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log
Теперь демон cron должен запускать скрипт poller Cacti каждые 5 минут, а графики Cacti должны начать обновляться в течение максимум 15 минут.
Если вы хотите удержать старый сервер на некоторое время, вы можете включить опрашивающее устройство и на старом сервере.
Если этот параметр включен, оба сервера должны продолжать опрашивать и заполнять графики, которые должны быть идентичными.
Доступ к новому серверу
Теперь, когда миграция завершена, вы можете получить доступ к Cacti, перейдя по адресу http://NewServerIP/ cacti в своем веб-браузере.
- Username: admin
- Password: такой же как на старом сервере
Здесь я добавляю несколько скриншотов с обоих серверов ниже.
Рисунок 1: Графики старого сервера
Рисунок 2: Новые серверные графики