[[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:общие_настройки|Вернуться к оглавлению]]