Мониторинг Платформы НЕЙРОСС из Zabbix

Version 3.1 by admin on 2026/06/07 17:22
Warning
For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

Часто на объекте или в обслуживающей организации используется Zabbix для контроля технического состояние серверов и сетевого оборудования. При этом бывает удобно получать дополнительно инвентаризационные данные по Платформе НЕЙРОСС или уведомления о любых событиях Платформы НЕЙРОСС прямо в Zabbix. В данном разделе приведены сведения о настройке Платформы НЕЙРОСС и Zabbix для обеспечения такого взаимодействия.

Information

Приведены скриншоты приложения Zabbix версии 7.0. При несовпадении интерфейсов следуйте документации от производителя.

Инструкция по передаче любых данных из Zabbix на Платформу НЕЙРОСС для мониторинга через АРМ Центр приведена в разделе [Мониторинг серверов и сетей: интеграция с Zabbix (агент, SNMP, JMX, IPMI)].

content.png Содержание:

Unknown macro: excerpt. Click on this message for details.


Подготовка данных

Подготовка файла шаблона

Скопируйте код ниже и сохраните в файл формата YAML. Например, - zbx_neyross_templates.yaml.

Information

Обратите внимание на кодировку файла, она должна быть Unix (LF) UFT-8. Специалисты компании ИТРИУМ могут предоставить готовый файл по запросу.

zabbix_export:
  version: '7.0'
  template_groups:
   - uuid: d6f5d86bab264a12b4aa138ba3c8fb38
      name: 'Templates/Access Control'
   - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
      name: Templates/Applications
   - uuid: d37f71c7e3f7469bab645852a69a2018
      name: 'Templates/Video surveillance'
  templates:
   - uuid: ccbf9ca58fdf4d92b1743cd8d4f6b715
      template: 'NEYROSS by HTTP'
      name: 'NEYROSS by HTTP'
      description: |
        This template is designed for the effortless deployment of NEYROSS information extraction by Zabbix via HTTP and doesn't require any external scripts.
       
        Sample device overview page:
        https://www.itrium.ru/
       
        Setup:
       
       1. (not release) Set the user name and password in the '{$PASSWORD}' and '{$USER}' macros.
       
       2. Change other macros according to your camera configuration if necessary.
      vendor:
        name: Itrium
        version: 7.0-0
      groups:
       - name: 'Templates/Access Control'
       - name: Templates/Applications
       - name: 'Templates/Video surveillance'
      items:
       - uuid: 1ff632c0068943b89f3a9d55b44a015a
          name: 'Firmware Version'
          type: DEPENDENT
          key: neyross.firmware_version
          delay: '0'
          value_type: CHAR
          trends: '0'
          description: 'Версия программного обеспечения Платформы'
          inventory_link: SOFTWARE
          preprocessing:
           - type: JSONPATH
              parameters:
               - $..device_information.firmware_version.first()
              error_handler: DISCARD_VALUE
          master_item:
            key: neyross.get_info
          tags:
           - tag: component
              value: system
       - uuid: 3d753783fd174d83b995a13e3fd93b89
          name: 'Get NEYROSS info'
          type: HTTP_AGENT
          key: neyross.get_info
          delay: 1d
          history: '0'
          value_type: TEXT
          trends: '0'
          authtype: BASIC
          username: '{$USER}'
          password: '{$PASSWORD}'
          description: 'Used to get the NEYROSS information'
          preprocessing:
           - type: CHECK_NOT_SUPPORTED
              parameters:
               - '-1'
           - type: JSONPATH
              parameters:
               - '$.[?(@.ip4address == "{$NEYROSS_HOST}")]'
          url: 'http://{HOST.IP}/wsdsrv/http/'
         status_codes: '200,401'
          tags:
           - tag: component
              value: raw
       - uuid: 02a485add10d47fba9445267e61f5f50
          name: 'NEYROSS record status'
          type: TRAP
          key: neyross.get_records_status
          delay: '0'
          value_type: TEXT
          trends: '0'
          description: 'Receive the alarm events of record status from NEYROSS'
          preprocessing:
           - type: CHECK_NOT_SUPPORTED
              parameters:
               - '-1'
          tags:
           - tag: component
              value: system
          triggers:
           - uuid: 8a7024b50f8941168af71b85a86ec462
              expression: 'right(last(/NEYROSS by HTTP/neyross.get_records_status,#1),6)="Ошибка"'
              name: 'Error of record'
              priority: HIGH
              manual_close: 'YES'
           - uuid: f0987a1fd08b4ae9a564c7eaffba7107
              expression: 'count(/NEYROSS by HTTP/neyross.get_records_status,10m,"like","Ошибка")>9'
              name: 'Many errors of records'
              priority: DISASTER
              manual_close: 'YES'
       - uuid: 4088410fcd60494bbde41efd3a36049e
          name: Manufacturer
          type: DEPENDENT
          key: neyross.manufacturer
          delay: '0'
          value_type: CHAR
          trends: '0'
          description: 'Производитель Платформы'
          inventory_link: VENDOR
          preprocessing:
           - type: JSONPATH
              parameters:
               - $..device_information.manufacturer.first()
              error_handler: DISCARD_VALUE
          master_item:
            key: neyross.get_info
          tags:
           - tag: component
              value: system
       - uuid: 3298e42d227e4d8e8896fc95bea80719
          name: Model
          type: DEPENDENT
          key: neyross.model
          delay: '0'
          value_type: CHAR
          trends: '0'
          description: 'Модель Платформы'
          inventory_link: MODEL
          preprocessing:
           - type: JSONPATH
              parameters:
               - $..device_information.model.first()
              error_handler: DISCARD_VALUE
          master_item:
            key: neyross.get_info
          tags:
           - tag: component
              value: system
       - uuid: 99b6fa8770224c199bd91a19ac8c9ab6
          name: 'NEYROSS Name'
          type: DEPENDENT
          key: neyross.name
          delay: '0'
          value_type: CHAR
          trends: '0'
          description: 'Название Платформы'
          inventory_link: ALIAS
          preprocessing:
           - type: JSONPATH
              parameters:
               - $..name.first()
              error_handler: DISCARD_VALUE
          master_item:
            key: neyross.get_info
          tags:
           - tag: component
              value: system
      tags:
       - tag: class
         value: platform
       - tag: target
          value: access
       - tag: target
          value: cctv
       - tag: target
          value: itrium
       - tag: target
          value: neyross
      macros:
       - macro: '{$NEYROSS_HOST}'
          value: '<SET NEYROSS HOST IP>'
          description: 'The hostname or IP address of the NEYROSS host.'
       - macro: '{$PASSWORD}'
          type: SECRET_TEXT
       - macro: '{$USER}'
          value: root
          description: 'The default user name.'

