Вторая серия. Гайды по настройке диагностики и оповещений в Zabbix для Scada-систем WinCC

Я, Арсений Тиунов, менеджер по визуализации, продолжаю рассказывать о мониторинге SCADA-систем WinCC на производствах «Северстали».

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

Гайд 1: как настроить предиктивную диагностику WinCC в Zabbix

Для начала работы мониторинга производительности WinCC на основе системных тегов не требуется каких-либо настроек (вмешательств в проект WinCC). Эти системные теги создаются в проекте автоматически еще на этапе разработки.

Аналогично автоматически создаются и Windows Performance Counters в момент установки SCADA-системы WinCC. В Zabbix существует возможность считывать эти значения, обращаясь к счетчикам производительности в ОС Windows. 

В Zabbix надо создать шаблон (в нашем примере это «asutp_scada»), который удобно масштабируется на любое количество подключенных узлов. Ключ для нужных нам метрик нужно выбрать вида «perf_counter[метрика WinCC]»:

Важно отметить, что сбор метрик вида «perf_сounters» можно настроить через LLD (низкоуровневое обнаружение). LLD даёт возможность автоматического создания элементов данных (триггеров, и т.д.),тем самым автоматизируя и упрощая работу для специалиста.

Приведу пример: обычные метрики (redundancy, alarmlogging и др.) можно копипастить с одного узла на другой, а вот с именами соединений всё сложнее - они уникальны и не повторяются. А данные по этим соединениям нам бы пригодились. Полезно регистрировать обмен данными по каждому программируемому логическому контроллеру (ПЛК) или OPC-протоколу, фиксировать нормальный режим работы или наоборот, возникновение проблемы.

Для этого мы должны создать в нашем шаблоне правила обнаружения: 

Прототипы элементов данных при этом будут выглядеть так:

Как видим, каждое выражение в фигурных скобках {#INSTANCE} - это именно та переменная часть, которую необходимо обнаружить. А для нас это отличный способ не писать имена 20 - 30 ПЛК. Эти данные Zabbix может “обнаружить” самостоятельно при применении Вашего шаблона на новом хосте. Быстро, правильно и универсально для любого количества соединений и хостов.

Для старта диагностики метрик WinCC этих настроек достаточно. Можно начинать!

Гайд 2: настраиваем ситуативную диагностику WinCC в Zabbix

Для работы с системными сообщениями потребуется больше усилий, но и ценность такой диагностики возрастает. Выполните следующие шаги.

  1. Создайте теги статуса для системных сообщений:

  1. Настройте системные сообщения — привяжите каждому из них тег статуса:

  1. Создайте VBS-скрипт для подсчета записанных тегов статуса системных сообщений:

На этом этапе важно проверить:

  • совпадение имени (case sensitive) указанного узла с тем, как вы его указали в Zabbix

  • точный путь к zabbix_sender.exe и имя proxy-сервера

  1. Получаемые счетчики по приоритетам нужно отправить в Zabbix с помощью zabbix_sender.exe (кроссплатформенная утилита, как правило она находится в папке ..\bin\win64) прямо из VBS-скрипта WinCC:

Гайд 3: как настроить оповещения в Zabbix

Собранные метрики бесполезны, если они не экономят нам время для анализа и реакции на сбойные ситуации. А еще лучше, если они заранее предупредят нас о том, что сбой возможен именно на этом узле. Идеально, если будет оповещение (триггер), что именно этот элемент WinCC нужно проверить и исправить его работу в запланированное для этого время.

Вот пример наших настроек в процессе сбора метрик:

Здесь еще есть над чем работать, ведь процесс точной подстройки триггеров для WinCC у нас продолжается (по мере увеличения количества подключенных хостов).

А по-настоящему точной подстройка становится благодаря возможности для каждого специалиста сделать её такой для каждого отдельного сервера. В таблице выше, например для очереди скриптов, можно изменить значение параметра $SCRIPT.ACTION.CNT на новое (отличное от прописанного в шаблоне). Подсказать какое значение нужно установить поможет Zabbix, записывая графики метрик работы этого узла.

Вы спросите:  «А зачем делать точную настройку? Пусть Zabbix шлёт сообщения о каждой ненулевой метрике проблемы!» Хочется привести в пример нашу повседневную жизнь: пациенты на приёме у врача по-разному живут со своими болячками. Норма артериального давления для каждого возраста  разная. Показатели здоровья молодого человека будут существенно отличаться у человека в возрасте. 

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

Комментарии (0)