Интеграции (источники данных)
Подключение источников данных в Monq осуществляется через настройку Потока данных.
Подробное руководство по работе с Потоками данных доступно по ссылке.
Сетевые взаимодействия типовых интеграций
Пример интеграции | Входящие соединения (порт/протокол) | Исходящее соединение (порт/протокол) | Примечание | Используемый шаблон |
---|---|---|---|---|
Zabbix | 80,443/tcp | Подключение к API Zabbix | Zabbix default | |
Zabbix (webhooks) | 80,443/tcp | Отправка данных в Monq | Default template | |
Zabbix (metrics) | 80,443/tcp | Отправка метрик в Monq | Default template | |
SCOM | 1433/tcp | Подключение к СУБД SCOM | SCOM default | |
Prometheus | 80,443/tcp | Отправка данных в Monq | Prometheus default | |
ntopng | 80,443/tcp | Отправка данных в Monq | ntopng default | |
Nagios XI | 80,443/tcp | Подключение к API Nagios XI | Nagios default | |
Nagios Core | 80,443/tcp | Отправка данных в Monq | Default template | |
Fluentd (Fluent Bit) | 80,443/tcp | Отправка данных в Monq | Default template | |
Logstash | 80,443/tcp | Отправка данных в Monq | Default template | |
VMWare vCenter | 80,443/tcp | Подключение к API vCenter | vCenter default |
Подключение источника Zabbix
Для подключения источника данных типа Zabbix, проведите конфигурацию со стороны Zabbix:
- Создайте группу пользователей с правами на чтение к тем узлам сети, данные о которых хотите направлять в Monq. Для создания перейдите в раздел Администрирование -> Группы пользователей и нажмите Создать группу, далее введите имя и выберите группы узлов сети во вкладке Права доступа.
- Создайте пользователя в созданно й группе. Для этого перейдите в раздел Администрирование -> Пользователи и нажмите Создать пользователя, в открывшемся окне введите данные пользователя и выберите группу, в которую его необходимо добавить. Скопируйте псевдоним и пароль пользователя для дальнейшей настройки.
Далее перейдите на страницу Потока данных Monq с шаблоном конфигурации Zabbix default, на вкладке Настройка заполните поля:
apiUri
- должен содержать URL в форматеhttp://zabbix.example.com/api_jsonrpc.php
login
- логин Zabbixpassword
- пароль Zabbix
При необходимости можно отключить проверку достоверности TLS сертификата веб-сервера Zabbix. Для этого активируйте соответствующий переключатель insecureMode в настройках Потока данных.
и нажмите Сохранить.
При необходимости произведите настройку интервалов запуска для Заданий:
- Zabbix - Events Data Flow (по умолчанию - 10 секунд)
- Zabbix - Api Connection Check (по умолчанию - 30 секунд)
- Zabbix - Version Check (по умолчанию - 5 минут)
Нажмите Запустить в правой верхней области с траницы для включения Потока данных.
В случаях возникновения ошибки в Потоке данных Zabbix "The SSL connection could not be established, see inner exception." это означает, что Monq не может установить защищенное соединение с API Zabbix по причине отсутствия в Monq корневого сертификата SSL (CA certificate), которым подписан SSL-сертификат сервера Zabbix.
Для решения данной проблемы необходимо добавить в хранилище сертификатов Monq корневой сертификат, которым подписан SSL-сертификат сервера Zabbix.
Пример команды, для добавления CA сертификата в хранилище monq-ca-certificates
:
kubectl get secrets -n production monq-ca-certificates -o json | jq --arg mycert "$(cat newCA.pem | base64)" '.data."newCA.pem"=$mycert' | kubectl apply -f -
где файл newCA.pem
содержит непосредственно корневой сертификат
Пример интеграции Zabbix через отправку webhook
Используя данный пример, вы можете реализовать приём данных из любого источника, поддерживающего Webhook.
- Добавьте новый Поток данных или перейдите на страницу настройки существующего потока данных с шаблоном конфигурации Default template и скопируйте API-ключ – он понадобится позднее.
- Настройте отправку сообщений из источника данных (в данном случае – Zabbix):
-
В веб-интерфейсе Zabbix 5.0 перейдите в Администрирование > Способы оповещений и создайте новый тип оповещения. Введите имя, выберите тип Webhook. Заполните таблицу Параметры – содержимое JSON-файла, который будет направлен в Monq:
EventID: {EVENT.ID}
EventName: {EVENT.NAME}
EventSeverity: {EVENT.SEVERITY}
HostName: {HOST.NAME}
TriggerStatus: {TRIGGER.STATUS} -
В поле скрипт скопируйте код на языке JavaScript, формирующий и отправляющий POST-запрос в API вашего пространства Monq:
var req = new CurlHttpRequest();
params = JSON.parse(value);
req.AddHeader('Content-Type: application/json');
req.Post('https://{GLOBAL_DOMAIN}/api/public/cl/v1/stream-data?streamKey={API-KEY}', JSON.stringify(params));{GLOBAL_DOMAIN}
– адрес вашего пространства Monq, например, sm.monq.cloud.{API-KEY}
– API-ключ, скопированный в первом пункте.
-
- Сохраните новый способ оповещения. В разделе Настройка -> Действия настройте реагирование на события Zabbix и в качестве операции выберите созданный метод оповещения.
Пример настройки Zabbix для отправки метрик в Monq
Используя данный пример, вы можете реализовать приём метрических рядов из Zabbix.
Конфигурация производится на стороне Zabbix. Monq в данном случае является принимающей стороной.
Описание формата принимаемых данных в Monq.
Поддерживается в версиях Zabbix 6.4 и выше.
В веб интерфейсе Zabbix перейдите в раздел "Администрирование" - "Общие" - "Коннекторы"
и сконфигурируйте коннектор следующим образом:
URL:
https://<MONQ-FQDN>/api/public/mcs/v1/metrics-collector/zabbix/stream-ndjson?streamKey=<API-ключ потока данных>
⚠️ Необходимо, чтобы в конфигурационном файле Zabbix Server был включен хотя бы один экземпляр
StartConnectors
(документация Zabbix).
Пример интеграции с SCOM
Сперва создайте пользователя в базе данных системы SCOM. Для этого подключитесь к целевой базе Operations Manager c помощью клиента СУБД, например, MSSQL, и создайте для нового пользователя:
-
В разделе Общие введите имя пользователя, выберите проверку подлинности SQL Server, введите пароль. Скопируйте имя и пароль – они понадобятся позже.
-
В разделе Роли сервера выберите роль
public
. -
В разделе Сопоставление пользователей выберите роли
db_datareader
иpublic
. -
Проверьте итоговый список прав в Защищаемых объектах – разрешения должны включать
CONNECT SQL
,VIEW ANY DATABASE
,VIEW ANY DEFINITION
. -
Подтвердите создание пользователя – нажмите ОК.
Далее перейдите на страницу настройки потока данных с шаблоном SCOM default и на вкладке Настройка заполните поля:
-
host - Адрес СУБД
-
login - Имя пользователя
-
password - Пароль
-
dbName - Название СУБД -
OperationsManager
-
port - Порт подключения к СУБД -
1433
Нажмите Сохранить.
Нажмите Запустить в правой верхней области страницы для включения потока данных.
Пример интеграции с Prometheus
Перейдите на страницу настройки потока данных с шаблоном Prometheus default и скопируйте API-ключ.
Далее произведите настройку файла alertmanager.yaml
Prometheus:
-
Добавьте
receiver 'web.hook'
:receivers:
- name: 'web.hook'
webhook_configs:
- send_resolved: true
url: 'https://{GLOBAL_DOMAIN}/api/public/cl/v1/stream-data?streamKey={API-KEY}'{GLOBAL_DOMAIN}
– адрес вашего пространства Monq, например, sm.monq.cloud.{API-KEY}
– API-ключ, скопированный со страницы потока данных. -
В блоке
route
добавьте порядок группировкиgroup_by
и способ отправки черезreceiver 'web.hook'
, заполнить ключgroup_by
вручную:route:
group_by: ['<Метки группировки>']
group_wait: 30s
group_interval: 30s
repeat_interval: 1h
receiver: 'web.hook' -
Перезапустите alertmanager.
Пример итогового конфигурационного файла
alertmanager.yaml
global:
resolve_timeout: 5m
route:
group_by: ['ingress']
group_wait: 30s
group_interval: 30s
repeat_interval: 1h
receiver: 'web.hook'
receivers:
- name: 'web.hook'
webhook_configs:
- send_resolved: true
url: 'https://sm.example.ru/api/public/cl/v1/stream-data?streamKey=e4da3b7f-bbce-2345-d777-2b0674a31z65'
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']