Zabbix Moscow Meetup 2016
Доклад Николая Самосвата из Social Discovery Ventures:
"Автоматизация мониторинга распределенной сети подразделений"
В докладе Николай рассказал о своем опыте мониторинга гео-распределенной сети подразделений. О том, каким образом полностью автоматизировали мониторинг в достаточно крупной инсталляции. Также кратко упомянул о другой инсталляции Zabbix (тоже мониторинг распределенной сети), в которой более 13 тысяч подразделений и около двух миллионов хостов.
2. О компании «Магнит»
• Сеть магазинов «Магнит» - ведущая розничная сеть по торговле
продуктами питания в России
• Магазины розничной сети «Магнит» расположены в 2 361 населенном
пункте Российской Федерации.
• Зона покрытия магазинов растянулась от Пскова до Нижневартовска, и
от Архангельска до Владикавказа.
6. API
Скрипты автоматизации 4 php scripts
cron – every 2h
Общая схема - Источники данных
VPN CONTROL
Управление каналами
связи подразделений
ACTIVE DIRECTORY
Атрибуты подразделений,
хостов, пользователей
HOSTS.CSV
Матрица
настройки хостов
на подразделениях
HELP DESK
Управление
специалистами
тех. поддержки
7. Скрипт UNITS
Общая схема – Создание объектов
Скрипт HOSTS
Скрипт USERS
Скрипт VHOSTS
Proxy
Discovery
Groups
Visible name
Templates
interfaces
Name & Alias
Media Types
Groups
Host
Templates
Macros
8. Скрипт1-UNITS
Создание записей о подразделении
Запрос списка
подразделений
Список кодов [CODE]
подразделений
VPN CONTROL
- Код подразделения
- Список провайдеров
- Состояние VPNСоздание / обновление
- Zabbix Proxy
- Host group
- Discovery rule
Поиск OU содержащего
[CODE] в имени
Атрибуты подразделения
ACTIVE DIRECTORY
- Имя подразделения
- Сеть подразделения
- Часы работы
- User group
- Maintenance period
9. Результат работы скрипта UNITS
При появлении в сети компании нового подразделения ГМ Простоквашино с кодом 992233
• Запись о zabbix-proxy с именем [CODE]: 992233
• Правило обнаружение: 992233 (ГМ Простоквашино)
Подсеть: 10.1.1.0/23
Работа через прокси: 992233
• Создан период обслуживания: 992233 (ГМ Простоквашино)
Интервал: с 23 до 23:30
Для группы хостов: 992233 (ГМ Простоквашино)
• Группа хостов c именем [CODE]([Name]): 992233 (ГМ Простоквашино)
• Группа пользователей с именем «Получатели [CODE]([Name])»
Получатели 992233 (ГМ Простоквашино)
10. Тем временем на подразделении
1. Тех. поддержкой развернут сервер, с предустановленным Zabbix-Proxy
2. Автоматически настраивается Zabbix-Proxy
echo Hostname=[CODE] >> /etc/zabbix/zabbix_proxy.conf
systemctl restart zabbix-proxy
3. Начинается сетевое обнаружение хостов
3. Все обнаруженные хосты добавляются в состоянии «Деактивирован»
11. Результат работы сетевого обнаружения
Обнаруженные хосты имеют:
1. Неюзабельное имя = [system.hostname] или [IP]
BKP992233
10.2.3.4
2. Деактивированное состояние
3. Включены только в группу Discovered hosts
4. Отсутствуют метрики и триггеры
12. API
Скрипты автоматизации 4 php scripts
cron – every 2h
Источники данных – HOSTS.CSV
VPN CONTROL
Управление каналами
связи подразделений
ACTIVE DIRECTORY
Атрибуты подразделений,
хостов, пользователей
HOSTS.CSV
Матрица
настройки хостов
на подразделениях
HELP DESK
Управление
специалистами
тех. поддержки
13. Матрица хостов (HOSTS.CSV)
IPADDR IPMI SNMP PREFIX GROUP TEMPLATE
xxx.xxx.xxx.1 0 0 Terminal Серверы - Terminal TMPL_TERM
xxx.xxx.xxx.2 1 1 Backup Серверы - Backup TMPL_BACKUP
… … … ... ... ...
xxx.xxx.xxx.130 0 1 Wi-Fi Оборудование - Сеть TMPL_WIFI
... ... ... ... ... ...
xxx.xxx.xxx.210 0 0 ПК Рабочие станции TMPL_WS
• Инфраструктура всех подразделений стандартизирована.
• Сервера и оборудование на подразделении настроено согласно стандарта IP-адресов.
14. Обработка хостов после обнаружения
Формируем массив
с данными матрицы хостов
Поиск OU содержащего
подсеть в атрибутах
Получение атрибутов
HOSTS.CSV
- 4-й октет IP-адреса
- Интерфейсы
- Префикс
- Группа
- Шаблон
ACTIVE DIRECTORY
- Имя подразделения
- Код подразделения
Скрипт2-HOSTS
- Видимое имя хоста
- Добавление интерфейсов
- Добавление в группы
Получение 2 списков
хостов с их IP-адресами
Запрос списков хостов
групп «Discovered hosts»
и «Обработано»
Обновление хостов:
- Назначение шаблонов
Читаем файл
15. Результат работы скрипта HOSTS
Все обработанные хосты имеют:
1. Видимое имя [PREFIX] [CODE] [NAME]
Backup 992233 (ГМ Простоквашино)
2. Дополнительные интерфейсы SNMP IPMI JMX, по необходимости
4. Включены в группы:
- по территориальному признаку: 992233 (ГМ Простоквашино)
- по функциональному признаку: Серверы – BACKUP
- служебную Обработано
5. Назначенные шаблоны:
TMPL_BACKUP
3. Активированное состояние
16. Управление пользователями
Поиск объекта c нужным
email в атрибутах
Логин и ФИО пользов.
HELP DESK
- Email
- Телефон
- Должность
- Подразделение
ACTIVE DIRECTORY
- sAMAccountName
- Ф.И.О.
Скрипт3-USERS
- УЗ пользователя
- Добавление в группы
- Медиатипы
Список групп
пользователей
«Получатели [CODE]»
Запрос списка групп
пользователей
«Получатели [CODE]»
Создание / обновление
Запрос пользователей
принадлежащих
подразделению [CODE]
Список пользователей
подразделения CODE
с атрибутами
17. Результат работы скрипта USERS
• Пользователи могут логиниться в Zabbix под доменной УЗ
• Пользователям назначены актуальные медиатипы (sms+email)
• Пользователи включены в различные группы:
- по территориальному признаку: Получатели 992233 (ГМ Простоквашино)
- по должностям: Системотехники
Начальники отделов
Региональные руководители
• В Zabbix присутствуют все пользователи технической поддержки ГМ (около 1 тыс)
18. Скрипт-VHOSTS
Виртуальные хосты
Запрос данных о
провайдерах
Код подразделения
Имена провайдеров
VPN CONTROL
- Код подразделения
- Список провайдеров:
Имя
Номер канала
Создание/обновление
- Назначение шаблонов
- Макросы хоста с именами
провайдеров
Поиск OU содержащего
[CODE] в имени
Имя подразделения
ACTIVE DIRECTORY
- Имя подразделения
- Код подразделения
- Включение в группы
Запрос списка хостов
по маске providers*
Получение списка хостов
- Видимое имя
19. Результат работы скрипта VHOSTS
Все обработанные хосты имеют:
• Видимое имя на основе Провайдеры [CODE] [NAME]
Провайдеры 992233 (ГМ Простоквашино)
• Актуальные имена провайдеров, задаваемые через макросы хоста
{$PROV-1} = SkyNet
{$PROV-2} = Virgin
• Включены в группы:
- по территориальному признаку: 992233 (ГМ Простоквашино)
- по функциональному признаку: Оборудование – Провайдеры
• Назначенные шаблоны:
TMPL_PROV-1
TMPL_PROV-2
20. ИТОГОВЫЙ РЕЗУЛЬТАТ
Полностью автоматически:
• Создаются «подразделения» в Zabbix
• Настраиваются хосты на подразделениях (как реальные так и виртуальные)
• Создаются пользователи, получающие уведомления по подразделениям
Требуется ручная работа:
• Создание или корректировка шаблонов
• Корректировка матрицы хостов (hosts.csv)