Zabbix-export

Zabbix-export Хостинг

Время на прочтение

Недавно выпала задача по развертке копий основного Zabbix-server на несколько машин, дабы хранить конфиги на разных серверах, да и еще всунуть это в CI/CD GitLab. Взял Ansible и начал писать плейбук.

В последнее время задача, указанная в заголовке, стала очень актуальна в связи с различными изменениями с операционных системах. Я расскажу, как перенести Zabbix Server с одного сервера на другой максимально просто и быстро. Сам уже несколько раз проделывал эту процедуру, так как во-первых, закончилась поддержка Centos 8 и я переезжаю потихоньку на Debian. Во-вторых, в Centos 7 поддержка Zabbix Server прекращена, начиная с версии 5.4. То есть до 5.4 вы не обновитесь, не переехав на другую систему.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный тест.

Введение

Как я уже сказал, Zabbix больше не поддерживает Centos 7 в качестве системы для сервера мониторинга. Хотя поддержка самой системы 7-й версии будет до 2023 года. По идее, она всё еще актуально. Но это в теории, на практике есть проблемы. Причин у команды Zabbix несколько:

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

В итоге для дальнейшего обновления Zabbix Server нужно мигрировать с Centos 7 на какую-то другую систему. Я выбрал в качестве такой системы Debian 11. Так что на практике расскажу и покажу, как перенести Zabbix Server с Centos 7 на Debian 11. Инструкция будет одинаково актуальна для любой системы, так как принцип один и тот же.

(1) Zabbix поддерживает импорт и экспорт шаблонов, а формат файла импорта — xml или json (.xml или .json)

Примечание. Если в процессе импорта произойдет какая-либо ошибка, импорт будет прекращен.

(2) Сначала подготовьте шаблон и сохраните его в формате .xml.

(3) Подробное описание XML

Базовый формат файла XML, это также может относиться к буклету по эксплуатации zabbix

Заголовок XML по умолчанию

корневой элемент zabbix xml

Обратите внимание, что версия здесь не может быть написана неправильно, иначе появится сообщение об ошибке: «/ zabbix_export / templates / template (1)»: тег «описание» отсутствует.

Выберите файл для импорта

Zabbix-export

Zabbix-export

Zabbix-export

На картинке выше показан успешно импортированный шаблон.

Zabbix-export

Universal script for exporting and importing zabbix items.

Based on https://github.com/pawmint/zabbix.js

node index.js (options).

Or download pre-compiled zabbix-export.exe and use it from windows console.

—mode=(GetApi, GetTemplate, SendTemplate, CreateHost) — work mode selection. Mandatory.

-GetApi returns Zabbix api version.

-GetTemplate saves selected template to XML or JSON file in working dir.

-SendTemplate uploads template file to zabbix server.

-CreateHost creates hosts from file, for example hosts.json (batch)

—zbxhost=(zabbix host name or ip address). Mandatory.

—zbxpass=(zabbix password). Mandatory.

—template=(template name on server or file name). Mandatory for upload and download. Must use file name for download and template name for upload.

—format=(JSON or XML). Mandatory for upload and download. XML is ready for uploading via web interface.

—hostpath=(path_to_hosts_file). Mandatory for creating hosts. File must be json, example attached.

—groupid=(number of group for new hosts). Mandatory for creating hosts.

Other modes will be added later:

-export parsed template to XLS or CSV for analisys.

-batch export and import.

-uploading and downloading items and other elements.

Contributions and propositions are welcome.

Импортируя / экспортируя файлы конфигурации zabbix, мы можем делиться нашими собственными шаблонами и другими конфигурациями в сети, а также мы можем импортировать файлы конфигурации, общие в сети. Файл конфигурации имеет два формата, разделенных на xml и json, через zabbix Интерфейс управления может экспортировать xml, а конфигурацию формата json и xml можно экспортировать через zabbix api. Например, мы настроили шаблон мониторинга Redis в zabbix, что достигается с помощью этого шаблона импорта. Вот объяснение импорта и экспорта шаблонов.