Подготовка файла импорта задания автоматизации

Скопируйте код ниже и сохраните в файл формата JSON. Например, - задание.json.

Information

Обратите внимание на кодировку файла, она должна быть Unix (LF) UFT-8. Специалисты компании ИТРИУМ могут предоставить готовый файл по запросу.

{
   "signalKey": "systemLog",
   "filterConfig": {
       "tags": "10,3,4",
       "message": "Изменился статус задачи на запись"
   },
   "stats": {
       "failedSignals": 0,
       "processedSignals": 11375,
       "lastHandleTimestamp": "2025-02-10T11:48:20.342+03:00"
   },
   "enabled": true,
   "action": {
       "key": "userScript",
       "config": {
           "body": "import extensions.automation.signals.{AutomationSignal, SystemLogAutomationSignal}\nimport services.logging.web.{LoggerWithWeb => Logger}\nimport play.api.inject.Injector\nimport play.api.libs.ws.WSClient\nimport scala.concurrent.{ExecutionContext, Future}\nimport extensions.automation.scripts.AutomationActionScript\nimport play.api.libs.ws.WSAuthScheme\nclass PostRequest extends AutomationActionScript {\n  // @parameter { \"type\": \"string\", \"title\": \"URL сервера ZABBIX\", \"key\": \"zabbixApiUrl\" }\n  val zabbixApiUrl = \"http://10.1.29.28/api_jsonrpc.php\"\n  // @parameter { \"type\": \"string\", \"title\": \"API token подключения\", \"key\": \"zabbixApiToken\" }\n  val zabbixApiToken = \"fb304e4869efa491aa7b9a42a75718492be4b9fcad320a8eb78866d85e232151\"\n  // @parameter { \"type\": \"string\", \"title\": \"Имя Платформы в ZABBIX\", \"key\": \"zabbixHost\" }\n  val zabbixHost = \"10.1.29.38\"\n  val hostKey: String = \"neyross.get_records_status\"\n  private val wsClient: WSClient = ctx.injector.instanceOf[WSClient]\n  val logger: Logger = Logger(\"PostRequest\")\n  private val ec: ExecutionContext = ctx.injector.instanceOf[ExecutionContext]\n  //private val url: String = s\"http://10.0.30.57:8080/api_jsonrpc.php\"\n  private val headers: List[(String, String)] = List(\n    //(\"Authorization\", \"Bearer 4d3de77ce521ccfe8a5eb928b00039f71b7038a00a55b93dd2c0dc29f112a6ab\"),\n    (\"Authorization\", s\"Bearer $zabbixApiToken\"),\n    (\"Content-Type\", \"application/json-rpc\")\n  )\n  \n \n  override def onSignal(signal: AutomationSignal): Future[Unit] = {\n      signal match {\n      case SystemLogAutomationSignal(record) =>\n        logger.debug(s\"received system log signal with record = $record\")\n        //send value to zabbix host item by itemid\n        //val body: String = s\"{\\\"jsonrpc\\\":\\\"2.0\\\",\\\"method\\\":\\\"history.push\\\",\\\"params\\\":{\\\"itemid\\\":51512,\\\"value\\\":\\\"${record.message}\\\"},\\\"id\\\":1}\"\n        //send value to zabbix host item by hostname and key\n        val body: String = s\"{\\\"jsonrpc\\\":\\\"2.0\\\",\\\"method\\\":\\\"history.push\\\",\\\"params\\\":{\\\"host\\\":\\\"$zabbixHost\\\",\\\"key\\\":\\\"$hostKey\\\",\\\"value\\\":\\\"${record.message}\\\"},\\\"id\\\":1}\"\n        wsClient.url(zabbixApiUrl).withHttpHeaders(headers: _*).post(body).map(_ => ())(ec)\n        Future.unit\n      case _ =>\n        logger.info(\"unknown signal, do nothing\")\n        Future.unit\n    }\n  }   \n}\nnew PostRequest"
       }
   },
   "name": "Отправка информации об ошибке записи"
}

