Бэкап базы данных Zabbix

Хочу порекомендовать полезный скрипт для бэкапа базы данных Zabbix - https://github.com/npotorino/zabbix-backup. Его особенность в том, что он позволяет выбрать, какие таблицы ты будешь бэкапить со всеми данными, а для каких только структуру.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Это полезно, когда вам нужно перенести конфигурацию мониторинга Zabbix на другой сервер, но при этом вам не нужны исторические данные. Скрипт позволяет сделать полный бэкап таблиц с настройками, а, к примеру, events, history, trends перенести пустыми.

К сожалению, в описании указана поддержка только до версии 5.0. Не факт, что корректно заработает на 5.2 и выше, но вероятность большая, что все будет ОК. Я лично не проверял это. Для предыдущих версий пользовался скриптом, все отлично было.

Единственный нюанс сразу уточню для тех, кто будет переносить только конфигурацию. У меня после восстановления на новом сервере не работал сбор данных по неизвестной причине. Помог полный экспорт всех узлов в xml файл, удаление и импорт их же из xml файла. После этого данные пошли в систему.

Пример того, как с помощью этого скрипта можно забэкапить базу данных zabbix на Postgresql с TimeScaleDB:

git clone https://github.com/npotorino/zabbix-backup
cd zabbix-backup
./zabbix-dump -t psql -H localhost -P 5432 -o /var/backup

Восстановление базы zabbix:

systemctl stop zabbix-server.service
sudo -u postgres dropdb zabbix
sudo -u postgres createdb -O zabbix zabbix

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
echo "SELECT timescaledb_pre_restore();" | sudo -u postgres psql zabbix

gunzip /var/backup/zabbix_cfg_localhost_20200730-1810_db-psql-5.0.1.sql.gz
sudo -u postgres psql zabbix < /var/backup/zabbix_cfg_localhost_20200730-1810_db-psql-5.0.1.sql

echo "SELECT timescaledb_post_restore();" | sudo -u postgres psql zabbix
systemctl restart postgresql-12.service
systemctl start zabbix-server.service

На этом все.

Источник - мой канал: https://t.me/srv_admin/411.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

4 комментария

  1. Алексей

    Подскажите, можно ли этим скриптом пользоваться не останавливая zabbix-server, на ходу?

  2. Здравствуйте, при восстановлении из дампа базы данных сделанного скриптом https://github.com/npotorino/zabbix-backup возникает проблема как вы и описывали с тем что не начинается сбор данных. Причина в таблице item_rtdata, данный скрипт сохраняет только схему этой таблицы, а необходимо сохранять и схему и данные. В скрипте необходимо скорректировать строчку
    item_rtdata 4.4.0 - 4.4.4 SCHEMAONLY
    И удалить из неё метку SCHEMAONLY
    После этого после восстановления, сбор данных будет корректный.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar