Высокая производительность и нативное партиционирование: zabbix с поддержкой timescaledb

Логи наше все

Логи по традиции мира *.nix хранятся в текстовых файлах и располагаются в каталоге ‘/var/log/zabbix’.

В этом же каталоге можно увидеть файлы логов Zabbix-агента. Чаще всего на сервере Zabbix для отслеживания работы сервера установлен агент. Да, Zabbix-сервер следит сам за собой.

Прочитать содержимое можно стандартными для Linux способами:

Смотрим файл логов с возможностью прокрутки.

Просмотр файла логов в реальном времени.

Смотрим первые записи

Смотрим последние события

Получаем только записи с ошибками

В общем, это самые простые способы прочитать содержимое файла логов. Если Вы знаете что нужно искать, то grep Вам в помощью. В противном случае в бой вступает tail, но можно выполнять анализ и более сложными способами.

Вот, например, вывод последних 10 событий из файла логов.

Здесь мы видим события процесса housekeeper, который отвечает за удаление устаревшей информации из базы данных мониторинга. Далее идут более интересные события об ошибке связи с хостом “YY-COMP”, а также события последующего восстановления соединения с агентом этого хоста.

В любом случае, основным источником данных о том, что и как делает процесс Zabbix-сервера, есть ли у него проблемы и другую связанную с ним информацию можно найти в его логах. Метод “тыка” тоже работает, но эффективнее просто посмотреть в файл лога событий.

Ребут и агента нет

Бывают случаи, когда агент был успешно установлен и настроен на хосте, мониторинг работает как надо. НО! При очередном запланированном перезапуске сервера (хоста) Zabbix-агент не смог запуститься.

Причин тому может быть несколько:

  • Агент запускается от доменной учетной записи, но на момент старта сервера связи с доменом не оказалось.
  • В момент запуска агент пытался запуститься, когда еще не “поднялся” доступ к сети.

При этом в файле лога агента может не быть какой-либо полезной информации, но она есть в системных журналах ОС. Чаще всего это поведение встречал в ОС Windows.

Решение достаточно простое: нужно установить для службы Windows режим запуска “Автоматически (отложенный запуск)”. В большинстве случаев проблема будет решена.

Быстро и просто!

2) Обработка базы при помощи pgtoolkit:

pgtoolkit — инструмент для уменьшения раздувания таблиц и индексов без тяжелых блокировок и полной перестройки таблицы (https://github.com/grayhemp/pgtoolkit)

Непосредственно запуск:

time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -y 10 --reindex

#Или по очереди:

time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t alerts -y 10 --reindex
time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t acknowledges -y 10 --reindex
time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t events -y 10 --reindex
time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t history -y 10 --reindex
time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t history_uint -y 10 --reindex
time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t history_str -y 10 --reindex
time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t history_text -y 10 --reindex
time sudo -u postgres /opt/pgtoolkit/bin/pgcompact -v info -d zabbix -t history_log -y 10 --reindex

Иногда может возникнуть необходимость проверить и удалить временные индексы, оставшиеся от работы pgcompact:

SELECT * FROM pg_indexes WHERE indexname LIKE '%pgcompact%';
 
 
 schemaname |    tablename    |       indexname       | tablespace |                                           indexdef
------------+-----------------+-----------------------+------------+-----------------------------------------------------------------------------------------------
 public     | hostmacro       | pgcompact_index_12057 |            | CREATE UNIQUE INDEX pgcompact_index_12057 ON hostmacro USING btree (hostid, macro)
 public     | graph_discovery | pgcompact_index_29490 |            | CREATE UNIQUE INDEX pgcompact_index_29490 ON graph_discovery USING btree (graphid)
 public     | hosts_templates | pgcompact_index_4305  |            | CREATE UNIQUE INDEX pgcompact_index_4305 ON hosts_templates USING btree (hostid, templateid)
 public     | hosts_templates | pgcompact_index_21016 |            | CREATE UNIQUE INDEX pgcompact_index_21016 ON hosts_templates USING btree (hostid, templateid)
 
DROP INDEX pgcompact_index_12057;
DROP INDEX pgcompact_index_29490;
DROP INDEX pgcompact_index_4305;
DROP INDEX pgcompact_index_21016;

Результат работы можно увидеть на графиках.

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

Чтобы не пропускать переполнение диска, рекомендуется добавить задание в cron:

sudo -u postgres /usr/bin/flock -w 0 /var/run/postgresql/backup_zabbix_psql.lock /usr/bin/psql -A -R ' : ' -P 'footer=off' zabbix 

Если у вас mysql:

При использовании движка базы данных InnoDB, все таблицы и индексы хранятся в системном табличном пространстве (в одном файле /var/lib/mysql/ibdata).

Для того, чтобы хранить каждую таблицу InnoDB и связанные индексы в отдельных файлах — нужно активировать опцию innodb_file_per_table.

Настройка в zabbix мониторинга nginx

В прошлой редакции этой статьи дальше шло описание скрипта, который будет парсить вывод nginx-status и передавать данные в zabbix. Сейчас все можно сделать гораздо проще и удобнее. На агенте не надо ничего настраивать. Все выполняется исключительно в шаблоне. То есть вам достаточно загрузить готовый шаблон для мониторинга nginx на zabbix сервер, прикрепить его к хосту и все будет работать.

Это удобный подход, который избавляет от необходимости настраивать агентов. Теперь все выполняется с сервера. Минус этого подхода только в том, что возрастает нагрузка на сервер мониторинга. Это плата за удобство и централизацию. Имейте это ввиду. Если у вас большая инсталляция мониторинга и есть средства автоматизации типа ansible, возможно вам имеет смысл по старинке парсить данные скриптом. Но в общем случае я рекомендую делать так, как я расскажу далее.

Суть мониторинга Nginx будет сводиться к тому, что мы через агента станем забирать страницу http://localhost/nginx-status на сервер. Там с помощью регулярных выражений и зависимых элементов данных будем формировать нужные метрики.

Представляю вам готовый шаблон для мониторинга nginx. Скачиваем его zabbix-nginx-template.xml и открываем web интерфейс zabbix сервера. Идем в раздел Configuration -> Templates и жмем Import:

Выбираем файл и снова нажимаем Import:

Шаблон я подготовил сам на основе своих представлений о том, что нужно мониторить. Проверил и экспортировал его с версии 4.2 Регулярные выражения для парсинга html страницы статуса подсмотрел тут — https://github.com/AlexGluck/ZBX_NGINX. К представленному шаблону я добавил некоторые итемы и переделал все триггеры. Плюс убрал макросы. Не вижу в них в данном случае смысла.

В шаблоне 11 итемов, описание которых я привел ранее.

Подробнее остановимся на триггерах. Их 5 штук.

  1. Many active connections — срабатывает если среднее количество соединений за последние 10 минут больше в 3 раза, чем среднее количество за интервал на 10 минут ранее.
  2. many requests и too many requests — срабатывают, когда среднее количество запросов за последние 10 минут больше в 3 и 6 раз соответственно, чем на 10 минут ранее.
  3. nginx is not running — тут все просто. Если не запущен ни один процесс nginx, шлем уведомление.
  4. nginx is slow to respond — срабатывает если время выполнения запроса на получение страницы со статусом за последние 10 минут больше предыдущих 10 минут в 2 раза.

С триггерами больше всего вопросов. Предложенная мной схема может работать независимо от проекта, не требует начальной калибровки, но могут быть ложные срабатывания из-за разовых очень сильных всплесков, которые быстро проходят, но сильно меняют средние параметры на интервале.

Более надежно могут сработать триггеры, где явно указаны лимиты в конкретных значениях. Но такой подход требует ручной калибровки на каждом проекте в отдельности. Надо смотреть средние значения метрик и выставлять лимиты в зависимости от них. Если проект будет расти, то лимиты постоянно придется менять. Это тоже не очень удобно и не универсально.

Я в итоге остановился на анализе средних значений, не используя конкретных лимитов. Как поступать вам, решайте отдельно, в зависимости от ситуации. Если у вас один проект, которому вы уделяете много внимания, то ставьте лимиты руками на основе анализа средних параметров. Если работаете на потоке с множеством проектов, то можно использовать мой вариант, он более универсален и не требует ручной правки.

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

С мониторингом nginx почти все готово. Теперь нам нужно прицепить добавленный шаблон к web серверу, который мы мониторим и дождаться поступления данных. Проверить их можно в Monitoring -> Latest Data:

В шаблоне есть несколько графиков. Не буду о них рассказывать, так как последнее время практически не пользуюсь графиками. Вместо этого собираю дашборды. Это более удобно и информативно. Жаль, что дашборды нельзя к шаблонам прикреплять. Очень хлопотно каждый раз вручную их составлять и тратить время. В конце покажу пример дашборда, который я использую для мониторинга web сервера.

На этом настройка мониторинга nginx закончена, можно пользоваться.

Особые проблемы со счетчиками

Особой проблемой, которая встречается не очень часто, бывают проблемы со счетчиками производительности Windows. После настройки мониторинга на сервере можно увидеть для хоста элементы данных со статусом “Не поддерживается”. При этом все они получаются через показатели производительности Windows. Обратившись к логам агента Zabbix можно увидеть следующее.

При этом для хоста у элементов данных будет такая ошибка.

Проблема в некорректном списке доступных счетчиков производительности Windows на хосте с агентом, то есть на машине, которую мы собираемся мониторить. Можно проверить наличие нужного счетчика через “Монитор производительности” (perfmon.exe) или через ветку реестра:

Если нужного счетчика нет, то можно попытаться перестроить все счетчики ОС командой:

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

Счетчики производительности для мониторинга Windows — отличный инструмент. И его, конечно же, нужно использовать.

Итак, у нас есть следующая схема

По понятным соображениям два последних октета белых ip буду затирать.

Сервер SRV03 находится за NAT, на маршрутизаторе MikroTik настроен srcnat masquerade на сеть 192.168.0.0\24

На сервер SRV03 ставим Zabbix agent

Строку Server и Server Active пишем белый ip нашего роутера на котором далее пробросим порт на Zabbix сервер. Закомментированные строки не учитываются.

Идем на MikroTik в сети LAN 2 и делаем правило проброса порт 10051 на наш заббикс сервер

Тесть все подключения, которые приходят на интерфейс ether1-WAN на порт 10051 отправлять на адрес 192.168.45.18 с портом 10051.

Теперь запустим наш Zabbix агент на сервере. Видим, в лог файле написано агент стартанул нормально, но при подключении не нашел активных проверок для хоста SRV03 то есть для себя.

Это то и понятно так как не чего нем еще не создано, сделаем это. Создадим узел сети с именем SRV03 именно с таким же, как и название сервера с другим работать не будет учтите это.

В поле интерфейсы агента пиши белый ip роутера (не серый ip самого сервера) за которым находиться наш SRV03 порт пишем 10051 (он по умолчания для активных проверок) и сохраняем.

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

По идеи в столбце доступность должно загорается зеленым «ZBX» но при работе агента в активном режиме этого не происходит, в обычном да загорается.

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

Заметьте, когда создаете ЭД надо выбирать Тип: Zabbix агент (активный).

Посмотри приходят ли данные и видим, что все работает.

Шаг 5: Зарегистрируйте Zabbix Proxy в веб-интерфейсе Zabbix

Теперь, когда ваш прокси запущен, вам нужно зарегистрировать его в веб-интерфейсе Zabbix, используя опцию « Прокси » в разделе « Администрирование ». Нажмите кнопку « Создать прокси » снизу, затем установите « Имя прокси » на Zabbix proxy и « Режим прокси » на « Активный » « Пассивный*».

* « Пассивный» режим включается на стороне zabbix-server и zabbix-proxy модом

Чтобы включить на на стороне zabbix-proxy надо дописать строчку в /etc/zabbix/zabbix_proxy.conf добавив

Обратите внимание, что для работы прокси в активном режиме « Имя прокси» должно быть таким же, как параметр « hostname » в  файле а в пассивном может быть произвольным

Изображение, показывающее, как зарегистрировать пассивный Zabbix Proxy в веб-интерфейсе Zabbix

Сразу после добавления прокси к веб-интерфейсу вы получите сообщение, что прокси не подключен.

Однако, если вы подождете 100 секунд, в статусе « Последний раз (возраст) » вместо « Не подключен » будут отображаться секунды, что означает, что прокси-сервер обменивается данными с сервером.

Почему 100 секунд? Помните, что мы указали для параметра « ConfigFrequency » в  « » файле? Независимо от того, что вы туда поместите, сколько времени потребуется прокси, чтобы связаться с Zabbix сервером для получения данных конфигурации. Это правило применяется только в том случае, если прокси находится в активном режиме.

Обратите внимание, что статус « Последний раз был доступен (возраст) » не должен превышать 6 секунд, если связь прокси-сервера работает

Zabbix Documentation 5.2

Настройка агента

Zabbix агент 2 работает как служба Windows.

Вы можете запустить один экземпляр Zabbix агент 2 или несколько экземпляров агента на узле сети Microsoft Windows. Один экземпляр может использовать файл конфигурации по умолчанию C:\zabbix_agent2.conf или файл конфигурации, указанный в командной строке. В случае нескольких экземпляров, каждый экземпляр агента должен иметь свой собственный файл конфигурации (один из экземпляров может использовать файл конфигурации по умолчанию).

См. параметры файла конфигурации для получения подробной информации о настройке Zabbix агента 2 на Windows.

Параметр Hostname

Итак, чтобы упростить настройку файла zabbix_agent2.conf и сделать его унифицированным, можно использовать два разных подхода.

Установка агента как службы Windows

Чтобы установить один экземпляр Zabbix агента 2 с файлом конфигурации по умолчанию c:\zabbix_agent2.conf :

Необходимо указать полный путь к файлу конфигурации.

Несколько экземпляров Zabbix агента 2 могут быть установлены в качестве служб следующим образом:

Установленная служба должна теперь отображаться в Панели управления.

Запуск агента

Чтобы запустить службу агента, вы можете использовать Панель управления или сделать это из командной строки.

Чтобы запустить единственный экземпляр Zabbix агента 2 с файлом конфигурации по умолчанию:

Чтобы запустить единственный экземпляр Zabbix агента 2 с другим файлом конфигурации:

Чтобы запустить один из нескольких экземпляров Zabbix агента 2:

Остановка агента

Чтобы остановить службу агента, вы можете использовать Панель управления или сделать это из командной строки.

Чтобы остановить единственный экземпляр Zabbix агента 2, запущенного с файлом конфигурации по умолчанию:

Чтобы остановить единственный экземпляр Zabbix агента 2, запущенный с другим файлом конфигурации:

Чтобы остановить один из нескольких экземпляров Zabbix агента 2:

Удаление агента из служб Windows

Чтобы удалить единственный экземпляр Zabbix агента 2 с использованием файла конфигурации по умолчанию:

Чтобы удалить единственный экземпляр Zabbix агента 2, использующий нестандартный файл конфигурации:

Чтобы удалить несколько экземпляров Zabbix агента 2 из служб Windows:

Конфигурация zabbix агента

4. Следующим шагом необходимо сконфигурировать zabbix агент, чтобы была возможность работы связки клиент-сервер. Для этого открываем конфигурационный файл zabbix_agentd.win.conf.

5. Меняем путь до лог файла, например LogFile=C:\Program Files\Zabbix_agent\zabbix_agentd.log.

6. Для того, чтобы определить ip адрес сервера, открываем терминал на сервере и набираем команду ip addr.

7. В конфигурационном файле zabbix агента в секции “Option Server” указываем ip адрес сервера:

Server=192.168.20.158

8. В секции “Option: ServerActive” также указываем ip адрес сервера zabbix:

Server=192.168.20.158

В секции “Option: Hostname” указываем имя компьютера, например Hostname=Int.

Сжатие и оптимизация таблиц InnoDB

Файлы ibdata1 и ib_log

Большинство проектов с таблицами InnoDB имеют проблемы с большими файлами ibdata1 и ib_log. В большинстве случаев это связано с неправильной  конфигурацией MySQL/MariaDB или архитектурой БД. Вся информация из таблиц InnoDB хранится в файле ibdata1, пространство которого само не используется. Я предпочитаю хранить данные таблицы в отдельных  файлах ibd*. Для этого добавьте в my.cnf следующую строку:

innodb_file_per_table

или

innodb_file_per_table = 1

Если ваш сервер настроен и у вас есть продуктивные базы данных с таблицами InnoDB, сделайте следующее:

  1. Сделайте резервную копию всех баз данных на вашем сервере (кроме mysql и performance_schema). Вы можете получить дамп базы данных с помощью этой команды:
  2. После создания резервной копии базы данных остановите сервер mysql/mariadb;
  3. Измените настройки в my.cfg;
  4. Удалите  файлы ibdata1  и  ib_log;
  5. Запустите демон mysql/mariadb;
  6. Восстановить все базы из резервной копии:

После этого все таблицы InnoDB будут храниться в отдельных файлах, и ibdata1 перестанет экспоненциально расти.

Сжатие таблиц InnoDB

Вы можете сжимать таблицы с текстовыми данными / данными BLOB и экономить довольно много места на диске.

У меня есть база данных innodb_test, содержащая таблицы, которые потенциально могут быть сжаты, и поэтому я могу освободить место на диске. Прежде чем что-либо делать, я рекомендую сделать резервную копию всех баз данных. Подключитесь к серверу mysql:

# mysql -u root -p

Выберите нужную базу данных в консоли mysql:

# use innodb_test;

Чтобы отобразить список таблиц и их размеры, используйте следующий запрос:

SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size in (MB)"
FROM information_schema.TABLES
WHERE table_schema = "innodb_test"
ORDER BY (data_length + index_length) DESC;

Где innodb_test — имя вашей базы данных.

Некоторые таблицы могут быть сжаты. Возьмем для примера таблицу b_crm_event_relations. Запустите этот запрос:

mysql> ALTER TABLE b_crm_event_relations ROW_FORMAT=COMPRESSED;

После его запуска вы можете увидеть, что размер таблицы уменьшился с 26 МБ до 11 МБ из-за сжатия.

Сжимая таблицы, вы можете сэкономить много дискового пространства на вашем хосте. Однако при работе со сжатыми таблицами нагрузка на процессор возрастает. Используйте сжатие для таблиц db, если у вас нет проблем с ресурсами процессора, но есть проблема с дисковым пространством.

Дополнительные материалы по Zabbix

Онлайн курс Infrastructure as a code

Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Смотрите подробнее программу по .

Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX

Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.

Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.

Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.

Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.

Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.

Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology

Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.

Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.

Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.

Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)

Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.

Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.

Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.

Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов

