Резервное копирование Zabbix

Придумал и набросал пару строк для резервного копирования mysql базы данных и директории с http файлами.

Первым делом делаем копию mysql базы данных zabbix (ключом —ignore-table исключим ненужные таблицы с историей, так как они могу занимать гигабайты) и архивируем ее:

mysqldump --ignore-table=zabbix.history --ignore-table=zabbix.history_uint --ignore-table=zabbix.trends --ignore-table=zabbix.trends_uint -u USERNAME -h localhost -pPASSWORD zabbix | gzip -c > /backups/zabbix_`date +%Y-%m-%d`.sql.gz

Вторым шагом будет архивация http файлов zabbix:

tar -cvjf /backups/`date +%Y-%m-%d`_zabbix.tar.bz2 /usr/share/zabbix/

Вместо директории /backups/ можно монтировать и указать какой нибудь сетевой диск из интернета и на него делать резервные копии.
Обе строки можно добавить в /etc/crontab чтобы копии выполнялись например ежедневно, или добавить их в скрипт, дать скрипту права на выполенение, а в /etc/crontab/ указать путь к этому скрипту, вот например каждый день в 3 утра:

0 3 * * * root /backups/script.sh > /dev/null 2>&1

Можно также не делать резервную копию http файлов, а просто знать какая версия zabbix сервера установлена и потом на новом сервере ее установить, создать пустую базу данных zabbix, импортировать в нее дамп, если в дампе нет некоторых таблиц с историей, то их создадим вручную (примеры есть в директории /usr/share/doc/zabbix-server-mysql), например вот несколько для Zabbix 6.4.10, которые я исключал из дампа:

CREATE TABLE `history` (
	`itemid`                 bigint unsigned                           NOT NULL,
	`clock`                  integer         DEFAULT '0'               NOT NULL,
	`value`                  DOUBLE PRECISION DEFAULT '0.0000'          NOT NULL,
	`ns`                     integer         DEFAULT '0'               NOT NULL,
	PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;

CREATE TABLE `history_uint` (
	`itemid`                 bigint unsigned                           NOT NULL,
	`clock`                  integer         DEFAULT '0'               NOT NULL,
	`value`                  bigint unsigned DEFAULT '0'               NOT NULL,
	`ns`                     integer         DEFAULT '0'               NOT NULL,
	PRIMARY KEY (itemid,clock,ns)
) ENGINE=InnoDB;

CREATE TABLE `trends` (
	`itemid`                 bigint unsigned                           NOT NULL,
	`clock`                  integer         DEFAULT '0'               NOT NULL,
	`num`                    integer         DEFAULT '0'               NOT NULL,
	`value_min`              DOUBLE PRECISION DEFAULT '0.0000'          NOT NULL,
	`value_avg`              DOUBLE PRECISION DEFAULT '0.0000'          NOT NULL,
	`value_max`              DOUBLE PRECISION DEFAULT '0.0000'          NOT NULL,
	PRIMARY KEY (itemid,clock)
) ENGINE=InnoDB;

CREATE TABLE `trends_uint` (
	`itemid`                 bigint unsigned                           NOT NULL,
	`clock`                  integer         DEFAULT '0'               NOT NULL,
	`num`                    integer         DEFAULT '0'               NOT NULL,
	`value_min`              bigint unsigned DEFAULT '0'               NOT NULL,
	`value_avg`              bigint unsigned DEFAULT '0'               NOT NULL,
	`value_max`              bigint unsigned DEFAULT '0'               NOT NULL,
	PRIMARY KEY (itemid,clock)
) ENGINE=InnoDB;

Смотрите также мои статьи:
Использование и настройка CRON
Скрипт удаления старых файлов
Установка Zabbix в Ubuntu из пакетов дистрибутивов

Оставьте комментарий

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

Больше на IT Blog

Оформите подписку, чтобы продолжить чтение и получить доступ к полному архиву.

Continue reading