Общие слова
SA (ServiceActivation)
Отвечает за работу скриптов и механизма сбора и обработки данных с оборудования.
Activator
Ходит по оборудованию и собирает разную полезную информацию, по поручению различных служб. Для этого пользуется множеством профилей для оборудования, которые лежат в <noc>/sa/profiles/.
Discovery
Занят дирижированием. Сам информацию не собирает (озадачивает по этому поводу Activator'ы), занят только обработкой результатов задач и управлением задачами.
За время эволюции в нём собрались все задачи, связанные с первичной обработкой информации перед тем, как положить её в базу.
Scheduler
Выделенный планировщик. Используется для выполнения различных действий, требующих отложенного выполнения.
Рекомендуется держать один планировщик.
FM (Fault Manager)
Отвечает за сбор событий с оборудования и их преобразование в аварии.
Correlator
Волшебный сервис. Берёт события из базы и, каким-то образом, соотносит их между собой (здесь явно прослеживает магический след). Делает он это посредством странных магических приемов ведомых только избранным. И в конце получается Alarm.
Также в нём работает алгорит поиска корня по топологии и склейки событий.
Коррелятор может быть только один
Classifier
Отвечает за классификацию входящего потока сообщений от syslog-collector и snmp-collector согласно записанным в НОКе правилам. После классификации в базу ложися Event, т.е. событие.
Syslogcollector
Принимает сообщений на порту 514/udp, соотносит их с объектом (MO) и отправляет в сторону коррелятора.
Trapcollector
Принимает SNMP Trap на порту 162/udp, соотносит их с объектом (MO) и отправляет в сторону коррелятора.
Ping
Пингует хосты. В случае изменения статуса (хост упал или поднялся) отправляет сообщение в сторону классификатора.
При выставленной галочке RTT. Отправляет в сторону PMWriter'a значение RTT.
Omap
Сервис для служебных нужд. Отдаёт ID для IP.
Необходим для сервисов Ping и collector, по входящим сообщениям они соотносят IP адрес и MO Id в БД, приписывая событие к конкретной железке.
Escalator
Занимается взаимодействием с внешними системами в части Эскалации в них аварий (за отправку писем отвечает mailsender). Для этого требует написанный модуль интеграции и немного шаманства.
PM (Performance Manager)
PMwriter
Записывает поступающую информация в хранилище (InfluxDB). Информация поступает посредством NSQ, через канал pmwriter
CHWriter
Записывает поступающую информация в хранилище (Clickhouse). Информация поступает посредством NSQ, через канал pmwriter
Grafana
Занята тем, что поставляет графики для показа. Интегрирована в web-интерфейс NOC'a - попасть к ней можно тыкнув на кнопку Dashboard в верхней линейке Management Object.
Данные для графиков берёт из InfluxDB.
GrafanaDS
Предоставляет API для запросы Аварий, по устройству. Используется для вывода информации об авариях - Аннотаций (Annotation) в Графане.
Web
Отвечает за пользовательский интерфейс и REST API.
Login
Окно входа в систему. Через него проходит процесс аутентификации пользователей. Просит имя пользователя и пароль, после подтверждения правильности, выдаёт индульгенцию на дальнейшие действия.
Если не установить данный сервис - то пользоваться веб-ресурсами не удастся
Web
Основной интерфейс взаимодействия с НОКом. Даёт возможность производить настройку и показывает итоги работы.
Card
Отвечает за альтернативный веб-интерфейс - карточки. Представляют собой ReadOnly странички, показывающие информацию по оборудованию, сегментам, авариям.
BI
Специальный интерфейс для работы с архивом аварий, перезагрузок и метрик. Для себя требует наличия ClickHouse и CH_datasource.
CH_datasource
Поставляет словари (dictionary) для ClickHouse. Необходим для использования BI.
Nginx
Проксирующий Веб-сервер.
DB (Database)
Обеспечивают сохранение информации собранной SA и предоставление её остальным сервисам.
InfluxDB or ClickHouse
Служит для хранения информации PM. Данные попадают туда несколькими путями:
- Сервис PMWriter - данные ему поступают от активаторов посредством очереди NSQ.
- Сервис Telegraf - специальный сервис, которые считывает счётчики производительности системы и сервисов NOC'a.
MongoDB
Занимается тем что хранит. Всё. Что не хранит PostgreSQL и InfluxDB. В частности:
- Конфигурации оборудования
- Данные инвентори (модели, интерфейсы, лог мак адресов)
- Данные для расписаний scheduler
- Данные FM
PostgreSQL
Занимается тем, что хранит всё что не хранит Монга.
- Пользователей
- IPAM и DNS
- Managed objects
Redis
Не используется.
NSQ
Предназначен для передачи сообщений в реальном времени. Состоит из 3 демонов: NSQadmin, NSQD, NSQlookupd. (Подробности)
Его услугами пользуется FM и PM, передавая сообщения с метриками и авариями. В связи с этим NSQD должен быть установлен на каждой Ноде, NSQlookupd минимум на одной.
Utilities
Различные службы, напрямую не задействованные в работе компонентов, но предоставляющие полезный сервис (иногда, крайне полезный)
Dev
При установке добавляет различные инструменты для разработчика: Отладка, ipython и пр.
Mailsender
Отвечает за рассылку уведомлений по e-mail. Сами уведомления получает через NSQ.
Notebook
Ещё один утилитарный сервис для заядлых программистов, как и dev. Предоставляет удобный инструмент для написания своих расширений прямо в веб-интерфейсе. Больше не за чем не замечен.
MRT
Крайне полезный сервис - отвечает за массовое выполнение задач на оборудовании. Задачей может быть как перечень комманд, так и более сложные задачки во взаимодействии с НОКом.
Telegraf
Внешний компонент - ставится на хост с НОКом и собирает различную информацию по производительности, как первого, так и второго.
Инфраструктура
Различные внешние службы, пригождающиеся при выполнении редких задач (н-р отказоустойчивости).
Consul
Крайне важная служба - отвечает за регистрацию сервисов НОКа. По умолчанию ставится на все хосты. В башне же необходимо отметить место Мастер ноды (поставить 1).
Сonsultemplate
Сервисы запускаются с динамически выдаваемым портом. Им это не мешает взаимодействовать между собой (при запуске они регистрируются в Consul), а вот внешнему миру с этим жить сложно. Эта служба ходит в Consul и актуализирует информация в конфиг файлах для Nginx, Clickhouse.
HAproxy и keepalived
Отвечают за отказоустойчивость разных служб при дублировании сервисов. Нужны изредка и кто хочет усложнить себе жизнь.
Patroni
Специальная служба, которая обеспечивает резервирование Postgres. Нужна изредка и кто хочет усложнить себе жизнь.