User Tools

Site Tools


tssltd:дополнительные_возможности_логирования

Вернуться к оглавлению

Общая настройка протокола Rsyslog

На устройстве МКСЗ Diamond VPN/FW поддерживается возможность выгрузки отдельных журналов событий (файлов) на удаленный сервер по протоколу rsyslog.

Для активации этой функции необходимо произвести предварительную настройку. Необходимо подключиться к устройству по протоколу ssh и перейти в папку назначения с помощью команды «/etc/rsyslog.d». Далее с помощью команды «nano file_name.conf» необходимо создать конфигурационный файл. В конфигурационной файле необходимо задать параметры журналирования, сетевой адрес сервера, сетевой протокол, файл с логами и другие параметры. Механизм журналирования позволяет осуществлять фильтрацию нужных событий по ключевым слом перед отправкой на центральны сервер. Ниже мы рассмотрим различные примеры конфигураций с описание задачи, которую необходимо решить.

Конфигурацию для протокола Rsyslog можно задать как в одном файле, так и в нескольких. При старте основного процесса все конфигурации из файлов будут считаны и применены.

Запись событий из динамических файлов в журналы событий на устройстве

Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «nano /etc/rsyslogd.d/<file_name>.conf». В конфигурационном файле задать следующие настройки.

module(load="imfile")             

global (
  workDirectory="/media/storage/logs/"
)
input(type="imfile" File="/var/log/messages" Tag="messages" ruleset="promtail")
ruleset(name="promtail"){
   if $msg contains 'eigrpd' then action (type="omfile" file="/media/storage/logs/frr_eigrp.log" Template="RSYSLOG_SyslogProtocol23Format")
   if $msg contains 'bgpd' then action (type="omfile" file="/media/storage/logs/frr_bgp.log" Template="RSYSLOG_SyslogProtocol23Format")
}

В данном примере, мы анализируем поступающую информацию из файла «/var/log/messages» и применяем к сообщениям фильтры по ключевым словам «eigrpd», «bgpd». События для ключа «eigrpd» записываются в файл «/media/storage/logs/frr_eigrp.log», для ключа «bgpd» записываются в файл «/media/storage/logs/frr_bgp.log»

Отправка событий из динамических файлов на удаленных сервер

Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «nano /etc/rsyslogd.d/<file_name>.conf». В конфигурационном файле задать следующие настройки.

module(load="imfile")             

global (
  workDirectory="/media/storage/logs/"
)
input(type="imfile" File="/var/log/messages" Tag="messages" ruleset="promtail")
ruleset(name="promtail"){
   if $msg contains 'eigrpd' then action (type="omfwd" protocol="udp" target="10.34.17.88" port="514" Template="RSYSLOG_SyslogProtocol23Format")
   if $msg contains 'bgpd' then action (type="omfwd" protocol="udp" target="10.34.17.88" port="514" Template="RSYSLOG_SyslogProtocol23Format")
}

В данном примере, мы анализируем поступающую информацию из файла «/var/log/messages» и применяем к сообщениям фильтры по ключевым словам «eigrpd», «bgpd». События для ключа «eigrpd» и «bgpd» отправляем по протоколу «udp» на удаленный сервер с сетевым адресом «10.34.17.88» на порт «514».

Отправка событий из динамических файлов на несколько удаленных сервер

Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «nano /etc/rsyslogd.d/<file_name>.conf». В конфигурационном файле задать следующие настройки.

module(load="imfile")             

global (
  workDirectory="/media/storage/logs/"
)
input(type="imfile" File="/var/log/messages" Tag="messages" ruleset="promtail")
ruleset(name="promtail"){
   if $msg contains 'eigrpd' then action (type="omfwd" protocol="udp" target="10.34.17.88" port="514" Template="RSYSLOG_SyslogProtocol23Format")
   if $msg contains 'eigrpd' then action (type="omfwd" protocol="udp" target="10.34.17.90" port="514" Template="RSYSLOG_SyslogProtocol23Format")
}

В данном примере, мы анализируем поступающую информацию из файла «/var/log/messages» и применяем к сообщениям фильтры по ключевым словам «eigrpd». События для ключа «eigrpd» отправляем по протоколу «udp» на два удаленных сервера с сетевым адресом «10.34.17.88» на порт «514» и «10.34.17.90» на порт «514».

Дополнительные параметры обработки и отправки журналов событий.

Протокол rsyslog поддерживает возможность фильтровать информацию по заданным критериям для последующей отправки на удаленный сервер. Общий форма сообщения:

if [$свойство] [условие] then [action]

Перечень свойств, которые можно задать:

  • msg - сообщение syslog
  • hostname - от кого сообщение
  • syslogtag - TAG сообщения
  • programname - название процесса,
  • pri - приоритет сообщения
  • syslogfacility - syslog facility как число
  • syslogfacility-text - facility в текстовом формате
  • syslogseverity - важность
  • syslogseverity-text - важность в текстовом формате

Перечень условий, которые можно использовать:

  • contains - содержит
  • isequal - равно
  • startswitch - начинается с
  • regex - регулярное выражение

Условия для поиска можно комбинировать с помощью логических операций or/and/not, например:

  * if $syslogfacility-text == 'local0' and $msg startswith 'DEVNAME' and ($msg contains 'error1' or $msg contains 'error0') then /media/storage/logs/<file_log_name>.log
  * if $syslogfacility-text == 'local0' and $msg startswith 'DEVNAME' and not ($msg contains 'error1' or $msg contains 'error0') then /var/log/somelog

Возможные категории для логов перечислены в табл. 9.f.1 и 9.f.2.

Табл. 9.f.1. Возможные категории для логов (facility)

Категория Описание
0 kern Сообщения, отправляемые ядром
1 user Пользовательские программы
2 mail Почта
3 daemon Сервисы (демоны)
4 auth Безопасность/вход в систему/аутентификация
5 syslog Сообщения от syslog
6 lpr Логи печати
7 news Новостные группы (usenet)
8 uucp Unix-to-Unix CoPy (копирование файлов между компьютерами)
9 cron Планировщик заданий
10 authpriv Безопасность/вход в систему/аутентификация - защищенный режим
11 ftp Логи при передачи данных по FTP
12 ntp Лог службы синхронизации времени (существует не везде)
13 security, log audit Журнал аудита (существует не везде)
14 console, log alert Сообщения, отправляемые в консоль (существует не везде)
15-22 local0 - local7 Зарезервированы для локального использования.

Табл. 9.f.2. Возможные категории для логов (severity)

Уровень Расшифровка
0 emerg Система не работает (PANIC)
1 alert Серьезная проблема, требующая внимания
2 crit Критическая ошибка
3 err Ошибка (ERROR)
4 warning Предупреждение (WARN)
5 notice Важное информационное сообщение
6 info Информационное сообщение
7 debug Отладочная информация

Вернуться к оглавлению

tssltd/дополнительные_возможности_логирования.txt · Last modified: 2023/10/09 13:18 by n.ganenkov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki