Как стать автором
Обновить
46.9

Чем хорош мониторинг SCADA-систем WinCC в Zabbix

Время на прочтение6 мин
Количество просмотров3.6K

Первая серия. Нюансы диагностики Scada-систем WinCC в Zabbix

Для управления производством мы в «Северстали» используем SCADA-системы, в частности, SIMATIC WinCC. Такие решения радуют своей универсальностью и мощью, они позволяют  управлять процессами, производственными линиями, машинами и установками во всех промышленных секторах компании и отслеживать их работу. Но у WinCC есть и недостатки. Например, если использовать несколько SCADA-систем (а у нас их около тысячи!), то сложно настроить оперативный мониторинг их работоспособности. Это мешает быстро видеть и предупреждать проблемы. Но мы нашли выход — Zabbix. 

Как опытный кардиолог, глядя на кардиограмму пациента, может с уверенностью сказать, что тому следует исключить нагрузки и следить за сердцем, так Zabbix способен заметить изменения в графиках метрик WinCC и предупредить о надвигающихся проблемах. Я, Арсений Тиунов, менеджер по визуализации, расскажу, как мы настроили систему мониторинга на производствах «Северстали» и каких результатов добились. 

Неоднородность версий мешает увидеть полную картину работы WinCC  

Когда у вас на производстве сотни серверов SCADA-систем, их диагностика и поддержание правильной и бесперебойной работы (как серверов, так и самого ПО WinCC) — настоящий вызов для специалиста по автоматизации. Решая эту задачу, мы хотели не только найти удобный способ собрать данные, но и разобраться с тем, какие

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

Мы уже работали с Zabbix — вели мониторинг состояния самих серверов со SCADA-системами на производствах «Северстали»: Zabbix-агенты собирали информацию о железе, работе ОС, служб и так далее. Данные, безусловно, полезные, но исключительно в разрезе работы самого сервера, а не целевого приложения WinCC. Эта информация не даёт полной картины работы установленного ПО. Нам же был нужен такой мониторинг, который позволит заранее выявить узкие места в производительности SCADA-систем, а также сделать выводы о том, правильно ли настроены исполняемые проекты ПО и правильно ли мы используем ресурсы сервера. 

Сложность задачи заключалась в том, что неоднородность ландшафта автоматизированных систем управления технологическим процессом (АСУТП) значительно влияет на попытку разработать универсальное решение. Каждый проект исполняемой программы WinCC уникален по версии ПО, количеству соединений (контроллеров, OPC и т. д.) и сигналов, другим параметрам. Как же определить, какие из узлов диагностики настроены корректно, и как оценить их критерии производительности? Zabbix позволяет это организовать, но его надо тонко настроить. И осуществлять эту настройку надо обязательно на основе анализа метрик по каждому конкретному узлу (группе узлов).

Неоднородность версий WinCC

Различные версии WinCC выходили в разное время и существенно изменились от v7.0 к версии v7.5. SP2 по следующим аспектам:

  • количество тегов производительности (Performance tags);

  • количество системных сообщений (System alarms);

  • количество выведенных в Windows счётчиков производительности (Performance Counters).

Версия WinCC

Метрики Windows Performance Counters

Метрики для Zabbix Sender (теги статуса системных сообщений)

WinCC 7.5 SP2

Да (полный набор)

Да

WinCC 7.5 SP1

Да (частично)

Да

WinCC 7.5.0 и ниже

Нет

Да

Исходя из того, что в версиях WinCC ниже 7.5.0 метрики можно получить только скриптом, возможностей для универсального вывода в Zabbix всего набора метрик для каждого узла нет. Мы собираем в Zabbix все метрики, но для анализа WinCC в рамках ландшафта используем их ограниченный набор. Однако в большинстве ситуаций весь набор и не требуется. Тем не менее, у нас остаётся возможность посмотреть все доступные метрики по отдельно взятой Scada-системе на уровне узла Zabbix.

#

Вид метрики

Значение метрики

1

TLGRT_AVERAGE_TAGS_PER_SECOND

Watchdog (постоянно изменяющееся значение) — используется метрика «среднее значение запросов на запись с момента запуска среды исполнения»

2

SCRIPT_COUNT_ACTIONS_IN_QUEUES

Очередь скриптов

3

RedundantServerState и RM_Master

Состояние резервирования серверов 

4

WinCC_Connections_Pending_tag_read

WinCC_Connections_Pending_tag_write

TLGRT_TAGS_PER_SECOND

Важные индикаторы производительности WinCC

5

Приоритет - 0

Обычная информация/статус

6

Приоритет - 1

Важная информация/статус

7

Приоритет - 2

Менее важные, требующие общего разбора

8

Приоритет - 3

Предупреждения

9

Приоритет - 4

Критично важные (срочная реакция)

Чуть позже мы расскажем об этих метриках и настройке триггеров по ним.

Возможности Zabbix в контексте WinCC

Zabbix — это специализированное open sourse ПО для мониторинга статусов компьютерной сети, серверов, сетевого оборудования и разных сервисов. Мониторинг серверов WinCC в Zabbix чаще всего представляет собой «плоский» список узлов с группировкой и именованием групп по географическому принципу «Производство — Цех — Агрегат — Узел». Попытка собрать информацию о качестве работы WinCC по конкретному подразделению производства превращается в кошмарный скроллинг по экранам с такими списками. Поэтому, как правило, работа с Zabbix в АСУТП ограничивается реакцией на триггеры (оповещения) о критически важных событиях, настроенных на метрики самих серверов, а не целевого ПО WinCC. 

Но пора уже рассказать вам о методологиях, которые мы разработали для мониторинга WinCC.

Два направления мониторинга WinCC: предиктивная и ситуативная диагностика

Ещё до начала работ по мониторингу WinCC в Zabbix мы столкнулись с вполне резонным вопросом коллег: «А зачем нам мониторинг ещё и в Zabbix, если мы узнаём о проблеме практически сразу? Нас вызовет оператор производственной линии, и мы узнаем о сбое WinCC». «А для того, — отвечали мы, — чтобы не просто констатировать смерть элемента или всей SCADA, но предугадать и предупредить заранее о возможном сбое».
Мы изучили возможности самодиагностики WinCC, которых оказалось достаточно для решения такой задачи. Нужно лишь вести наблюдение за метриками и выстраивать правила оповещения. Так появилась предиктивная диагностика WinCC.

Предиктивная диагностика WinCC

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

  1. Через чтение внутренних тегов из раздела «Performance» WinCC, начинающихся с символа @.

  2. Через чтение параметров в Windows Performance Counters напрямую, минуя WinCC, без каких-либо настроек со стороны WinCC.

И вот о чём говорит нам полученная информация.

Пиковые значения параметров указывают на нагрузку, вызванную циклически повторяющимися событиями. Это показатель того, что WinCC временно перегружена и, следовательно, может эксплуатироваться только в ограниченной степени. Если после пика нагрузки показатели параметров снова быстро снижаются, ограничений для дальнейшей работы WinCC-системы нет.

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

Ситуативная диагностика. Системные сообщения WinCC

Не следует думать, что системные сообщения только «констатируют смерть пациента». Вовремя выявленное важное информационное сообщение или предупреждение (до появления критических сообщений) поможет предотвратить сбойную ситуацию.

В большинстве случаев вы уже используете «Системные сообщения WinCC» и просматриваете их в SCADA-системе. В последних версиях WinCC (на момент написания статьи это WinCC 7.5 SP2 Upd 9) их количество приблизилось к 400. Просмотреть их возникновение на одной-двух SCADA-системах требует времени, а если представить, что у вас несколько сотен серверов? 

Поэтому мы решили попробовать передать такой анализ в саму SCADA-систему. Мы написали VBS-скрипт, в котором происходит сортировка возникающих системных сообщений (аварийных событий, предупреждений) на пять групп по приоритетам. Количество полученных уникальных (по номеру сообщения, например, «1000002») сообщений мы стали передавать в Zabbix. Там становится возможным агрегировать эти показатели в вертикально ориентированной архитектуре.

Архитектура системы мониторинга в Zabbix 

Итак, нам надо было исправить ситуацию, когда узлы сгруппированы лишь по географическому признаку. Вначале мы не понимали, как оценивать участки и производства на наличие проблем. Не умели задействовать инструменты агрегирования данных в Zabbix, а следовательно, не могли получить информацию по конкретному уровню (цех, производство). 

Тогда мы построили архитектуру, в которой для каждого пользователя Zabbix были определены узлы, входящие в его зону ответственности. Настроены триггеры. Собранные данные удобно агрегированы в едином дашборде: 

Архитектура мониторинга SCADA-систем
Архитектура мониторинга SCADA-систем

С такой архитектурой решения каждому участнику мониторинга работать стало гораздо удобнее.

О примерах настроек WinCC и Zabbix для разных видов диагностики читайте в следующей серии.

Теги:
Хабы:
+1
Комментарии13

Публикации

Информация

Сайт
www.severstal.com
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия