Настройка интеграции
На данном этапе настроим интеграцию Monq с системой мониторинга Zabbix. В рамках данной интеграции мы будем получать информацию о всех узлах сети в области видимости выделенной учетной записи Zabbix, а также при появлении событий в Zabbix они автоматически будут попадать в Monq.
Подробное руководство по настройке потоков данных доступно в соответствующем разделе руководства Monq.
Ручные действия по настройке Потока данных, которые представлены ниже в документе, можно автоматизировать с помощью Мастера настройки и установить контент-пак "Zabbix Топология&Обработка событий" в несколько кликов.
Добавление нового потока
-
Перейдите в раздел Сбор данных (ETL) - Потоки данных через основное меню
-
Нажмите кнопку Добавить поток в верхнем правом углу.
-
Заполните поля:
- Владелец - Рабочая группа, которой принадлежит поток данных
- Название потока (например, "Zabbix Demo")
- Описание (необязательно)
- Импорт (необязательно)
-
Нажмите Добавить - откроется страница созданного потока данных.
-
В параметрах конфигурации созданного потока необходимо добавить и заполнить следующие настройки:
login
- логин подключения к Zabbixpassword
- пароль подключения к ZabbixapiUri
- URL к Zabbix APIinsecureMode
- необходимость проверки валидности TLS сертификатаbuildCMDB
- параметр, включающий возможность автоматически создать РСМ
-
Сохраните внесенные изменения на вкладке "Настройки" и перейдите на вкладку "Конфигурация" для добавления заданий по сбору данных
-
Нажмите Добавить задание, чтобы добавить следующие задания:
-
Zabbix - Api Connection Check - задание проверки состояния подключения к API Zabbix
Метка агента - SharedAgents
Запуск - Расписание CRON
Рекомендуемый интервал запуска 30 секунд
name: Zabbix - Api Connection Check
jobs:
- name: Check connection
steps:
- plugin: zabbixCheckConnection
with:
apiUri: $.vars.stream.params.apiUri
login: $.vars.stream.params.login
insecureMode: $.vars.stream.params.insecureMode
timeout: $.storage.timeout
with-secured:
password: $.vars.stream.params.password
auth: $.storage.auth
outputs:
result: '{ "status": "{{ _outputs.status }}", "error": "{{ _outputs.error }}" }'
store:
auth: $._outputs.auth -
Zabbix - Version Check - задание проверки версии Zabbix
Метка агента - SharedAgents
Запуск - Расписание CRON
Рекомендуемый интервал запуска 5 минут
name: Zabbix - Version Check
jobs:
- name: Check version
steps:
- plugin: zabbixCheckVersion
with:
streamId: $.vars.stream.id
apiUri: $.vars.stream.params.apiUri
login: $.vars.stream.params.login
insecureMode: $.vars.stream.params.insecureMode
timeout: $.storage.timeout
with-secured:
password: $.vars.stream.params.password
auth: $.storage.auth
outputs:
version: '{ "Version": "{{ _outputs.version }}" }'
store:
auth: $._outputs.auth
artifacts:
- name: streamLabels
send-to:
system:
keys:
- cl.stream.labels-update
data: '{ "labels": {{ outputs.version }}, "streamId": {{ vars.stream.id }} }' -
Zabbix - Events Data Flow - задание получения событий из Zabbix
Метка агента - SharedAgents
Запуск - Расписание CRON
Рекомендуемый интервал запуска 10 секунд
name: Zabbix - Events Data Flow
jobs:
- name: Get events
steps:
- plugin: zabbixEventsDataFlow
with:
streamKey: $.vars.stream.key
apiUri: $.vars.stream.params.apiUri
login: $.vars.stream.params.login
insecureMode: $.vars.stream.params.insecureMode
eventsCount: $.storage.eventsCount
timeout: $.storage.timeout
lastEventId: $.storage.lastEventId
with-secured:
password: $.vars.stream.params.password
auth: $.storage.auth
store:
lastEventId: $._outputs.lastEventId
auth: $._outputs.auth -
Zabbix - Fetch Hosts - задание получения информации об узлах сети Zabbix
Метка агента - SharedAgents
Запуск - Расписание CRON
Рекомендуемый интервал запуска 5 минут
name: Zabbix - Fetch Hosts
jobs:
- name: Get hosts
steps:
- name: Auth in Zabbix
plugin: httpPlugin
with:
url: $.vars.stream.params.apiUri
method: POST
mediaType: application/json
redirects: true
insecure: $.vars.stream.params.insecureMode
headers:
Content-Type: application/json
body: >
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"username": "{{ vars.stream.params.login }}",
"password": "{{ vars.stream.params.password }}"
},
"id": 1
}
outputs:
token: $._outputs.responseData.result
- name: Get hosts
plugin: httpPlugin
with:
url: $.vars.stream.params.apiUri
method: POST
mediaType: application/json
redirects: true
insecure: $.vars.stream.params.insecureMode
headers:
Content-Type: application/json
body: >
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["host", "name"],
"filter": {
"output": "extend"
},
"selectGroups": "extend"
},
"auth": "{{ outputs.token }}",
"id": 1
}
outputs:
result: $._outputs.responseData
artifacts:
- data: >
{
"ZabbixHosts": {{ outputs.result }},
"BuildCMDB": {{ vars.stream.params.buildCMDB }}
}
send-to:
api:
uri: "{{ baseUri }}api/public/cl/v1/stream-data"
headers:
x-smon-stream-key: $.vars.stream.key
media-type: application/json
-
-
Сохраните настройки конфигурации потока данных
-
Запустите настроенный поток данных соответствующей кнопкой в правом верхнем углу экрана
На этом подключение потока данных завершено. Можно дождаться первых событий и проанализировать полученные данные на экране События и логи.