[Серверное администрирование, Умный дом, Инженерные системы] Zabbix + OPC DA
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В последних релизах Zabbix "из коробки" стал поддерживать некоторые популярные протоколы промышленного оборудования. Имея поддержку Modbus и MQTT, его использование с системами промышленной автоматизации стало чуточку проще. Но подобный подход к мониторингу такого рода оборудования не всегда возможен. Как правило, на предприятиях используется большое количество устройств промышленной автоматики разных лет и от разных производителей, поддерживающих разные протоколы обмена. OPC серверы являются универсальным инструментом обмена данными с такими устройствами. Информация на тему интеграции Zabbix и OPC DA в сети практически отсутствует. Возможно, мой небольшой опыт в этом направлении окажется полезен. Для чего нам ZabbixВ нашем сценарии использования Zabbix последний не является заменой имеющейся SCADA-системе. Параллельное развертывание системы мониторинга позволит иметь возможность гибкой настройки триггеров и своевременного получения оповещений о нештатных ситуациях на оборудовании. Также мы сможем создавать дополнительные информационные панели с графиками, которые смогут давать быстрое представление о ходе тех. процессов. Взаимодействие с OPC серверамиСамой сложной задачей, которая стоит перед нами, является организация взаимодействия с OPC-серверами. В ходе поисков готового решения такого взаимодействия стало понятно, что подходящих нам вариантов не так много. Из того, что было найдено, наиболее пригодным к использованию оказался консольный клиент OpenOPC.Установка OpenOPCКак было сказано ранее, речь идет о стандарте OPC DA, а значит, о технологии DCOM и, соответственно, ОС Windows. В нашем случае установка OpenOPC производилась на машину с Windows XP, где и находится проприетарный OPC сервер. После завершения установки необходимо добавить путь до opc.exe в системную переменную среды PATH.
Проверим работу утилиты. Для начала выведем в консоль список доступных OPC серверов:
C:\Users\Администратор> opc.exe -q
Merz.OPC_SAIA_S-BUS.1
C:\Users\Администратор>
Теперь попробуем получить теги в удобном нам формате - csv:
C:\Users\Администратор>opc.exe -o csv -s Merz.OPC_SAIA_S-BUS.1 ATP.Register.OAT
ATP.Register.OAT,197,Good,05/24/21 07:16:15
C:\Users\Администратор>opc.exe -o csv -s Merz.OPC_SAIA_S-BUS.1 ATP.Register.OAT ATP5.Register.T_inlet ATP5.Register.T_outlet
ATP.Register.OAT,198,Good,05/24/21 07:16:41
ATP5.Register.T_inlet,627,Good,05/24/21 07:16:41
ATP5.Register.T_outlet,654,Good,05/24/21 07:16:41
C:\Users\Администратор>
Если что-то пошло не такВ ходе экспериментов с opc.exe выяснились некоторые моменты. Первое: каждый OPC клиент запускал новую копию OPC сервера, а их параллельная работа невозможна. Так как запустить используемый нами OPC сервер как службу не получилось, то через DCOM был настроен запуск OPC сервера от определенного пользователя. Все OPC клиенты - SCADA и агент Zabbix - были также настроены на запуск от этого пользователя. Второе: выявлены некоторые недостатки в работе самого OpenOPC. Например, клиент не вычитывает теги, в названии которых присутствуют символы, отличающиеся от латинских. С этим пока пришлось смириться и решать такие проблемы путем переименования тегов в OPC сервере.Установка Zabbix агентаНа ту же машину установим Zabbix агент, который сможет работать под Windows XP, например, zabbix_agent-5.2.0-windows-i386-openssl.msi. Агент будет выполнять активные проверки. Чтобы облегчить дальнейшую конфигурация агента, во время установки заполним следующие поля:
- Ноst name - уникальное имя хоста, совпадающее с именем узла сети на Zabbix сервере.
- Zabbix server IP/DNS - IP-адреса Zabbix сервера.
- Server or Proxy for active checks - IP-адрес Zabbix сервера для активных проверок.
Конфигурирование Zabbix агентаВ конфигурационный файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf были внесены некоторые изменения.
- Увеличено время выполнения скрипта.
### Option: Timeout
# Spend no more than Timeout seconds on processing.
#
# Mandatory: no
# Range: 1-30
# Default:
# Timeout=3
Timeout=30
- Создан параметр для мониторинга.
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=<key>,<shell command>
#
# Mandatory: no
# Default:
# UserParameter=
UserParameter=opc[*],opc.exe -o csv -s $1 $2
Узел сети и элементы данных на сервере ZabbixНа Zabbix сервере создадим узел сети. Имя узла сети должно совпадать с Ноst name, указанном при установке агента, интерфейс - IP-адрес агента.
Далее к созданному узлу сети добавим элемент данных c типом Zabbix агент (активный). Ключом должна являться конструкция типа: opc[<ИМЯ OPC СЕРВЕРА>, <ЗАПРАШИВАЕМЫЕ ТЕГИ ЧЕРЕЗ ПРОБЕЛ>].
Значениями элемента данных будут строки, разделенные запятыми:
ATP2.Register.OAT,273,Good,05/24/21 15:21:33
ATP2.Register.GVS.T_inlet_W,501,Good,05/24/21 15:21:33
ATP2.Register.GVS.T_outlet_W,445,Good,05/24/21 15:21:33
ATP2.Register.T_outlet_w_com,404,Good,05/24/21 15:21:33
ATP2.Register.RAD.T_outlet_W,256,Good,05/24/21 15:21:33
ATP2.Register.P_in_W_com,39,Good,05/24/21 15:21:33
ATP2.Register.P_out_W_com,36,Good,05/24/21 15:21:33
ATP2.Register.RAD.P_outlet_W,43,Good,05/24/21 15:21:33
ATP2.Register.FIRE.P_gidrant,68,Good,05/24/21 15:21:33
Зависимые элементы данныхСоздадим зависимые элементы данных для того, чтобы распарсить CVS, полученный в самом элементе.
В предобработке используем JavaScript, который получит необходимую нам строку в CVS, проверит качество тега и вернет результат.
function (value){
var nr_line = 4;
var lines = value.split('\n');
var fields = lines[nr_line].split(',');
if(typeof fields[2] != "undefined" && fields[2] == "Good"){
return (typeof fields[1] != "undefined") ? fields[1] : null;
}
return null;
}
Пример визуализации полученных данных:
ЗаключениеТеперь, когда данные от оборудования находятся в Zabbix, можно приступить к дальнейшей организации мониторинга: создание и обработка разнообразных триггеров, генерация графиков, отчетов и т. д.
===========
Источник:
habr.com
===========
Похожие новости:
- [Open source, Системное администрирование, PostgreSQL, IT-инфраструктура] Мониторинг 95+ метрик PostgreSQL с помощью плагина Zabbix Agent 2
- [Системное администрирование, PostgreSQL, Администрирование баз данных] Что нового в плане мониторинга в PostgreSQL 14
- [Беспроводные технологии, Энергия и элементы питания, Умный дом] Сингапурские инженеры с помощью сигнала Wi-Fi получили энергию для микроэлектроники
- [Информационная безопасность, Серверное администрирование] Привет, Telnet! И пока. Команда OpenSSL s_client для зашифрованных соединений (перевод)
- [Системное администрирование, Софт] SaaS и ALEPIZ: мониторинг и управление инфраструктурой
- [Гаджеты, Искусственный интеллект, Умный дом, Голосовые интерфейсы] ТВ-приставка или умная колонка с камерой? Всё и сразу: новое устройство от SberDevices
- [Программирование, Карьера в IT-индустрии, Умный дом, Интернет вещей, Интервью] Интервью с менеджером проектов АСУ: цифровизация, интернет вещей и «умные» города
- [Разработка игр, DevOps, Облачные сервисы, Интервью] Когда без выделенного DevOps — уже никуда. Кейс компании Geecko
- [Информационная безопасность, Работа с видео, Умный дом] Владельцы умных камер Eufycam обнаружили, что могут смотреть видео из других домов
- Выпуск системы мониторинга Zabbix 5.4
Теги для поиска: #_servernoe_administrirovanie (Серверное администрирование), #_umnyj_dom (Умный дом), #_inzhenernye_sistemy (Инженерные системы), #_zabbix, #_monitoring, #_monitoring (мониторинг), #_monitoring_oborudovanija (мониторинг оборудования), #_scada, #_opc_da, #_openopc, #_zabbix_monitoring (zabbix мониторинг), #_servernoe_administrirovanie (
Серверное администрирование
), #_umnyj_dom (
Умный дом
), #_inzhenernye_sistemy (
Инженерные системы
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 28-Ноя 01:20
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В последних релизах Zabbix "из коробки" стал поддерживать некоторые популярные протоколы промышленного оборудования. Имея поддержку Modbus и MQTT, его использование с системами промышленной автоматизации стало чуточку проще. Но подобный подход к мониторингу такого рода оборудования не всегда возможен. Как правило, на предприятиях используется большое количество устройств промышленной автоматики разных лет и от разных производителей, поддерживающих разные протоколы обмена. OPC серверы являются универсальным инструментом обмена данными с такими устройствами. Информация на тему интеграции Zabbix и OPC DA в сети практически отсутствует. Возможно, мой небольшой опыт в этом направлении окажется полезен. Для чего нам ZabbixВ нашем сценарии использования Zabbix последний не является заменой имеющейся SCADA-системе. Параллельное развертывание системы мониторинга позволит иметь возможность гибкой настройки триггеров и своевременного получения оповещений о нештатных ситуациях на оборудовании. Также мы сможем создавать дополнительные информационные панели с графиками, которые смогут давать быстрое представление о ходе тех. процессов. Взаимодействие с OPC серверамиСамой сложной задачей, которая стоит перед нами, является организация взаимодействия с OPC-серверами. В ходе поисков готового решения такого взаимодействия стало понятно, что подходящих нам вариантов не так много. Из того, что было найдено, наиболее пригодным к использованию оказался консольный клиент OpenOPC.Установка OpenOPCКак было сказано ранее, речь идет о стандарте OPC DA, а значит, о технологии DCOM и, соответственно, ОС Windows. В нашем случае установка OpenOPC производилась на машину с Windows XP, где и находится проприетарный OPC сервер. После завершения установки необходимо добавить путь до opc.exe в системную переменную среды PATH. Проверим работу утилиты. Для начала выведем в консоль список доступных OPC серверов: C:\Users\Администратор> opc.exe -q
Merz.OPC_SAIA_S-BUS.1 C:\Users\Администратор> C:\Users\Администратор>opc.exe -o csv -s Merz.OPC_SAIA_S-BUS.1 ATP.Register.OAT
ATP.Register.OAT,197,Good,05/24/21 07:16:15 C:\Users\Администратор>opc.exe -o csv -s Merz.OPC_SAIA_S-BUS.1 ATP.Register.OAT ATP5.Register.T_inlet ATP5.Register.T_outlet ATP.Register.OAT,198,Good,05/24/21 07:16:41 ATP5.Register.T_inlet,627,Good,05/24/21 07:16:41 ATP5.Register.T_outlet,654,Good,05/24/21 07:16:41 C:\Users\Администратор>
Конфигурирование Zabbix агентаВ конфигурационный файл C:\Program Files\Zabbix Agent\zabbix_agentd.conf были внесены некоторые изменения.
Далее к созданному узлу сети добавим элемент данных c типом Zabbix агент (активный). Ключом должна являться конструкция типа: opc[<ИМЯ OPC СЕРВЕРА>, <ЗАПРАШИВАЕМЫЕ ТЕГИ ЧЕРЕЗ ПРОБЕЛ>]. Значениями элемента данных будут строки, разделенные запятыми: ATP2.Register.OAT,273,Good,05/24/21 15:21:33
ATP2.Register.GVS.T_inlet_W,501,Good,05/24/21 15:21:33 ATP2.Register.GVS.T_outlet_W,445,Good,05/24/21 15:21:33 ATP2.Register.T_outlet_w_com,404,Good,05/24/21 15:21:33 ATP2.Register.RAD.T_outlet_W,256,Good,05/24/21 15:21:33 ATP2.Register.P_in_W_com,39,Good,05/24/21 15:21:33 ATP2.Register.P_out_W_com,36,Good,05/24/21 15:21:33 ATP2.Register.RAD.P_outlet_W,43,Good,05/24/21 15:21:33 ATP2.Register.FIRE.P_gidrant,68,Good,05/24/21 15:21:33 В предобработке используем JavaScript, который получит необходимую нам строку в CVS, проверит качество тега и вернет результат. function (value){
var nr_line = 4; var lines = value.split('\n'); var fields = lines[nr_line].split(','); if(typeof fields[2] != "undefined" && fields[2] == "Good"){ return (typeof fields[1] != "undefined") ? fields[1] : null; } return null; } ЗаключениеТеперь, когда данные от оборудования находятся в Zabbix, можно приступить к дальнейшей организации мониторинга: создание и обработка разнообразных триггеров, генерация графиков, отчетов и т. д. =========== Источник: habr.com =========== Похожие новости:
Серверное администрирование ), #_umnyj_dom ( Умный дом ), #_inzhenernye_sistemy ( Инженерные системы ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 28-Ноя 01:20
Часовой пояс: UTC + 5