Настройка мониторинга web сайта в zabbix. Параметры для наблюдения — доступность сайта, время отклика, скорость доступа к сайту.

Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.

Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.

Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.

Пример распознавания и мониторинга за изменением значений в обычных текстовых файлах с помощью zabbix.

Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Zabbix:

Отключение SQL-таблиц, хранящих значения метрик:

При первом запуске новая версия Zabbix’а произведёт автоматическое обновление базы.
Этому могут помешать старые проблемы, например, русские символы в таблицах с кодировкой latin1.
Чтобы обновление не закончилось с ошибкой, предварительно исправьте их вручную:

Чтобы ядро Zabbix’a начало использовать ElasticSearch и создавало посуточные индексы вместо монолитных, достаточно добавить две строки в /etc/zabbix/zabbix_server.conf:

Чтобы Веб-интерфейс начал читать значения из ElasticSearch, потребуется добавить в /etc/zabbix/web/zabbix.conf.php:

Настройка закончена, запускаем ядро и Веб-интерфейс Zabbix:

Проверяем, что индексы начали заполняться значениями:

Установка обновления zabbix 5.0 до 5.2

Centos 7, 8

Для начала проверим список установленных пакетов zabbix в системе. Их название может быть разным в зависимости от используемых репозиториев. К примеру, в centos 7 у пакетов может быть дополнение в виде scl к названию пакета.

