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

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

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

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

Это полезно, когда вам нужно перенести конфигурацию мониторинга 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