SOP по ежедневному использованию Zabbix в инфраструктуре

Обзор

В этой SOP описаны шаги по ежедневной эксплуатации Zabbix

Контактная информация

Владелец

Команда инфраструктуры Fedora

Контакты

#fedora-admin, sysadmin-main, sysadmin-noc

Назначение

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

Обзор

Zabbix является основным инструментом мониторинга для инфраструктуры Fedora. Структура:

  • У нас есть производственный сервер для основной инфраструктуры

    • URL-адрес: [1]

    • Уведомления отправляются в интерфейс (для уровня Warning или ниже)

    • Уведомления также отправляются в #noc:fedoraproject.org (для уровня Average или выше)

  • У нас есть тестовый сервер для тестирования

    • URL-адрес: [2]

    • Уведомления отправляются в интерфейс (для уровня Warning или ниже)

    • Уведомления также отправляются в #fedora-zodbot:fedora.im (для уровня Average или выше)

Для временных изменений мы используем интерфейс Zabbix — в этом документе описаны основные причины их применения в повседневной работе.

Для постоянных изменений мы используем Ansible для их записи/развёртывания — см. SOP добавления шаблона Zabbix в Ansible для получения подробной информации о постоянных изменениях.

Общие задачи для инфраструктуры

Подтверждение/закрытие оповещения

Это можно сделать тремя способами. В любом случае перейдите к форме Обновления либо:

  • нажав кнопку Обновить рядом с оповещением на странице Панели управления или на странице Мониторинг > Проблемы.

  • нажав на оповещение в Matrix, а затем Обновить на странице сведений о событии.

После открытия формы Обновления у вас есть три варианта:

  1. Если оповещение известно и требует вмешательства команды (например, вышел из строя диск или что-то подобное), установите флажок Подтвердить.

  2. Если это то, что, как мы ожидаем, исчезнет, но нам нужно повторное оповещение, если этого не произойдёт (например, нагрузка на прокси), установите флажок Подавить и выберите длительность.

  3. Если проблема уже решена (например, изменилось количество пакетов на хосте), установите флажок Закрыть проблему.

В любом случае описание будет полезно остальной команде.

Частые ручные вмешательства

Существуют некоторые частые оповещения, которые требуют ручной обработки:

  • Datanommer: очередь FMN устарела:

    • Это отслеживает систему по адресу https://notifications.fedoraproject.org, проверяя время последнего редактирования правила. Создайте/удалите правило для себя, чтобы инициировать обновление и снять оповещение.

  • Datanommer: очередь Bugzilla устарела:

    • Подключение к очереди Stomp время от времени обрывается, его нужно «подтолкнуть». Перезапустите под в проекте fedmsg2bugzilla в OpenShift

  • Datanommer: очередь подписи RPM устарела:

Отключение/включение хоста

Иногда нам нужно удалить хост из-за проблем с машиной. Для этого:

  1. Найдите хост в боковой панели поиска.

  2. Нажмите на имя хоста (в столбце «Хосты» результатов поиска).

  3. Прокрутите до конца формы хоста и снимите флажок Включён.

  4. Сохраните хост.

Чтобы вернуть хост, снова отредактируйте и снова установите флажок Включён.

Оповещения не будут записываться, и сбор данных также не будет выполняться. Если сбор данных требуется во время простоя, см. раздел «Окна обслуживания» ниже.

Окна обслуживания

Zabbix может планировать периоды времени, в которые приостанавливаются оповещения и, при необходимости, сбор данных для одного или нескольких хостов. Это можно запланировать заранее (например, для переноса хостов на новое оборудование) или выполнить по мере необходимости, для одного хоста или для всех.

Обычно окно обслуживания в интерфейсе Zabbix создаётся следующим образом:

  1. Перейдите в Сбор данных > Обслуживание

  2. Нажмите Создать период обслуживания (в правом верхнем углу)

  3. Укажите имя, тип, время начала/окончания и необязательное описание

  4. Для хостов/групп хостов выберите то, что вам нужно

  5. Сохраните окно обслуживания

Обратите внимание, что триггеры всё равно срабатывают, если даже один хост в триггере не находится в обслуживании. В настоящее время это не относится к большинству наших триггеров (почти все они являются однихостными), но знать об этом стоит.

Плейбук для «затыкания» одного хоста

Для перевода одного хоста в режим обслуживания существует плейбук:

  • ansible-playbook /srv/web/infra/ansible/playbooks/zabbix_shush_host.yml -e "target=sundries02.stg.rdu3.fedoraproject.org"

По умолчанию окно составляет 1 час, вы можете добавить '-e "time=120"' для изменения. Вы также можете добавить '-e "state=absent"', если хотите закрыть окно досрочно.

Если вы хотите быстро добавить больше хостов в «затыкание», часто проще найти созданное окно (Сбор данных > Обслуживание) и отредактировать его, затем добавить больше имён хостов или групп хостов в соответствующие поля.

Плейбук/скрипт для «затыкания» всех хостов

Во время крупного отключения может потребоваться «заткнуть» всё. В Ansible есть скрипты (и плейбук), которые можно использовать для отключения всех хостов для оповещений (но продолжения сбора данных) и последующего восстановления. См.:

«Затыкание» в крайнем случае

Если шквал уведомлений всё ещё продолжается, то в крайнем случае можно отключить типы носителей:

  1. Перейдите в Оповещения > Типы носителей

  2. Там, где рядом с (например) Matrix Webhook указано «Включён», нажмите на это

  3. Должно измениться на «Отключён»

Обязательно верните обратно после того, как шквал стихнет.

Построение графиков данных

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

  1. Перейдите в Мониторинг > Последние данные

  2. Найдите интересующий хост

  3. Прокрутите вниз, чтобы найти имя элемента (или используйте фильтры элементов по имени/тегу)

  4. Нажмите кнопку «График» справа

  5. Выберите нужный диапазон времени

Для группы хостов интерфейс часто не показывает всё при поиске групп хостов, поэтому процесс следующий:

  1. Перейдите в Мониторинг > Последние данные

  2. Найдите одно имя хоста в группе (например, proxy01)

  3. Найдите интересующий элемент (например, средняя нагрузка)

  4. Скопируйте элемент в поле поиска Имени и измените поиск по Хостам на поиск по Группам хостов (например, Прокси)

  5. Отметьте хосты, которые хотите сравнить, и нажмите «Показать график» или «Показать составной график» в зависимости от того, как вы хотите его видеть

Если вы исследуете оповещение, вы можете получить график соответствующего элемента непосредственно из Проблемы (на Панели управления или странице сведений о событии). Нажмите на проблему, наведите курсор на Историю, затем выберите элемент, и вы попадёте непосредственно на график для этой проблемы.

Ресурсы