Cacti. Обновление до последней версии

cacti2На продакшине у нас неплохо работал cacti 0.8.8b. Так как он использовался для мониторинга наших серверов все было отлично. Но пришел таск по добавлению мониторинга трафика для клиентских машин. Проблем с добавлением не было, но когда мониторинг нода падала – мы теряли информацию. Если раньше нам не столь важны были графики, то после добавления клиентских серверов – это стало необходимо. Пришлось создавать кластер из нескольких cacti серверов и решили заодно перейти на последнею на данный момент версию – 0.8.8f. О кластере мы поговорив в следующей статье, сейчас же речь пойдет об обновлении cacti до последней версии 0.8.8f под дистрибутивом Ubuntu 14.04 (аналогичные действия идут под Ubuntu 12.04).

1 Входные данные

В статье будут использоваться следующие переменные (значения у каждого свои).

Имя переменной

Значение переменной

cacti_mysqldb_name cacti
cacti_mysql_username cactiuser
cacti_mysql_pass %cacti2016
mysql_ip_address localhost
mysql_port 3306
cacti_old_sources_path /usr/share/cacti
cacti_new_sources_path /var/www/cacti_new

2 Настройка и обновление cacti

2.1 Подготовка

Временно выключаем поллер. Переходим в веб-интерфейс и убираем галочку.
cacti2_1

Делаем бекап базы и страниц старой cacti системы.

root@cacti-main:~# mysqldump --max_allowed_packet=512M -u${cacti_mysql_username} -p${cacti_mysql_pass} ${cacti_mysqldb_name} | gzip > `date +cacti.sql.%Y-%m-%d.gz`
root@cacti-main:~# tar -czf `date +cacti.site.%Y-%m-%d.tar.gz` ${cacti_old_sources_path}
root@cacti-main:~# ls -l
-rw-r--r-- 1 root         root         40453046 Mar 17 15:10 cacti.site.2016-03-17.tar.gz
-rw-r--r-- 1 root         root           121028 Mar 17 15:12 cacti.sql.2016-03-17.gz

Далее качаем исходники последней cacti системы (0.8.8f на данный момент) и распаковуем архив.

root@cacti-main:~# wget http://www.cacti.net/downloads/cacti-0.8.8f.tar.gz
root@cacti-main:~# tar -xzvf cacti-0.8.8f.tar.gz

У нас есть два варианта деплоя (выбирайте нужный в зависимости от вашей ситуации).

2.1.1 Мониторинг система находиться на том же сервере

Создаем папку для нового сайта и копируем туда исходники последней cacti 0.8.8f системы.

root@cacti-main:~# mkdir ${cacti_new_sources_path}
root@cacti-main:~# rsync -avP cacti-0.8.8f/ ${cacti_new_sources_path}/

Далее нужно скопировать scripts, resource, plugins и rra папки со старой системы в новую.

root@cacti-main:~# for folder in scripts resource plugins rra; do rsync -avP ${cacti_old_sources_path}/site/${folder}/ ${cacti_new_sources_path}/${folder}/; done

Убеждаемся, что права на файлы и модификаторы доступа такие как нужно по новому пути.

root@cacti-main:~# chmod +x ${cacti_new_sources_path}/poller.php
root@cacti-main:~# chown -R www-data:www-data ${cacti_new_sources_path}

База данных осталась та же с теми же доступами, так что там делать нечего.
Качаем новый spine поллер.

root@cacti-main:~# wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8f.tar.gz
root@cacti-main:~# tar xzvf cacti-spine-0.8.8f.tar.gz

Для компиляции нам нужны дополнительные пакеты.

root@cacti-main:~# apt-get install libmysqlclient-dev libsnmp-dev automake libtool make

Компилируем spine.

root@cacti-main:~# cd cacti-spine-0.8.8f
root@cacti-main:~/cacti-spine-0.8.8f# aclocal
root@cacti-main:~/cacti-spine-0.8.8f# libtoolize --force
root@cacti-main:~/cacti-spine-0.8.8f# autoheader
root@cacti-main:~/cacti-spine-0.8.8f# autoconf
root@cacti-main:~/cacti-spine-0.8.8f# automake
root@cacti-main:~/cacti-spine-0.8.8f# ./configure --prefix=/opt/spine
root@cacti-main:~/cacti-spine-0.8.8f# make
root@cacti-main:~/cacti-spine-0.8.8f# make install

Новый spine у нас находиться в папке /opt/spine. Нам нужно скопировать старую конфигурацию (или прописать новую) в новую spine папку и поменять путь через Веб-интерфейс или заменить старую spine папку новой. Я сделаю второй вариант.

root@cacti-main:~# mv /usr/local/{spine,spine_old}
root@cacti-main:~# mv /opt/spine /usr/local/spine
root@cacti-main:~# rsync -avP /usr/local/spine_old/etc/ /usr/local/spine/etc/

Продолжение в главе 2.2.

2.1.2 Мониторинг система находиться на другом сервере

В этом случаи созданные бекапы нужно синкануть на удаленный сервер.

root@cacti-main:~# rsync -avP cacti.site.2016-03-17.tar.gz cacti.sql.2016-03-17.gz cacti-backup:/home/alex/

Если на удаленном сервере уже стоит cacti система, то возвращаемся к пункту 2.1, если на удаленном сервере чистая система, то нужно полностью установить cacti 0.8.8f как написано здесь.
После полной установки нужно развернуть дамп базы.

root@cacti-backup:~# gunzip -c cacti.sql.2016-03-17.gz | mysql -u${cacti_mysql_username} -p${cacti_mysql_pass}

Далее нужно скопировать scripts, resource, plugins и rra папки.

root@cacti-backup:~# tar -xzvf cacti.site.2016-03-17.tar.gz
root@cacti-backup:~# for folder in scripts resource plugins rra; do rsync -avP usr/share/cacti/site/${folder}/ ${cacti_new_sources_path}/${folder}/; done

Продолжение в главе 2.2.

2.2 Завершение установки

Вне зависимости какой тип деплоя – завершение установки одинаковое.
Меняем пути в cron файле cacti.

root@cacti-main:~# cat /etc/cron.d/cacti
*/5 * * * * www-data php ${cacti_new_sources_path}/poller.php > /dev/null 2>&1

Теперь переходим в веб-интерфейс по новому пути (Веб-сервер должен указывать на папку ${cacti_new_sources_path} по дефолту или через новый виртуальный хост) и нам предложат обновить cacti.

cacti2_2

После обновления активируем поллер и смотрим все ли в порядке.
cacti2_3

Возможно, нужно будет исправить пути к нужным бинарникам и rrd графикам.
Вот и все.

Автор: admin, 27 марта 2016
Рубрики: Системы мониторинга
Метки: ,
2 комментария к сообщению: “Cacti. Обновление до последней версии”
  1. alexander:

    Добрый день!
    Помогите решить проблему. После обновления ubuntu 14.04 до 16.04 перестали отображаться графики на вкладке Graph, если они были добавлены в Tree Item Type как Graph, но если добавлять как Host, то все корректно отрисовывает. Также корректно рисует графики, если смотреть их через Graph Management.
    Подскажите куда копать. Спасибо!

    • Проблема может быть связана с конкретным элементом, который ломает все. Если Вы используете браузер Chrome — запустите DevTools (F12) и перейдите в Console и перезагрузите страничку — должна показаться ошибка, которая все ломает. Если ничего не показало, то во вкладку Network — там точно должна вылезти.

Написать комментарий

Последние статьи

Яндекс.Метрика
?>