Ad Widget

Collapse

Вопрос про развертывание zabbix и отказоустойчивость

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dengus
    Junior Member
    • Jul 2018
    • 1

    #1

    Вопрос про развертывание zabbix и отказоустойчивость

    Добрый день!

    Подскажите как реализовать схему мониторинга на Zabbix в распределенной сети. Есть офисы с удаленными сетями, каналы с дублированием от 10 до 100 мегабит.

    Я так понимаю поднять сервер Zabbix в основной сети. В удаленных сетях поднять прокси сервера. Сервер и прокси - поднять на физических или виртуальных (Hyper-V) серверах?

    Напрашивается вопрос отказоустойчивости мониторинга.

    Если поднять один сервер Zabbix, то в случае его падения имеем вероятность потратить достаточно много времени на его восстановление. Прокси сервера, я так понимаю, продолжат собирать данные, но не будет оповещений по причине не работающего основного сервера.
    В случае отказа какого-либо прокси в удаленной сети - теряем мониторинг всей удаленной сети.
    Как реализовать бесперебойность мониторинга? Поднимать два основных сервера Zabbix, не связанных друг-с-другом, и по два прокси сервера в удаленных сетях? Полное дублирование работы. Но будут расходы в случае физического размещения серверов/прокси и оповещения также будут дублированы. Насколько я понимаю архитектура Zabbix не поддерживает кластеризацию, а прокси необходимы для снижения нагрузки на сервер. А мне хотелось-бы именно отказоустойчивое решение. Реализовать кластеризацию двух серверов посредством heartbeat и просто переключать кластерный IP-адрес сервера? Тогда потребуется внешнее хранилище БД. В случае же необходимости восстановления БД из дампа через несколько лет можно потратить много времени на восстановление. При этом мониторинг будет недоступен. Неужели реализация - два сервера и по два прокси в удаленных сетях - решение отказоустойчивого мониторинга?

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

    Как поступить?
  • kernbug
    Senior Member
    • Feb 2013
    • 330

    #2
    Здравствуйте,

    2 сервера БД (GTID репликация Master-Master, начать следует с партиционированной БД сразу)
    2 сервера Zabbix (1 VIP с использованием pacemaker/corosync/, схема active/backup)
    N-ое количество Proxy по 1 на удаленном узле (локальное хранение в случае отказа ВК)
    Минимум недельный полный бекап БД + инкрементальные каждый день, отдельно бекап настроек конфигурационных данных и схем таблиц.
    Все прокси и агенты в активном режиме.

    С этого Вам следует начать. Конечно, Вы можете сделать 2 независимых сервера, собирать данные одновременно, уведомления обрабатывать через rabbitmq/kafka для исключения дублирования, но в обслуживании это будет странным решением.

    ​​​​В случае же необходимости восстановления БД из дампа через несколько лет можно потратить много времени на восстановление.
    БД восстанавливается очень просто - заливаем схему и настройки (RTO), после данные (RPO). Если у Вас БД больше 1ТБ, то уже следует рассматривать решения предлагаемые поставщиками SAN/DAS для создания резервных копий или асинхронных удаленных реплик. И еще нюанс, если Вы ни разу не восстановили бекап после его создания до ЧП, то с 100% вероятностью у Вас нет бекапа.
    Last edited by kernbug; 05-07-2018, 06:55.

    Comment


    • dengus
      dengus commented
      Editing a comment
      Понятно про Mysql кластер на двух серверах.
      2 сервера Zabbix с pacemaker/corosync - служба Zabbix при этом будет работать только на одном сервере и при сбое подниматься на втором с одновременным переносом кластерного IP-адреса на рабочую ноду?

      Прокси все-таки по одному в удаленных сетях, а если сбой не в линке до сервера, а в самом прокси? Теряем мониторинг всей удаленной сети на время восстановления прокси. Или агентам прописывать и прокси и сервер одновременно, чтобы при отказе прокси данные продложали идти на сервер, тогда зачем вообще прокси, да и вопрос как Zabbix воспримет одновременно одни и те же данные с одного агента/узла, но принятые и напрямую и через прокси?
  • kernbug
    Senior Member
    • Feb 2013
    • 330

    #3
    2 сервера Zabbix с pacemaker/corosync - служба Zabbix при этом будет работать только на одном сервере и при сбое подниматься на втором с одновременным переносом кластерного IP-адреса на рабочую ноду?
    Именно так.
    Прокси все-таки по одному в удаленных сетях, а если сбой не в линке до сервера, а в самом прокси?
    Агенты могут копить данные для отправки прокси или серверу, историю Вы не потеряете.
    ​​​​​​​Или агентам прописывать и прокси и сервер одновременно, чтобы при отказе прокси данные продложали идти на сервер, тогда зачем вообще прокси, да и вопрос как Zabbix воспримет одновременно одни и те же данные с одного агента/узла, но принятые и напрямую и через прокси?
    В настройках узла сети определяется прокси или сервер мониторит узлы. Прописать можно несколько серверов, но получать данные будет тот сервер, у кого соответствуют настройки для хоста.

    Comment


    • dengus
      dengus commented
      Editing a comment
      Спасибо за помощь
Working...