Основные инструкции по импорту и экспорту. Экспортные товары

  • шаблоны (шаблон, содержащий все элементы, триггеры, графики, экраны, правила обнаружения и ссылки, которые непосредственно с ним связаны)
  • хосты (включает все элементы, триггеры, графики, правила обнаружения и шаблоны ссылок, непосредственно связанные с ним)
  • группы узлов сети (можно экспортировать только через zabbix api)
  • сетевые карты (содержит все соответствующие изображения; экспорт / импорт карт поддерживается начиная с Zabbix 1.8.2)

Экспорт подробного описания

  • Экспорт в один файл
  • Сущности хоста и шаблона, связанные с шаблоном (элементы, триггеры, графики, правила обнаружения), не будут экспортированы, а сущности, созданные с помощью низкоуровневых, не будут экспортированы. Но после экспорта объект ссылки будет воссоздан.
  • Объекты, связанные с низкоуровневыми объектами, не будут экспортироваться, например триггеры.
  • Триггеры и графики, относящиеся к веб-элементам, не поддерживают экспорт

Импортируйте подробные инструкции.

  • Если в процессе импорта возникнут какие-либо ошибки, импорт будет остановлен.
  • Поддержка импорта файлов в формате xml и json, суффикс имени файла должен быть .xml или .json.

Во-вторых, основной формат XML-файла

1, заголовок xml по умолчанию

2. корневой элемент zabbix xml

3. Экспортная версия

4. Дата экспорта

Экспорт шаблона для импорта шаблона

Информация о статье взята из www.ttlsa.com/zabbix/zabbix-configuration-export-import/ с некоторыми изменениями и дополнениями.

Укажите, если перепечатываете: блог Cloud Speed ​​www.ysidc.top »файлы конфигурации импорта / экспорта zabbix (82)

https://www.ysidc.top Блог о скорости облака, база данных, скорость облака, виртуальный хостинг, регистрация доменного имени, доменное имя, облачный сервер, облачный хост, сайт создания облака, ysidc.top

Zabbix Review and Export/Import

With Zabbix review and export (backup)/import you can create review mechanism and save/restore zabbix configuration as code (Monitoring as Code)

Читайте также:  Айхор Хостинг – Telegram

You can export (backup) all hosts templates and other object with zabbix-export.py script.

  • Requirements
  • Make export and backup
  • Restore from YAML dump
  • Make review
  • Supported objects
  • Known issues
  • Screenshots

Requirements

