<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>бэкап &#8902; Clip-Clap</title>
	<atom:link href="https://clip-clap.ru/tag/%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf/feed/" rel="self" type="application/rss+xml" />
	<link>https://clip-clap.ru/tag/бэкап/</link>
	<description></description>
	<lastBuildDate>Sun, 09 Aug 2020 20:17:01 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.8</generator>

<image>
	<url>https://clip-clap.ru/wp-content/uploads/2020/07/cropped-favicon-32x32.png</url>
	<title>бэкап &#8902; Clip-Clap</title>
	<link>https://clip-clap.ru/tag/бэкап/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Как правильно делать бэкапы и следить за ними</title>
		<link>https://clip-clap.ru/it/%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5/%d0%ba%d0%b0%d0%ba-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d1%8c%d0%bd%d0%be-%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8b-%d0%b8-%d1%81%d0%bb%d0%b5%d0%b4%d0%b8%d1%82%d1%8c/</link>
					<comments>https://clip-clap.ru/it/%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5/%d0%ba%d0%b0%d0%ba-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d1%8c%d0%bd%d0%be-%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8b-%d0%b8-%d1%81%d0%bb%d0%b5%d0%b4%d0%b8%d1%82%d1%8c/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 20:16:58 +0000</pubDate>
				<category><![CDATA[Администрирование]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[бэкап]]></category>
		<guid isPermaLink="false">https://clip-clap.ru/?p=1589</guid>

					<description><![CDATA[<p>Бэкапы нужно обязательно разворачивать и проверять Мало просто настраивать мониторинг бэкапов и оповещения. Я регулярно вручную проверяю все бэкапы. Да, это очень</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5/%d0%ba%d0%b0%d0%ba-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d1%8c%d0%bd%d0%be-%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8b-%d0%b8-%d1%81%d0%bb%d0%b5%d0%b4%d0%b8%d1%82%d1%8c/">Как правильно делать бэкапы и следить за ними</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h4 class="wp-block-heading">Бэкапы нужно обязательно разворачивать и проверять</h4>



<p>Мало просто настраивать <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%be%d0%b2-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-zabbix/" target="_blank" rel="noreferrer noopener">мониторинг бэкапов</a> и оповещения. Я регулярно вручную проверяю все бэкапы. Да, это очень хлопотно, но другого выхода я не вижу. Если я этого не делаю, то перестаю спокойно спать.</p>



<p>Вот свежий <a href="https://habr.com/ru/post/477248/#comment_20926160" target="_blank" rel="noreferrer noopener">пример</a>, когда большая продуктовая база бэкапилась, но бэкап не проверялся. Автору повезло, что потерял только несколько записей. А мог и всю таблицу. Там, где можно, я автоматизирую разворачивание на запасном сервере с помощью простых bash скриптов. У меня бывали всякие ситуации, когда бэкапы по каким-то причинам переставали делаться. Если они физически отсутствуют, я получаю уведомление от <a href="https://clip-clap.ru/category/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/" target="_blank" rel="noreferrer noopener">zabbix</a>. Но этого мало.</p>


</br>



<p><strong>Особенно важно проверять дампы баз</strong>. Физическое наличие файла с дампом не означает, что вы без проблем его развернете. Надо проверять данные, заливая дамп в базу. Это единственный способ убедиться, что данные реально есть и они актуальны.</p>



<h2 class="wp-block-heading">Backup должен быть в другом дата центре у другого юр. лица</h2>



<p>В описываемом выше случае, из-за проблем у конкретного юридического лица есть шанс потерять разом все &#8212; и прод и бэкапы от него. Я очень часто сталкиваюсь с ситуацией, когда заказчики предлагают купить сервис для бэкапов у того же хостера, где работает прод. Всегда от этого отговариваю, так как проблемы бывают разные.</p>



<p>Вас могут банально заблокировать за неуплату, из-за ошибки. Хостер может разорвать отношения в одностороннем порядке. Все это я видел и встречал подобные истории от других. Вот пример из одного чата.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2019/12/backup-01.png" alt="Как правильно делать бэкап" class="wp-image-10497"/></figure></div>



<h2 class="wp-block-heading">С самого сервера с данными не должно быть доступа к бэкапам</h2>



<p>Очень важное правило &#8212; бэкап сервер сам подключается к целевым машинам и забирает информацию. Это добавляет сложности к сервисам, с помощью которых вы будете делать бэкап. Не получится просто купить где-то место в s3, nfs, smb и класть туда бэкапы с серверов. Нужен активный агент, который будет ходить по целевым серверам и собирать данные сам. Зачем такие сложности?</p>



<p>Представьте ситуацию, что на целевой сервер попадает злоумышленник или вирус. Он шифрует не только ваши данные, но и бэкапы, к которым есть доступ с машины. Иногда я делаю 2 разных бэкапа &#8212; в первое хранилище целевой сервер кладет данные самостоятельно. А с этого хранилища второй бэкап-сервер сам забирает данные. К нему нет доступа ни у кого. Для большей безопасности можно затирать в логах следы подключения, чтобы нельзя было получить информацию не только о местоположении второго сервера, но и в целом информации о том, что он существует.</p>


</br>



<p>Для подобного рода бэкапов хорошо подходят бюджетные vps с большими дисками. Такая услуга, к примеру, есть у ruvds. В списке услуг выбирайте <strong>большой диск</strong>. Доступен не на всех тарифах и датацентрах.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2019/12/backup-02.png" alt="Большой диск на vps для бэкапа" class="wp-image-10493"/></figure></div>



<h2 class="wp-block-heading">Бэкапы должны быть максимально полные и подробные</h2>



<p>Что я имею ввиду? Зачастую бэкапы делаются с расчетом на то, что что-то изменится на проде и нам надо будет развернуть бэкап и посмотреть на него. Бэкапятся, к примеру, исходники сайта и база к нему. Когда все в порядке и ты просто проверяешь бэкап, сложностей не возникает, потому что если ты даже что-то забыл, то залез на prod и посмотрел.</p>



<p>Например, у сайта может быть сложный и насыщенный конфиг <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%bf%d0%be%d0%b4%d1%80%d0%be%d0%b1%d0%bd%d0%b0%d1%8f-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-nginx-%d1%81-%d0%bf%d1%80/" target="_blank" rel="noreferrer noopener">nginx</a> с кучей location и редиректов. В процессе эксплуатации вы могли тюнить и вносить много изменений в настройки mysql сервера. Если конфиги не забэкапить вместе с сайтом, то разворачивать и запускать его в работу может быть очень трудозатратно и хлопотно, особенно если оптимизация и настройки выполнялись давно и все уже забыто.</p>



<p><strong>Отсюда правило &#8212; бэкапьте не только данные, но и все окружение</strong> из расчета на то, что вы разом можете потерять prod навсегда. Я много раз об это спотыкался и по второму разу настраивал все то, что у же было настроено ранее. Сейчас все конфиги проектов храню в своем gitlab. Из того, что часто забывают &#8212; ssl/tls сертификаты. А потом их приходится торопливо искать.</p>


</br>



<h2 class="wp-block-heading">Backup виртуальных машин</h2>



<p>Я знаю, что многие бэкапят целиком виртуалки. Я редко делаю такие бэкапы, так как с ними трудно работать. Получаются файлы огромных размеров. Если гоняете их через интернет, то они могут биться по дороге, либо в момент создания. У меня были ситуации, когда нужно было развернуть бэкап виртуальной машины на 200 Гб. Я несколько часов его заливал через интернет, а потом он не разворачивался из-за ошибки чтения. Пробовал несколько раз и каждый раз неудачно. Очень повезло, что заметил это в момент тестового разворачивания, а не тогда, когда была бы реальная авария. Это был бы полный провал, так как это был единственный экземпляр архивной копии.</p>



<p>Если нужно делать бэкап виртуальной машины, то я делаю небольшой системный диск (30-50 Гб) и бэкаплю только его. Данные кладу на отдельный виртуальный диск и забираю их в сыром в виде с помощью <a href="https://clip-clap.ru/it/rsync-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%b0-%d0%bd%d0%b0-centos-debian-ubuntu/">rsync</a> или аналогов. С его помощью легко и быстро делать инкрементные бэкапы, а потом их разворачивать. Нет проблем с докачкой и битыми файлами. Даже если что-то и повреждено, то 1 файл из десятков тысяч погоды не сделает. Можно пережить.</p>


</br>



<h2 class="wp-block-heading">Проверяйте скорость восстановления данных</h2>



<p>В завершение своего списка еще одна рекомендация &#8212;&nbsp;<strong>проверяйте скорость доступа к бэкапам</strong>. У меня были ситуации, когда надо срочно восстанавливать данные. Ты начинаешь их загружать с сервера бэкапа и понимаешь, что скорость катастрофически низкая.</p>



<p>В обычное время, во время проверок, этого можно не заметить, потому что спешить некуда. А вот если случилась авария и нужно как можно быстрее восстановить данные, скорость доступа становится очень критична.</p>



<p>Есть дешевые хранилища, где явно не указано, что скорость доступа будет низкой. Но нужно это понимать, если цена за хранение действительно ниже, чем в среднем по рынку. Многие хостеры на хранилищах с безлимитным трафиком на самом деле этот лимит имеют и включат вам его после того, как вы превысите определенный порог в скачанных данных. Вам просто сделают не 100 мегабит полосу, а 5-10.</p>



<p>У меня были ситуации, когда сервер с бэкапами живет на гигабитном порту с &#171;безлимитным трафиком&#187;. А когда ты скачаешь 10-15 гигабайт, включается ограничение полосы до 100 мегабит. Возможно будет и дальнейшее урезание. С такими лимитами нет смысла платить за гигабит. Это просто маркетинговая уловка.</p>


</br>



<p>В общем, не доверяйте данным из описания тарифа, проверяйте их сами, чтобы потом не было сюрприза.</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5/%d0%ba%d0%b0%d0%ba-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d1%8c%d0%bd%d0%be-%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8b-%d0%b8-%d1%81%d0%bb%d0%b5%d0%b4%d0%b8%d1%82%d1%8c/">Как правильно делать бэкапы и следить за ними</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://clip-clap.ru/it/%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5/%d0%ba%d0%b0%d0%ba-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d1%8c%d0%bd%d0%be-%d0%b4%d0%b5%d0%bb%d0%b0%d1%82%d1%8c-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d1%8b-%d0%b8-%d1%81%d0%bb%d0%b5%d0%b4%d0%b8%d1%82%d1%8c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Бэкап всех баз mysql в отдельные файлы</title>
		<link>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf-%d0%b2%d1%81%d0%b5%d1%85-%d0%b1%d0%b0%d0%b7-mysql-%d0%b2-%d0%be%d1%82%d0%b4%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b/</link>
					<comments>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf-%d0%b2%d1%81%d0%b5%d1%85-%d0%b1%d0%b0%d0%b7-mysql-%d0%b2-%d0%be%d1%82%d0%b4%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 20:08:29 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Администрирование]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[бэкап]]></category>
		<guid isPermaLink="false">https://clip-clap.ru/?p=1587</guid>

					<description><![CDATA[<p>Небольшая рекомендация по быстрому бэкапу всех mysql баз в отдельные файлы. Возникла идея так сделать после того, как прилично повозился</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf-%d0%b2%d1%81%d0%b5%d1%85-%d0%b1%d0%b0%d0%b7-mysql-%d0%b2-%d0%be%d1%82%d0%b4%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b/">Бэкап всех баз mysql в отдельные файлы</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Небольшая рекомендация по быстрому бэкапу всех mysql баз в отдельные файлы. Возникла идея так сделать после того, как прилично повозился над тем, чтобы восстановить одну базу в отдельности из дампа, в котором были все базы данных сервера.</p>


</br>



<p>Самый простой способ сделать бэкап всех базы с помощью&nbsp;mysqldump следующий:</p>



<pre class="wp-block-preformatted"># /usr/bin/mysqldump -uroot -hlocalhost -p'password' --all-databases | /usr/bin/gzip -c &gt; /backup/mysql/`date "+%Y-%m-%d"`.gz</pre>



<p>На выходе будет один сжатый файл с именем вида&nbsp;2018-09-27.gz, в котором будет дамп всех mysql баз сервера, в том числе служебных таблиц. Работать с таким файлом потом очень неудобно. Это подходит только для случая, когда вы на таком же сервере будете восстанавливать все базы данных.</p>



<p>Если же вам нужно восстановить на другом сервере одну базу данных из дампа, то придется прилично повозиться. По крайней мере я не нашел простого способа это сделать. Я видел рекомендацию поступить вот так:</p>



<pre class="wp-block-preformatted">#&nbsp;mysql -u root -p --one-database destdbname &lt; alldatabases.sql</pre>



<p>У меня она не заработала. Консольная mysql выдавала ошибку. Я не стал подробно разбираться. Затем попробовал с помощью sed выдернуть информацию только о нужной базе, но сходу не получилось, так как дамп был большой. Просто просмотреть его была проблема, а тренироваться на тестовых дампах &#8212; тратить лишнее время. Проще было пойти на исходный сервер и вытащить только нужную базу данных.</p>


</br>



<p>Заодно заменил скрипт бэкапа на следующий:</p>



<pre class="wp-block-preformatted">for i in `mysql -uroot -p'password' -e'show databases;' | grep -v information_schema | grep -v Database`; 
    do 
	/usr/bin/mysqldump -uroot -p'password' $i | /usr/bin/gzip -c &gt; /backup/mysql/`date +%Y-%m-%d`-$i.sql.gz;
    done
</pre>



<p>Сначала кладем в массив список всех баз данных, а потом делаем отдельный дамп каждой из них и сжимаем.</p>



<p>Был бы рад, если бы кто-то подсказал простой и рабочий способ загрузить на сторонний сервер одну базу данных из общего дампа. Очень часто приходится видеть такие бэкапы от всяких панелей управления или самодельных скриптов.</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf-%d0%b2%d1%81%d0%b5%d1%85-%d0%b1%d0%b0%d0%b7-mysql-%d0%b2-%d0%be%d1%82%d0%b4%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b/">Бэкап всех баз mysql в отдельные файлы</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf-%d0%b2%d1%81%d0%b5%d1%85-%d0%b1%d0%b0%d0%b7-mysql-%d0%b2-%d0%be%d1%82%d0%b4%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%84%d0%b0%d0%b9%d0%bb%d1%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Мониторинг бэкапов с помощью zabbix</title>
		<link>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%be%d0%b2-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-zabbix/</link>
					<comments>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%be%d0%b2-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-zabbix/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 15:16:58 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Zabbix]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[бэкап]]></category>
		<guid isPermaLink="false">https://clip-clap.ru/?p=1540</guid>

					<description><![CDATA[<p>Сегодня хочу рассказать о том, как я мониторю самодельные бэкапы с помощью zabbix. Подход немного костыльный, но на вопрос отвечает,</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%be%d0%b2-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-zabbix/">Мониторинг бэкапов с помощью zabbix</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Сегодня хочу рассказать о том, как я мониторю самодельные бэкапы с помощью zabbix. Подход немного костыльный, но на вопрос отвечает, ниже расскажу в чем его смысл. Я рассмотрю 2 способа, когда у вас бэкапы в виде директорий с оригинальными файлами, а второй &#8212; в виде запакованных архивов.</p>


</br>



<h2 class="wp-block-heading">Введение</h2>



<p>Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:</p>



<ol><li><a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-centos-7/" target="_blank" rel="noreferrer noopener">Установка CentOS</a>.</li><li><a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/centos-7-%d0%b8-8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-%d0%bf%d0%be%d1%81%d0%bb%d0%b5-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba/" target="_blank" rel="noreferrer noopener">Настройка CentOS.</a></li><li><a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-zabbix-3-4-%d0%bd%d0%b0-debian-9/" target="_blank" rel="noreferrer noopener">Установка и настройка zabbix сервера</a>.</li></ol>



<h3 class="wp-block-heading">Бэкапы в виде сырых данных в директории (1-й способ)</h3>



<p>У меня много где настроена самодельная система бэкапа, похожая на то, что описано в статье по <a href="https://clip-clap.ru/it/rsync-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%b0-%d0%bd%d0%b0-centos-debian-ubuntu/" target="_blank" rel="noreferrer noopener">настройке бэкапа с помощью rsync</a>. Не буду подробно останавливаться на том, почему бэкаплю именно так. Во многих случаях это удобно, так как всегда имеешь под рукой свежую версию данных в исходном виде. В случае повреждения источника, просто меняешь точку монтирования и получаешь практически сразу все данные, без простоя рабочего процесса.</p>



<p>На всякий случай хочется следить за тем, что бэкапы у тебя актуальны и в случае чего ты можешь на них рассчитывать. Делать мы это будет по очень простой схеме. На сервере источнике будет раз в сутки создаваться файл. Во время бэкапа этот файл будет улетать на сервер с резервными данными. Этот сервер подключен к системе мониторинга zabbix с помощью агента. Этот агент будет периодически проверять дату последнего изменения файла. Если эта дата больше заданного интервала, то мы будем получать оповещение о том, что бэкапы не выполняются.</p>



<p>Для настройки описанной схемы нам понадобится выполнить несколько шагов:</p>



<ol><li>На серверах источниках настроить скрипт, который будет создавать файл и поместить&nbsp;его в планировщик.</li><li>На сервере заббикс настроить на хосте с бэкапами item и trigger для слежения и оповещения о дате файла.</li></ol>



<h3 class="wp-block-heading">Бэкапы в виде запакованных архивов (2-й способ)</h3>



<p>Если у вас бэкапится, к примеру, какая-то база в дамп или есть просто отдельный файл, то имеет смысл его архивировать и хранить в виде одиночного архива. Для таких бэкапов тоже нужен мониторинг. Чтобы следить за актуальностью бэкапа, я предлагаю мониторить 2 параметра:</p>



<ol><li>Размер файла. Если он равен нулю, то срабатывает триггер.</li><li>Дата создания бэкапа. Если он старше какого-то срока, в моем примере будут 24 часа, то шлем оповещение.</li></ol>



<p>Мониторинг бэкапов будет настроен из расчета, что у вас все бэкапы лежат в одной директории на сервере. В этой директории резервные копии хранятся для каждого объекта в отдельной папке. Будет настроено автообнаружение папок в директории с бэкапами.</p>


</br>



<h2 class="wp-block-heading">1-й способ</h2>



<h3 class="wp-block-heading">Скрипт создания проверочного файла</h3>



<p>Я использую описанную выше схему для бэкапа как windows так и linux серверов. Поэтому скрипта будет 2, для каждой системы. Вот пример такого скрипта для&nbsp;<strong>linux</strong>:</p>



<pre class="wp-block-preformatted"># mcedit&nbsp;create-timestamp.sh

#!/bin/sh
echo `date +"%Y-%m-%d_%H-%M"` &gt; /shares/docs/timestamp</pre>



<p>Скрипт просто создает файл и записывает в него текущую дату. Нам этого достаточно. Писать туда можно все, что угодно, так как проверять мы будем не содержимое, а дату последнего изменения.</p>



<p>Добавляем этот скрипт в cron:</p>



<pre class="wp-block-preformatted"># mcedit /etc/crontab

#Create timestamp for backup monitoring
 1 15 * * * root /root/bin/create-timestamp.sh</pre>



<p>Раз в день в 15:01 скрипт будет создавать файл, перезаписывая предыдущий.</p>



<p>Делаем то же самое на&nbsp;<strong>windows</strong>. Создаем файл&nbsp;<em>create-timestamp.bat</em>&nbsp;следующего содержания:</p>



<pre class="wp-block-preformatted">echo %date:~-10% &gt; D:\documents\timestamp</pre>



<p>И добавляем его в планировщик windows. Не забудьте указать, чтобы скрипт запускался вне зависимости от регистрации пользователя, то есть чтобы он работал, даже если в системе никто не залогинен.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2016/03/zabbix-backup-01.png" alt="Добавление скрипта в планировщик windows" class="wp-image-2982"/></figure></div>



<p>Запустите оба скрипта, чтобы проверить, что все в порядке, и необходимые файлы создаются.</p>



<p>Запустите стандартные скрипты бэкапа, чтобы созданные файлы переместились на резервные сервера. После этого можно приступать к настройке мониторинга за изменением файлов в zabbix.</p>



<h3 class="wp-block-heading">Настраиваем мониторинг бэкапов через проверку даты изменения файлов</h3>



<p>Дальше привычное дело по созданию итемов и триггеров. Идем в панель управления zabbix, открываем раздел&nbsp;<strong>Configuration -&gt; Hosts</strong>, выбираем сервер, на котором у нас хранятся бэкапы и создаем там итем со следующими параметрами:</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2016/03/zabbix-backup-02.png" alt="Создание item для мониторинга бэкапов" class="wp-image-2983"/></figure></div>



<p>На скриншот не влезла вся строка параметра&nbsp;<strong>Key</strong>, поэтому привожу ее здесь:</p>



<pre class="wp-block-preformatted">vfs.file.time[/mnt/data/BackUp/xb-share/documents/timestamp,modify]</pre>



<figure class="wp-block-table"><table><tbody><tr><td>/mnt/data/BackUp/xb-share/documents/timestamp</td><td>Путь к проверяемому файлу на сервере&nbsp;бэкапов</td></tr><tr><td>modify</td><td>Время изменения файла. Параметр может принимать значения: access &#8212; время последнего доступа, change &#8212; время последнего изменения</td></tr></tbody></table></figure>



<p>Не очень понимаю, чем отличается время изменения, от времени последнего изменения. Эта информация из&nbsp;<a href="https://www.zabbix.com/documentation/1.8/manual/config/items" target="_blank" rel="noreferrer noopener">документации zabbix</a>. Для того, чтобы у вас корректно собирались данные, необходимо, чтобы у пользователя zabbix были права на чтение указанного&nbsp;файла. Обязательно проверьте это. Я не сделал это, через одну из папок агент не мог пройти из-за недостатка прав. В итоге получил ошибку:</p>



<pre class="wp-block-preformatted">17177:20160321:002008.008 item "xb-share-documents:vfs.file.time[/mnt/data/BackUp/xb-share/documents/timestamp]" became not supported: Not supported by Zabbix Agent</pre>



<p>Из текста не понятно, в чем проблема. Про права я догадался. Обновление итема установил раз в 10 минут (параметр update interval), чаще не вижу смысла, можно вообще поставить пару раз в сутки, в зависимости от вашего плана архивации данных.</p>



<p>Теперь создадим триггер для этого элемента данных:</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2016/03/zabbix-backup-03.png" alt="Добавление триггера для оповещения о проблемах с backup" class="wp-image-2984"/></figure></div>



<p>Разберем, что у нас в выражении написано:</p>



<pre class="wp-block-preformatted">{xm-backup:vfs.file.time[/mnt/data/BackUp/xb-share/documents/timestamp,modify].now(0)}-{xm-backup:vfs.file.time[/mnt/data/BackUp/xb-share/documents/timestamp,modify].last(0)}&gt;172800</pre>



<p><strong>xm-backup</strong>&nbsp;&#8212; сервер, на котором хранятся бэкапы. Мы берем текущее время, вычитаем из него время последнего изменения файла. Если оно больше&nbsp;<strong>172800</strong>&nbsp;секунд (2 суток), то срабатывает триггер. &nbsp;Вы можете сами выбрать подходящий вам интервал времени сравнения в зависимости от плана бэкапа.</p>



<p>Для тестирования работы оповещений отключите в один из дней скрипты на источниках, создающие проверочный файл. Как только он просрочится, сработает триггер.</p>



<p>На этом все. Мы настроили простейший мониторинг бэкапов с помощью zabbix. Если по какой-то причине файлы перестанут синхронизироваться с сервером резервных копий, вы узнаете об этом и сможете вовремя обнаружить проблему.</p>


</br>



<h2 class="wp-block-heading">2-й способ</h2>



<h3 class="wp-block-heading">Скрипты сбора информации о бэкапах</h3>



<p>Во втором случае у нас есть директория с бэкапами&nbsp;<em>/mnt/backup</em>, где каждая отдельная папка содержит набор однотипных архивов за разные даты.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2018/08/zabbix-monitor-backup-01.png" alt="Структура каталогов бэкапа для мониторинга" class="wp-image-6650"/></figure></div>



<p>Внутри следующее содержимое.&nbsp;Каждый час делает резервная копия базы данных.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2018/08/zabbix-monitor-backup-02.png" alt="Структура папки с архивами" class="wp-image-6651"/></figure></div>



<p>Дальнейшее описание способа мониторинга бэкапов будет актуально только для точно такой же структуры бэкапов. У вас есть общая директория, в ней папки, где внутри сжатые архивы формата .gz. Если расширение файлов другое, то можно подредактировать скрипты, которые я покажу дальше.Обращаю внимание, что приведенная дальше информация требует осмысленного повторения. Не нужно слепо копировать и пробовать. Нужно понять, что я делаю и изменить скрипты и другие настройки под свои нужды. Я просто даю направление, подсказываю способ.</p>



<p>Нам пригодятся несколько скриптов. Первый из них &#8212;&nbsp;<em>backup-info.sh</em>. Он будет формировать текстовый файл&nbsp;<em>backup_info.txt</em>, где будет в одну строку указано имя папки с архивом, размер последнего архива, дата создания архива, время создания архива.</p>



<pre class="wp-block-preformatted">#!/bin/bash

BK_DIR=/mnt/backup # директория с бэкапами
SRV_NAME=`ls $BK_DIR` # формируем список папок с архивами
LOG_FILE=/etc/zabbix/scripts/backup_info.txt # выходной файл с информацией

# удаляем предыдущий файл с информацией
rm $LOG_FILE

for a in $SRV_NAME
    # определяем размер последнего бэкапа
    do  bsize=`ls -lt $BK_DIR/$a | grep .gz | awk 'NR == 1{print$5}'`
	if [[ "$bsize" = "" ]]
	    then
	    bsize=0
	fi
	# определяем имя последнего бэкапа
	bfile=`ls -lt $BK_DIR/$a | grep .gz | awk 'NR == 1{print$9}'`
	# определяем дату создания последнего бэкапа
	btime=`stat $BK_DIR/$a/$bfile | grep Modify | awk '{print $2,$3}' | cut -f1-1 -d"."`
	# записываем информацию в файл
    echo $a $bsize $btime &gt;&gt; $LOG_FILE
    done</pre>



<p>В текстовом файле будет следующее:</p>



<pre class="wp-block-preformatted">dedic-nodes-BCH-01 496211 2018-08-01 17:54:58
dedic-nodes-BTC-01 702496 2018-08-01 17:12:46
dedic-nodes-DASH-01 244488 2018-08-01 17:40:51
dedic-nodes-LTC-01 491030 2018-08-01 17:20:23
vps-14 858433 2018-08-01 18:01:02
vps-15 235689258 2018-08-01 18:02:51
vps-16 235977137 2018-08-01 18:05:54
vps-17 23983868 2018-08-01 17:09:59
</pre>



<p>Я рекомендую разобрать каждую проверку и вручную ее выполнить в консоли, чтобы убедиться, что она работает как и должна и получает правильное значение. В разных дистрибутивах могут быть разные ключи и выводы команд. Например, команда ls может разделять значения одним пробелом, а может несколькими. Так же вывод и порядок столбцов в разных дистрибутивах может быть разный. Я все проверил только в Ubuntu 16. Данные скрипты писались и отлаживались в ней.</p>



<p>Следующий скрипт &#8212;&nbsp;<em>backup-time.sh</em>. Он берет значения из текстового файла, который формирует предыдущий скрипт, вычисляет разницу в часах между текущей датой и временем создания последнего бэкапа. Полученную информацию записывает в файл&nbsp;<em>backup_time.txt</em>.</p>



<pre class="wp-block-preformatted">#!/bin/bash

BK_DIR=/mnt/backup # директория с бэкапами
SRV_NAME=`ls $BK_DIR` # формируем список папок с архивами
LOG_FILE=/etc/zabbix/scripts/backup_time.txt # выходной файл с информацией
INFO_FILE=/etc/zabbix/scripts/backup_info.txt # входной файл для парсинга

# удаляем предыдущий файл с информацией
rm $LOG_FILE

for a in $SRV_NAME
    # получаем дату создания архива
    do btime=`cat $INFO_FILE | grep $a | awk '{print $3,$4}'`
    # переводим дату создания архива в unix формат
    stime=`date --date="$btime" +"%s"`
    # получаем текущую дату в unix формате
    ctime=`date +"%s"`
    # сравниваем 2 даты и переводим в часы
    difftime=$[ ($ctime - $stime) / 60 ]
    # записываем полученный результат в файл
    echo $a $difftime &gt;&gt; $LOG_FILE
    done</pre>



<p>Тестовый файл будет следующего содержания.</p>



<pre class="wp-block-preformatted">dedic-nodes-BCH-01 21
dedic-nodes-BTC-01 63
dedic-nodes-DASH-01 35
dedic-nodes-LTC-01 55
vps-14 14
vps-15 13
vps-16 10
vps-17 66
</pre>


</br>



<p>Рисуем скрипт&nbsp;<em>backup-discovery.sh</em>, который будет выполнять автообнаружение папок с архивами и передавать данные в json формате на zabbix сервер.</p>



<pre class="wp-block-preformatted">#!/bin/bash

JSON=$(for i in `ls -l /mnt/backup | sed '1d' | awk '{print $9}'`; do printf "{\"{#BACKUP}\":\"$i\"},"; done | sed 's/^\(.*\).$/\1/')
printf "{\"data\":["
printf "$JSON"
printf "]}"</pre>



<p>Запустите файл и проверьте, что он корректно формирует вывод. Должно быть примерно следующее.</p>



<pre class="wp-block-preformatted">{"data":[{"{#BACKUP}":"dedic-nodes-BCH-01"},{"{#BACKUP}":"dedic-nodes-BTC-01"},{"{#BACKUP}":"dedic-nodes-DASH-01"},{"{#BACKUP}":"dedic-nodes-LTC-01"},{"{#BACKUP}":"vps-14"},{"{#BACKUP}":"vps-15"},{"{#BACKUP}":"vps-16"},{"{#BACKUP}":"vps-17"}]}</pre>



<p>И еще 2 скрипта, которые будут непосредственно отдавать информацию заббикс серверу. Первый &#8212;&nbsp;<em>analize-size.sh</em>. Он будет передавать серверу информацию о размере архива.</p>



<pre class="wp-block-preformatted">#!/bin/bash

cat /etc/zabbix/scripts/backup_info.txt | grep $1 | awk '{print $2}'</pre>



<p>И второй &#8212;&nbsp;<em>analize-time.sh</em>. Он передает информацию о времени создания бэкапа относительно текущего.</p>



<pre class="wp-block-preformatted">#!/bin/bash

cat /etc/zabbix/scripts/backup_time.txt | grep $1 | awk '{print $2}'</pre>



<p>В завершении делаем пользователя zabbix владельцем всех скриптов и текстовых файлов. Если забыть это сделать, то потом получите ошибку и неактивный итем на сервере.</p>



<pre class="wp-block-preformatted"># chown -R zabbix. /etc/zabbix/scripts</pre>



<h3 class="wp-block-heading">Добавляем в zabbix-agent информацию о бэкапах</h3>



<p>Теперь нам нужно добавить новые итемы в агент заббикса через UserParameter.Создаем файл&nbsp;<em>/etc/zabbix/zabbix_agentd.d/backup_info.conf</em>&nbsp;следующего содержания.</p>



<pre class="wp-block-preformatted">UserParameter=backup.discovery[*],/etc/zabbix/scripts/backup-discovery.sh
UserParameter=backup.size[*],/etc/zabbix/scripts/analize-size.sh $1
UserParameter=backup.time[*],/etc/zabbix/scripts/analize-time.sh $1</pre>



<p>Перезапускаем агента и проверяем. Для начала автообнаружение папок.</p>



<pre class="wp-block-preformatted">#&nbsp;zabbix_agentd -t backup.discovery</pre>



<p>Вы должны увидеть список папок в json формате, как при ручном запуске скрипта. Дальше проверим вывод информации о самих бэкапах.</p>



<pre class="wp-block-preformatted">#&nbsp;zabbix_agentd -t backup.size[dedic-nodes-BCH-01]
backup.size[dedic-nodes-BCH-01] [t|496211]</pre>



<pre class="wp-block-preformatted"># zabbix_agentd -t backup.time[dedic-nodes-BCH-01]
backup.time[dedic-nodes-BCH-01] [t|81]</pre>



<p>Если получаете актуальную информацию, значит все в порядке. Можно переходить на zabbix-server.</p>


</br>



<h3 class="wp-block-heading">Добавляем шаблон с мониторингом бэкапов на сервер</h3>



<p>Здесь вам ничего руками делать не надо будет, так как шаблон я уже сделал и экспортировал в файл &#8212; <a href="https://clip-clap.ru/wp-content/uploads/2020/08/zabbix-backup-info.zip" target="_blank" rel="noreferrer noopener">zabbix-backup-info.xml</a>. Экспорт выполнен с версии 3.4. Заработает ли на предыдущих версиях &#8212; не знаю, не проверял.</p>



<p>В шаблоне создано одно правило автообнаружения с двумя прототипами итемов и триггеров. Итемы имеют такие настройки:</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2018/08/zabbix-monitor-backup-03.png" alt="Итем времени бэкапа" class="wp-image-6652"/></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2018/08/zabbix-monitor-backup-04.png" alt="Итем размера бэкапа" class="wp-image-6653"/></figure></div>



<p>Триггеры такие:</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2018/08/zabbix-monitor-backup-05.png" alt="Триггер на размер бэкапа" class="wp-image-6654"/></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2018/08/zabbix-monitor-backup-06.png" alt="Триггер на время создания бэкапа" class="wp-image-6655"/></figure></div>


</br>



<p>Триггер срабатывает, если архив имеет нулевой размер и если он старше 25 часов. Время переведено в минуты. Можете изменить значение по своему усмотрению. Прикрепляйте шаблон к хосту, где настроили zabbix-agent и ждите поступления данных. Обновляются они раз в час. Получите примерно такую картинку.</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2018/08/zabbix-monitor-backup-07.png" alt="Поступление данных от мониторинга бэкапов" class="wp-image-6656"/></figure></div>



<h2 class="wp-block-heading">Заключение</h2>



<p>Данный функционал можно использовать не только для мониторинга бэкапов, но и других актуальных данных. Например, какая-то программа должна выгружать данные с определенной периодичностью. Мы можем следить за тем, как она это делает. В данной статье мы рассмотрели несколько параметров, по которым заббикс может анализировать файлы и каталоги. Но таких возможностей много. Он может, к примеру, проверять конкретный размер файла и предупреждать, если он сильно меньше или больше предыдущей версии. Настраивается это примерно так же, как здесь.</p>


</br>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%be%d0%b2-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-zabbix/">Мониторинг бэкапов с помощью zabbix</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b1%d1%8d%d0%ba%d0%b0%d0%bf%d0%be%d0%b2-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-zabbix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Кэширование страницы с использованием Disk: Enhanced 
Минифицировано с помощью Disk
Кэширование БД с использованием Disk (Request-wide (широкий запрос) modification query)

Served from: clip-clap.ru @ 2026-07-03 07:59:00 by W3 Total Cache
-->