4.1.1.2.5.11. Syslog Сервер
Модуль Syslog Server предназначен для диагностики сетевого оборудования путём сбора диагностических сообщений по протоколу Syslog.
Модуль выполняет следующие функции:
сбор Syslog сообщений от сетевых устройств;
запись полученных сообщений в сигналы.
Поддерживаемые форматы сообщений:
RFC 5424
Протокол Syslog
Протокол Syslog – способ передачи информации о событиях, происходящих в устройстве. Информация передаётся в виде текстовых сообщений.
Сообщение содержит:
текст события;
информацию о событии: где и когда оно произошло, важность и пр.
Формат сообщения зависит от спецификации, согласно которой формируется сообщение.
|
Сообщения передаются по схеме клиент-сервер: при возникновении события устройство формирует сообщение и отправляет его серверу Syslog. Сервер Syslog принимает и обрабатывает сообщение. Правила обработки протоколом не регламентируются и зависят от реализации сервера.
Сообщения передаются в открытом виде (по транспортному протоколу UDP) или с использованием шифрования (по транспортному протоколу TLS).
Принципы работы
Модуль Syslog Server принимает Syslog сообщения от различных сетевых устройств и записывает полученные сообщения в подготовленные для них сигналы. Каждое сообщение записывается только в один сигнал сервера.
В сервере можно настроить генерацию OPC AE событий при записи Syslog сообщений в сигналы сервера. Настройка генерации событий описана в приложении.
Сообщения неизвестного формата могут быть записаны в сигнал только в исходном виде.
Сообщения известного формата могут быть записаны в сигнал в исходном виде либо в преобразованном для генерации динамических событий модулем OPC AE Server: это регулируется настройкой Генерировать события модуля Syslog Server.
Если включена настройка Генерировать события, то можно распределять сообщения по разным сигналам в соответствии с настроенными фильтрами в свойстве адреса сигналов.
Если сообщения записываются в сигнал в исходном виде, можно разбирать их с помощью модуля логики, формировать строку для генерации динамического события и записывать её в сигнал, который генерирует события.
VQT значение, записываемое в сигнал:
Value (значение) – строка
<Subcondition Type="Dynamic" Message="MSG" />
|
MSG – значение поля MSG в полученном сообщении.
Формат значения предназначен для автоматической генерации OPC AE события при его записи в сигнал
|
Quality (качество) – 192 (хорошее);
Timestamp (метка времени) – значение поля TIMESTAMP в полученном сообщении.
Работа в резерве
При работе в состоянии РЕЗЕРВ модуль не принимает сообщения от сетевых устройств.
Работа по TLS/UDP
При работе с транспортным протоколом TLS сетевое устройство и модуль устанавливают между собой безопасное соединение. Для этого они обмениваются сертификатами. Модуль принимает сообщения только от тех сетевых устройств, сертификат которых есть в папке доверенных сертификатов.
При работе с транспортным протоколом UDP модуль принимает сообщения от любых сетевых устройств.
Syslog сообщение в формате RFC 5424 имеет следующую структуру:
<PRI>VERSION TIMESTAMP HOSTNAME APPNAME PROCID MSGID [STRUCTURED-DATA] MSG
|
При передаче Syslog сообщений по протоколу TLS в начале сообщения указывается его размер:
LENGTH <PRI>VERSION TIMESTAMP HOSTNAME APPNAME PROCID MSGID [STRUCTURED-DATA] MSG
|
Согласно спецификации RFC 5424 в сообщении могут быть не указаны значения следующих полей:
HOSTNAME (Идентификатор хоста)
APPNAME (Идентификатор приложения)
PROCID (Идентификатор процесса)
MSGID (Тип сообщения)
Вместо отсутствующего значения в поле должен быть указан символ -.
Syslog сообщения в формате RFC 3164 передаются только по транспортному протоколу UDP.
|
Syslog сообщение в формате RFC 3164 имеет следующую структуру:
<PRI> TIMESTAMP HOSTNAME APPNAME [PROCID]:MSG
|
Согласно спецификации RFC 3164 в сообщении могут быть не указаны значения любых полей. В этом случае значения соответствующих полей будут отсутствовать в структуре сообщения (допускается передача пустого сообщения, не содержащего ни одного символа):
если в сообщении не указано значение TIMESTAMP, то в качестве значения поля используется момент получения сообщения;
если в сообщении не указано значение PRI, то в качестве значения поля PRI используется значение 41 (Facility – 5, Severity – 1);
при отсутствии значений прочих полей, в качестве значения этих полей используется пустая строка.
Формату RFC 3164 соответствуют любые сообщения, которые могут быть получены: если при попытке разобрать отдельные поля в полученном сообщении произойдёт ошибка, то вся строка сообщения будет использоваться в качестве значения поля MSG.
Поля сообщения Syslog
Поле
|
Описание
| ||
LENGTH
|
Количество символов в сообщении. Указывается только в сообщениях, передаваемых по протоколу TLS
| ||
PRI
|
Приоритет. Содержит два значения: Facility (субъект, сформировавший сообщение) и Severity (уровень важности сообщения). Severity принимает значения от 0 до 7, Facility - от 0 до 23. Значение PRI вычисляется как PRI = Facility*8+Severity.
| ||
VERSION
|
Версия протокола
| ||
TIMESTAMP
|
Метка времени сообщения
| ||
HOSTNAME
|
IP-адрес или сетевое имя устройства, сгенерировавшего сообщение
| ||
APP-NAME
|
Идентификатор устройства или приложения, сгенерировавшего сообщение
| ||
PROCID
|
Позволяет регистрировать перерывы в потоке данных и обычно используется в качестве идентификатора процесса
| ||
MSGID
|
Идентификатор типа сообщения
| ||
STRUCTURED-DATA
|
Структурированные данные. В работе модуля Syslog Server не используются
| ||
MSG
|
Текст сообщения
|
Поля Syslog сообщений используются следующим образом:
поля MSG и TIMESTAMP используются при формировании VQT значения, записываемого в сигнал.
поле HOSTNAME используется при поиске сигнала, предназначенного для записи сообщений от устройства, указанного в этом поле.
поля PRI, APP-NAME, PROCID, MSGID используются при поиске сигнала, имеющего соответствующие параметры фильтрации.
Генерация событий
Генерацию событий в сервере выполняет модуль OPC AE Server. События генерируются при записи Syslog сообщений в настроенные сигналы.
Для полученного Syslog сообщения в сервере не будет сгенерировано событие в следующих случаях:
если в сервере нет подходящего сигнала для записи сообщения
если для сигнала, в который сообщение было записано, не настроена генерация событий
Для каждого сигнала, в который записываются Syslog сообщения, необходимо:
настроить в свойствах родительской папки условие генерации события. Тип условия – Dynamic.
поставить сигнал на обслуживание модулю OPC AE Server с параметром Conditions=(CONDITION_NAME), где CONDITION_NAME – это название условия, указанное в свойствах папки.
Данный список содержит общее описание необходимых действий по настройке генерации событий. Подробное описание выполняемых настроек приведено в документации на модуль OPC AE Server.
|