Настройка Zabbix

Information

Общие сведения по настройке сервера приведена в разделе [Настройка сервера Zabbix]. Ниже даны сведения по настройке для решения конкретной задачи.

Импорт шаблона

Вам потребуется загрузить подготовленный на предыдущем этапе шаблон в Zabbix. Далее вы можете откорректировать формулировки заголовков и описаний будущих данных и событий.

Выберите Сбор данных (Data Collection) > Шаблоны (Templates). Нажмите на кнопку Импорт (Import).

Укажите путь к файлу шаблона, нажмите на кнопку Импорт (Import), расположенную в правом верхнем углу. В отобразившемся окне укажите путь к файлу шаблона. Нажмите на кнопку Импорт.

zabbix_neyross_template_import.png

В следующем окне просмотрите данные шаблона, нажмите на кнопку Импорт (Import). Новый шаблон будет добавлен в список шаблонов.

zabbix_plarform_tempate_import3.png

Найдите шаблон, это удобно путём фильтрации по имени. Выберите Элементы данных (Items).

zabbix_neyross_template_elements.png

Вы увидите список данных, собираемых данным шаблоном.

zabbix_neyross_template_elements1.png

За получение событий о тревогах заданий на запись «отвечает» элемент NEYROSS record status с ключом neyross.get_records_status. Вы можете настроить другие элементы данных для получения сведений о других событиях, фиксируемых в Системном журнале Платформы НЕЙРОСС.

zabbix_neyross_template_elements2.png

Добавление узла Платформы НЕЙРОСС

Выберите Сбор данных (Data Collection) > Узлы сети (Hosts). Нажмите на кнопку Создать узел сети (Create host).

zabbix_AddHost.png

Задайте параметры узла согласно таблице ниже. Нажмите на кнопку Добавить (Add).

zabbix_neyross_item_add.png

Поле

Комментарий

Имя узла сети (Host name)

Введите уникальное Имя узла

Information

При работающем Zabbix-агенте на настраиваемом вами узле сети, параметр Hostname из файла конфигурации агента должен иметь такое же значение, как и введенное здесь имя узла сети. Имя из этого параметра необходимо для обработки активных проверок.

Видимое имя (Visible name)

Впишите имя для отображения в интерфейcах Zabbix и Платформы НЕЙРОСС.

Шаблоны (Templates)

Выберите ранее загруженный шаблон NEYROSS by HTTP. Вы также можете по своему желанию использовать другие шаблоны.

Группы узлов сети (Host groups)

Для работы с интерфейсом Zabbix вы можете использовать любые группы узлов. При необходимости мониторинга данного узла из АРМ Центр используйте группу NEYROSS.

Интерфейсы (Interfaces)

Нажмите Добавить (Add) и укажите интерфейс Агент. Укажите IP-адрес или DNS-имя узла. Задайте номер TCP/UDP порта. Значения по умолчанию - 10050.

Активировано (Enabled)

Оставьте флаг Активировано (Enabled), чтобы узел сети был активным, готовым к мониторингу. Если не отмечено, узел сети неактивен, его состояния не отслеживаются.

Настройка учётной записи

Information

Для передачи данных с Платформы НЕЙРОСС на узел Zabbix требуется учётная запись с соответствующими правами.

Выберите Пользователи > Роли пользователей. Нажмите на кнопку Создать роль пользователя.

В разделе Доступ к API выберите Список разрешений и выберите метод history.push

zabbix_neyross_user.png

Создайте учётную запись пользователя с данной ролью. Сгенерируйте для этой учётной записи API-токен. Дополнительная информация приведена в разделе [Настройка сервера Zabbix].

Настройка Платформы НЕЙРОСС

Лицензирование

Для обеспечения функции выполнения произвольного скрипта в заданиях автоматизации требуются перечисленные ниже лицензии. Проверьте наличие требуемых лицензий [Просмотр параметров и обновление лицензии]. В противном случае требуется приобрести лицензии [Лицензирование | Платформа НЕЙРОСС].

Тип узла

Параметр лицензии

Комментарий

Платформа НЕЙРОСС

НЕЙРОСС Автоматика

НЕЙРОСС Автоматика: подсистема организации автоматического управления (включает функцию запуска управляющей команды)

НЕЙРОСС Скрипт

Использование пользовательского скрипта управления.

 Настройка задания автоматизации

В разделе Автоматизация выполните импорт из файла, подготовленного на предыдущем этапе. Порядок импорта описан в разделе [Автоматизация].

В результате отобразятся настройки, заданные в файле импорта:

  • В группе Параметры сигнала заданы условия запуска задания автоматизации — задание выполняется каждый раз при получении в Системном журнале сообщения с текстом «Изменился статус задачи на запись» с указанными метками.
  • В группе Параметры действия выбран тип Пользовательский скрипт, указаны параметры скрипта.

zabbix_neyross_template_autotask.png

Измените параметры скрипта согласно таблице ниже.

Поле

Комментарий

URL сервера ZABBIX.

Укажите  URL в формате:

http://[ip-адрес Zabbix:порт]/api_jsonrpc.php

Где [ip-адрес Zabbix:порт] - ip-адрес сервера Zabbix и используемый порт. Если используется стандартный порт 80, порт можно не указывать.

API токен подключения

Замените API токен из примера на токен, сгенерированный для учётной записи с правом доступа к API [#Настройка учётной записи].

Имя Платформы в ZABBIX

Укажите значение в поле Имя узла сети (Host name), которое вы указали при добавлении узла, соответствующего Платформе НЕЙРОСС в Zabbix [#Добавление узла Платформы НЕЙРОСС].

Нажмите на кнопку Создать новое задание.

Задание автоматизации будет сохранено и запущено. При получении сообщения Системным журналом, задание будет выполнено, будет отправлен запрос за сервер Zabbix. При получении данных сработают настроенные триггеры: одна ошибка записи, много ошибок записи.

Мониторинг других показателей

Данный метод позволяет производить мониторинг любых событий, фиксируемых в Системном журнале: вход в интерфейс, попытки подбора пароля, контроль операторов и многое другое [Системный журнал].

Для каждого нового параметра нужно выполнить следующую последовательность действий.

Задача

Комментарий

1

Создать новое задание на основе старого

Это легко сделать с помощью копирования [Автоматизация].

2

Сформировать новый фильтр записей Системного журнала

Инструкция приведена в разделе [Тип сигнала: по сообщению системного журнала].

3

Изменить в коде скрипта ключ элемента данных, который настроен в шаблоне для получения данных

В примере использован элемент NEYROSS record status с ключом neyross.get_records_status [#Импорт шаблона]. Вам потребуется создать новый элемент и указать новый ключ. Затем в коде скрипта neyross.get_records_status замените ключ на новый.

Инструкции по редактированию скрипта приведены в разделе [Тип действия: пользовательский скрипт].

zabbix_neyross_actionscrypt_edit.png

Платформа НЕЙРОСС