[[tssltd:общие_настройки|Вернуться к оглавлению]] ==== Общая настройка протокола Rsyslog ==== На устройстве МКСЗ Diamond VPN/FW поддерживается возможность выгрузки отдельных журналов событий (файлов) на удаленный сервер по протоколу **rsyslog**. Для активации этой функции необходимо произвести предварительную настройку. Необходимо подключиться к устройству по протоколу ssh и перейти в папку назначения с помощью команды «**/etc/rsyslog.d**». Далее с помощью команды «**nano file_name.conf**» необходимо создать конфигурационный файл. В конфигурационной файле необходимо задать параметры журналирования, сетевой адрес сервера, сетевой протокол, файл с логами и другие параметры. Механизм журналирования позволяет осуществлять фильтрацию нужных событий по ключевым слом перед отправкой на центральны сервер. Ниже мы рассмотрим различные примеры конфигураций с описание задачи, которую необходимо решить. Конфигурацию для протокола **Rsyslog** можно задать как в одном файле, так и в нескольких. При старте основного процесса все конфигурации из файлов будут считаны и применены. ==== Запись событий из динамических файлов в журналы событий на устройстве ==== Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «**nano /etc/rsyslogd.d/.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/.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/.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/.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:общие_настройки|Вернуться к оглавлению]]