If you want use review (or Monitoring as Code:

  • GitLab — you own instance with configured GitLab CI or cloud account
  • git

Make export and backup

It’s simple to start use this script as backup mechanism:

Restore from YAML dump

  • Fork this repository to you GitLab account or instance (e.g. groupname/zabbix-review-export)
  • Create repository where will be saved XML and YAML (e.g. two repositories groupname/zabbix-xml and groupname/zabbix-yaml. Do first (init) commit (create empty README.md).
  • Create two branches in this repos: master and develop. In repository groupname/zabbix-xml set develop as a default branch.
  • Specify Project Variables for all variables, specified on top of .gitlab-ci.yml
  • Try to run manual job YAML zabbix
  • Configure Schedule (eg. every week)
  • Change some host, template or other supported objects in zabbix, run manual job and create merge request again. Enjoy!

Notes

Use two repositories for XML+JSON (raw-format) and readable YAML format:

  • XML + JSON will be useful if you want restore some object after remove or a large number of changes.
  • YAML format is more suitable for people to read and review changes. The script removes all empty values.

To answer for the question «Who make this changes?» you need use Zabbix Audit. It’s difficult but possible.

Supported objects

Use standard zabbix export functional:

  • hosts
  • templates
  • screen

Representing objects as JSON using the API:

  • mediatypes
  • actions

Known issues

YAML change action:

YAML change trigger expression:

YAML link template

XML change templates (but we recommend use YAML for review and XML only for backup):

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

Обновить Zabbix или сохранить наработки? Вот в чем вопрос

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

при миграции в новый мониторинг и воспроизведении функционала, — отказ от модификации кода GUI Zabbix.

Как это правило может быть реализовано? Хочешь красивые графики / дополнительную информацию — используй возможности Grafana.

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

Я опущу здесь этапы установки и настройки ПО. Если вам требуются инструкции, можно посмотреть документацию на официальном сайте.

Что было на старте:

  • версия: Zabbix 2.2.2 и Zabbix-agent 3.0.12
  • хранилище: 2x PostgreSQL 11
  • хардкод в GUI
  • нативная авторизация

К чему хотели прийти:

  • версия: Zabbix 5.0 LTS и Zabbix-agent 5.0
  • без хардкода
  • увеличение срока хранения показаний (30 дней истории, 90 дней тренды)
  • перенос визуализации на внешние инструменты (Grafana)
  • LDAP-авторизация
  • оптимизация собираемых показаний

Муки выбора ПО

Для формирования аналога основного экрана с жизненно важными графиками мы выбрали Grafana. Этот продукт, наверное, даже не требует представления, самое простое решение из всех принятых в процессе перехода.

Для интеграции Zabbix + Grafana используем незаменимый плагин от Alexander Zobnin. Встроенный в него набор инструментов позволит организовать работу ответственных за наблюдение без существенных изменений в логике взаимодействия с GUI.

Да, использование Grafana в качестве базы для создания дашборда было доступно и в Zabbix 2.2.2, но не применялось: нужно было время на обучение команды и переход. В этот раз мы приняли для себя волевое решение — переключить работу сотрудников на новый инструмент, объединив переход на Grafana с обновлением Zabbix. Одновременно решаем сразу две задачи!

В качестве баз данных мы выбрали актуальную на момент работ версию PostgreSQL 12.4. Для увеличения интервала хранения решили использовать плагин TimescaleDB 1.7.4.

Тестирование

До начала работ мы провели синтетический нагрузочный тест связки Zabbix 5 + PostgreSQL 12.4 (+ TimescaleDB 1.7.4). Версии ПО выбирались по принципу актуальности из stable-релизов.

Для тестирования использовали проект Zabbix Server Stress Test. Количество метрик (NVPS) мы удвоили по сравнению со старым Zabbix, чтобы оценить, как повлияет увеличение числа наблюдаемых хостов в будущем. Под такой нагрузкой тестовая среда была оставлена на месяц.

Помимо проверки самого zabbix-server, это также позволило нам оценить работу плагина TimescaleDB. Глобально мы установили значения для истории значений и трендов, чтобы привести к единому порядку, а также включили сжатие.

Коэффициент сжатия на самой объемной таблице: 20 (20 ГБ сжаты до 1 ГБ). Средний коэффициент сжатия по всем таблицам: 19.

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

План подготовительный

1. Поднять и настроить два экземпляра PostgreSQL с репликацией master-standby
2. Установить и настроить Zabbix 5 на работу с новым PostgreSQL
3. Перенести: регулярные выражения, value mappings, группы хостов, правила авторегистрации
4. Экспортировать / импортировать шаблоны:

— оформить в в виде примечания “В качестве инструмента работы из командой строки использовалась утилита https://github.com/unioslo/zabbix-cli”;
— так как формат экспортируемых ресурсов между релизами 2.2.2 и 5.0 претерпел изменения, необходимо было поправить XML, чтобы их принял новый Zabbix;
— переходить дальше не следует, пока все шаблоны не будут внесены в новый Zabbix, так как успешность импорта хостов зависит от наличия привязанных к ним шаблонов.

5. Добавить в конфигурацию zabbix-agent дополнительный сервер Zabbix

С этого момента данные начнут поступать в оба Zabbix (за исключением trapper-сообщений).

6. Экспорт / импорт хостов

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

7. Создать дашборды на базе Grafana

Настраиваем источник данных на работу с новым Zabbix. Воспроизводим основной экран старого Zabbix средствами Grafana (+ плагин).

8. Анализ работы нового Zabbix

Оцениваем, как сервер справляется с нагрузкой:

  • проверяем показания в разделе Очередей;
  • проверяем показания из готового шаблона Template App Zabbix Server;
  • использование дискового пространства на серверах с PostgreSQL;
  • заглядываем в основной лог zabbix-сервера.
Читайте также:  ГАРАНТ Консалтинг - Новый уровень вашей работы и успеха

9. Тюнинг параметров zabbix-server и GUI, postgresql

Для подбора параметров PostgreSQL использовалась утилита timescaledb-tune. Параметры работы zabbix-server и GUI не претерпели серьезных изменений, лишь немного увеличены размеры кэшей и количество обработчиков.

10. Предварительная модификация скриптов, взаимодействующих с Zabbix API

К уже имевшимся скриптам добавился небольшой скрипт-обертка для синхронизации LDAP-списков с участниками Zabbix-групп. В остальных скриптах достаточно было изменить реквизиты подключения, проверить, что новый API корректно отдает нужные данные.

План миграции

1. Вводим мораторий на любые изменения в старом Zabbix
2. Очистка от ранее перенесенных хостов Zabbix

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

3. Если с момента подготовительных работ появились новые — переносим в свежую инсталляцию: регулярные выражения, value mappings, группы хостов

4. Создаем группы пользователей. Воспроизводим права доступа на группы хостов

5. Экспорт / импорт шаблонов

7. Перенос веб-проверки, правила авторегистрации

В 2.2.2 не поддерживается экспорт данных элементов.

8. Проверка поступающих данных

На данном этапе оцениваем, что после миграции триггеры продолжают работать, как и ожидалось. Сравниваем возникающие события в обоих Zabbix.

9. Поменять местами серверы в конфигурации zabbix-agent

С этого момента основным инструментом наблюдения становится новый Zabbix.

10. Переключение скриптов, обращающихся к API Zabbix, на новый сервер

Zabbix-export

Схема взаимодействия компонентов мониторинга

Оптимизация

После завершения миграции мы решили проанализировать получаемые значения и оптимизировать их.

Для обнаружения маунтов и сетевых адаптеров мы использовали встроенный ключ, а невозможность фильтровать по нескольким макросам приводила к созданию лишних item’ов, с которых не требовалось собирать показания. Например:

  • с нод KVM-виртуализации, где каждой виртуальной машине соответствует один сетевой адаптер;
  • с клиентских серверов, где смонтированы резервные копии;
  • с сервисных серверов, где краткосрочно запускается множество контейнеров;
  • и другие, специфичные для нашей инфраструктуры.

Благодаря фильтрации обнаруживаемых item’ов удалось сократить NVPS c 3600 до 2500.

Похожего результата можно добиться и на старом zabbix: например, использовав собственные правила обнаружения.

Плюшки

На “Хабре” меня заинтересовала эта статья по применению Git для хранения ресурсов Zabbix, поэтому мы написали упрощенный вариант того, что предлагалось в работе «Zabbix Review: как организовать code review для конфигурации мониторинга».

Заключение

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

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

Zabbix-export

Преступность

Zabbix — это приложение мониторинга сервера. У него хороший веб-интерфейс. Это недостатки в Соединенных Штатах отсутствуют функции отчетов о экспорте, но Zabbix также предоставляет мощную поддержку API.https://www.zabbix.com/documentation/3.4/zh/manual/apiВы можете увидеть это подробно.

Эта система — это система, которую я написал, чтобы экспортировать данные, контролируемые Zabbix в таблицу Excel.

Springboot + JPA + POI на заднем плане

Vue + Elementui передний конец

Исходный код сначала:

Код переднего конца:https://github.com/FENGZHIJIE1998/zabbix-data-vue/

Пищевая гида

2. Измените файл конфигурации Application.yml

Нужно изменить следующие места к вашим настройкам

Zabbix-export

Zabbix-export

3. Импорт SQL.

Файл SQL является каталогом SQL Resource.

4. Начните проект.

Развернуть передний конец

1. Клон-код фронтаhttps://github.com/FENGZHIJIE1998/zabbix-data-vue/

2. Выполните команду

npm run serve

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

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

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

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Работа с установками на хосты Zabbix’а через Ansible

Сначала написал файл хостов с переменными, чтобы разделять установщики на разных семействах Linux(Debian, Ubuntu, RedHat):

Написал обычный пинг серверов:

После того, как я удостоверился, что хосты доступны, создал типичный шаблон для развертывания Zabbix (web, server и БД timescaledb на PostgreSQL) и вызвал его с ролью(run_docker-compose), где стопятся контейнеры со старым Zabbix’ом и БД, если они были подняты, и поднимаются заново в docker-compose:

*Дабы не занимать много вашего времени и не делать длиннопост, прикреплю ссылку на репозиторий с файлами.

Далее я накатываю Zabbix-agent2, скачивая его пакеты с репозиториев, роль — install_agent2.service:

Накидываю уже шаблон для конфига агента вместо дефолтного файла конфигурации (тег configure_zabbix-agent2) и перезапустил службу этого агента ролью restart_agent2.service.

Внедрение в CI/CD GitLab

Ну здесь уже просто. Мы при создании заданий в плейбуке прописываем теги, которые уже вызываем в .gitlab-ci.yml:

image: ### Ansible 6.5.1 image

stages:
— install/update_zabbix
— configure_zabbix-agent2
— run_script

Install/update_Zabbix:
stage: install/update_zabbix
script:
— ansible-playbook ansible/zabbix_playbook.yml -i ansible/hosts/hosts.txt -vvvv -t install/update_zabbix
when: manual

Configure_Zabbix-Agent2:
stage: configure_zabbix-agent2
script:
— ansible-playbook ansible/zabbix_playbook.yml -i ansible/hosts/hosts.txt -vvvv -t configure_zabbix-agent2
when: manual

Export/import_zabbix_config:
stage: run_script
script:
— ansible-playbook ansible/zabbix_playbook.yml -i ansible/hosts/hosts.txt -vvvv -t run_sript -t restart-agent2
when: manual

Код введения

Фон использует Transhboot JPA POI Technology, которая не расширяется подробно.

Первый — это позвонить API, предоставляемую Zabbix, в DataServiceImpl, съем для данных с инструментом httpclient. Использование Zabbixapi здесь не отключается.

Zabbix-export

Объявите внутренний класс, Asynclu является многопоточным асинхронным асинхронным расчетом, потому что данные каждого хоста не пересекаются, поэтому мы используем многопоточное количество каждого хоста для расчета идей их соответствующих данных. В то же время также реализован Callable интерфейс с возвращающим значением, а рассчитанный результат возвращается.

Выполнить в соответствии с порядком строительства:

1.Login () Метод получения токена

2. Экономика () Получить предмет хоста

По установке вывода и выбораInterfaces вы можете получить нужные данные, уменьшите расход разрешения данных

Читайте также:  Блокировщик сайтов Mikrotik: простые и эффективные шаги

3. GetItem () Получить мониторинг

То же самое также устанавливает выходные атрибуты.

4.Этистория () Получить исторические данные в соответствующем диапазоне времени

Настоящим обратите внимание, что исторические данные различных типов данных самой Zabbix хранятся в разных таблицах. Мы должны устанавливать параметры в соответствии с значением value_type, который вы получили в GetItem, в противном случае приготовление данных не будет доступно.

5. Метод Calculate () состоит в том, чтобы рассчитать полученные исторические данные, получить максимальный минимум, средний и разница. Этот шаг на самом деле основан на ваших потребностях, что вам нужно рассчитать. Обратите внимание, что вам может понадобиться преобразование подразделения, код преобразования подразделения, который я не думал о том, как конвертировать более эффективно, и большая подарка может оставить сообщение.

6. Верните расчетные данные в коллекцию RES

7. Excel Заполните данные, это не отключено, а инструкции для POI ищут ее самостоятельно.

Код введения здесь здесь

Если у вас есть какие-либо вопросы, вы можете прокомментировать или в частном порядке, у меня есть ежедневно (Ляо) сомнение (SAO).

Я большое имя, скромный фермер Micro-Code, который готовит 996, я чувствую себя хорошо для похвалы! ! !

Скрипт для импорта/экспорта конфигурации

Далее наступила интересная часть, где я думал, как все-таки можно сделать импорт/экспорт конфигурации самого Zabbix, когда уже все поднято. Поискав в интернете, я уже почти расстроился, что придется делать либо запросами, либо писать самодельный API. Но, к счастью, я отыскал библиотеку для Python pyzabbix, где можно спокойно сделать экспорт конфига (как потом, спустя время, оказалось, что можно и импорт).

На вход два аргумента: host_from(откуда берем конфиг) и host_to(куда импортируем, подставляется в роли Ansible).

При успешном выполнении скрипта нам выведется в консоль отчет об успешном входе и выведет версию Zabbix:

Connected to Zabbix API Version %version%

Все хорошо, далее пишем функции для экспорта хостов, групп хостов и шаблонов:

Далее мы просто вызываем поочередно функции экспорта, куда передаем объект с аутентифицированным Zabbix по API:

def export_zabbix_conf(zapi):
export_templates(zapi)
export_hosts(zapi)
export_host_groups(zapi)

Все, что осталось — это импортировать созданные файлы экспорта в другие хосты Zabbix(здесь zapi — уже хост, на который копируем):

Все хорошо, скопировался конфиг, но остается последняя проблема — агент не видит свой же хост и нам нужно в настройках заббикса переименовать наш хост с «Zabbix Server» на наш DNS, IP (я переключил на чтение DNS, мне так удобнее было):

Перенос Zabbix Server

Теперь можно перейти непосредственно к переносу сервера мониторинга. Для этого остановите старый сервер:

# systemctl stop zabbix-server zabbix-agent

Делаем дамп базы данных. В нём хранится вся информация по мониторингу, которую нужно перенести.

Zabbix-export

Этот дамп нужно перенести на новый сервер. Можете использовать любой привычный для вас способ. В простых случаях я предпочитаю scp:

Zabbix-export

10.1.3.19 — ip адрес нового сервера, на который переносим Zabbix. На старом сервере службу zabbix-server больше не запускаем.

Переходим на новый сервер, распаковываем архив базы данных:

# gunzip ~/zabbix.sql.gz

Открываем консоль MySQL и восстанавливаем дамп в базу данных Zabbix:

# mysql -u root -p

Zabbix-export

Дожидаемся окончания заливки. Это может длиться очень долго, если база большая.

После того, как загрузится дамп, можно зайти в веб интерфейс нового сервера и убедиться, что всё восстановлено и сервер выглядит также, как на старом месте. Если всё ОК, то выключайте старый сервер мониторинга и больше не включайте с этим IP. А на новом настройте IP адрес старого и тоже для верности перезагрузите.

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

Эффект

Давайте сначала посмотрим на эффект.

Чтобы увидеть экспортируемую форму

Zabbix-export

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

Zabbix-export

Zabbix-export

После нескольких потоков оптимизацию данные вычисления займут около 4 секунд.

Zabbix-export

Zabbix-export

Подготовка к переносу Zabbix Server

Первое, что вам нужно сделать для переноса Zabbix Server — установить точно такую же версию на новый сервер. Если переносите Zabbix Server 5.0, то на новый сервер устанавливаете тоже 5.0. У меня есть подробная инструкция по установке Zabbix Server.

Вам нужно не только установить и подготовить сам сервер, но и перенести все конфигурационные файлы и скрипты со старого сервера на новый. Можно просто скопировать с перезаписью дефолтных конфигов. А так же создать базу данных MySQL или PostgreSQL, в зависимости от того, что используете, с таким же именем, пользователем и паролем, как на старом сервере. Это не обязательно, но так будет удобнее. Не придётся конфиг сервера менять.

Когда закончите, можете запустить Zabbix Server на новом сервере и зайти в веб интерфейс. Если вас встретит установщик, значит всё сделали правильно. Можно выполнить чистую установку и убедиться, что всё готово, веб интерфейс работает. В это же время советую внимательно посмотреть и перенести со старого сервера всё, что может пригодиться — external scripts, задачи cron, настройки sudoers и многое другое, что могло использоваться в процессе эксплуатации.

Если вы используете русский язык в веб интерфейсе, то в Debian или Ubuntu не забудьте добавить локаль ru_RU:

# dpkg-reconfigure locales

Zabbix-export

И далее добавьте ru_RU.UTF-8. Ставить по умолчанию её не обязательно.

В данном случае я выполнил достаточно простой перенос Zabbix Server с условно не большой базой данных, которую можно снять и загрузить обычным дампом, организовав на некоторое время простой службы. Если у вас слишком большая база, либо длительный простой недопустим, то надо использовать другие подходы. Тут уже я не могу давать каких-то советов, потому что вам самим надо разбираться, что именно подойдёт конкретно вам. Возможно имеет смысл поднять реплику базы и перенести её таким образом, а потом сделать slave мастером. У меня есть статья по настройке master-slave репликации MySQL.

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

Итоги

Мы смогли через Ansible развернуть много копий Zabbix-server и Zabbix-agent2 со своими настройками, а также скопировать конфиг с основного Zabbix на другие хосты с помощью одной библиотеки pyzabbix.

Оцените статью
Хостинги