Centos 7:

# rpm -qa | grep zabbix
zabbix-web-5.0.5-1.el7.noarch
zabbix-web-mysql-scl-5.0.5-1.el7.noarch
zabbix-agent-5.0.5-1.el7.x86_64
zabbix-web-deps-scl-5.0.5-1.el7.noarch
zabbix-apache-conf-scl-5.0.5-1.el7.noarch
zabbix-release-5.2-1.el7.noarch
zabbix-server-mysql-5.0.5-1.el7.x86_64

Centos 8:

# rpm -qa | grep zabbix
zabbix-server-mysql-5.0.5-1.el8.x86_64
zabbix-web-5.0.5-1.el8.noarch
zabbix-web-mysql-5.0.5-1.el8.noarch
zabbix-web-deps-5.0.5-1.el8.x86_64
zabbix-release-5.0-1.el8.noarch
zabbix-agent-5.0.5-1.el8.x86_64

Устанавливаем обновление zabbix на сервер Centos 8, выбирая установленные у вас пакеты:

# yum upgrade zabbix-web zabbix-web-mysql zabbix-server-mysql zabbix-agent

Для centos 7 будет такой список:

# yum upgrade zabbix-web zabbix-web-mysql-scl zabbix-agent zabbix-server-mysql

Обращаю внимание, что на момент написания данной статья, пакетов 5.2 для Centos 7 в репозиториях нет. В официальных инструкциях их тоже нет и не понятно, будут ли

Как только появятся, я дополню статью.

После завершения обновления, запускаем zabbix-server.

# systemctl start zabbix-server

Проверяем лог сервера. Необходимо дождаться обновления базы данных

Важно не трогать в этот момент сервер, не прерывать обновление, не пытаться его перезапустить. Если база большая, обновление может длиться очень долго

Рекомендую сначала где-то протестировать этот процесс, прежде чем обновлять прод.

# tail -f /var/log/zabbix/zabbix_server.log

В конце должны получить сообщение:

2860543:20201029:173036.441 completed 100% of database upgrade
2860543:20201029:173036.441 database upgrade fully completed

Есть ненулевой шанс, что будет какая-то ошибка с базой. Чаще всего возникают проблемы с какой-то нестандартной записью в таблице. Туда может попасть какой-то необычный символ, или с кодировкой проблемы. В этих случаях удаляйте проблемные записи, меняйте кодировку базы zabbix.

После обновления переходите в web интерфейс и проверяйте версию Zabbix. Должна быть 5.2.

На этом обновления Zabbix до 5.2 на Centos завершено.

Debian / Ubuntu

Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:

# apt upgrade zabbix-agent zabbix-frontend-php zabbix-nginx-conf zabbix-server-mysql

После завершения обновления, запускаем сервер:

# systemctl start zabbix-server

В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.

# tail -f /var/log/zabbix/zabbix_server.log

После завершения обновления базы, сервер запустится. После этого можно запустить и агент.

# systemctl start zabbix-agent

В логах агента и сервера можно посмотреть версию запущенных сервисов.

Starting Zabbix Agent . Zabbix 5.2.0 (revision bcf99fb248).
Starting Zabbix Server. Zabbix 5.2.0 (revision bcf99fb248).

Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.

# chown -R nginx:nginx /etc/zabbix/web

Теперь можете лицезреть обновленную версию web интерфейса в браузере.

Заключение

Несмотря на то, что новые версии zabbix выходят достаточно часто, материалы по настройке мониторинга различных систем и сервисов не устаревают и остаются актуальным для самых новых релизов. Вот пример мониторинга служб и сервисов, приведенных на моем сайте:

  • Настройка мониторинга Asterisk
  • Cрок действия ssl сертификата
  • Почтовый сервер Postfix
  • Звонок-оповещение Zabbix через Asterisk на мобильный телефон
  • Лог файлы
  • Установка и настройка zabbix прокси на CentOS 7
  • Размер бэкапа
  • Значения из текстового файла
  • Время делегирования домена
  • Synology
  • Актуальность бэкапов
  • Транки (trunk) в asterisk
  • Программный рейд mdadm
  • Доступность службы linux
  • MySQL репликация
  • Web сайт
  • Web сервер nginx и php-fpm
  • Настройка мониторинга температуры

Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии проходит безболезненно. Нет необходимости перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться.

Онлайн курс Основы сетевых технологий

Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:

  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.

Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .

Заключение

Решение задачи по бэкапу mysql баз, что я описал, не претендует на уникальность и 100% правильность. Это просто мой личный опыт. Никаких особых изысканий и поиска наилучшего решения не проводил. Просто сделал, как сделал, чем с вами и поделился. В моих задачах такой подход достаточен.

Еще раз напоминаю, что этот способ актуален для относительно небольших баз. Дампить объемные базы плохая идея, так как будет сильно проседать i/o дисков. Плюс тут нет возможности делать инкрементные бэкпы. Только полные, что, очевидно, не всегда удобно.

Для мониторинга бэкапов в целом, можете воспользоваться моей объемной статьей по теме — Мониторинг бэкапов с помощью zabbix.

Онлайн курсы по Mikrotik

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

Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: