Both sides previous revisionPrevious revisionNext revision | Previous revision |
tssltd:дополнительные_возможности_логирования [2023/05/26 17:46] – i.sharapov | tssltd:дополнительные_возможности_логирования [2023/10/09 13:18] (current) – n.ganenkov |
---|
[[tssltd:общие_настройки|Вернуться к оглавлению]] | [[tssltd:общие_настройки|Вернуться к оглавлению]] |
| |
=== Общая настройка протокола Rsyslog === | ==== Общая настройка протокола Rsyslog ==== |
| |
<WRAP indent> | <WRAP indent> |
На устройстве <wrap em>МКСЗ Diamond VPN/FW</wrap> поддерживается возможность выгрузки отдельных журналов событий (файлов) на удаленный сервер по протоколу rsyslog. | На устройстве <wrap em>МКСЗ Diamond VPN/FW</wrap> поддерживается возможность выгрузки отдельных журналов событий (файлов) на удаленный сервер по протоколу **rsyslog**. |
| |
Для активации этой функции необходимо произвести предварительную настройку. Необходимо подключиться к устройству по протоколу ssh и перейти в папку назначения с помощью команды «**/etc/rsyslog.d**». Далее с помощью команды «**nano file_name.conf**» необходимо создать конфигурационный файл. В конфигурационной файле необходимо задать параметры журналирования, сетевой адрес сервера, сетевой протокол, файл с логами и другие параметры. Механизм журналирования позволяет осуществлять фильтрацию нужных событий по ключевым слом перед отправкой на центральны сервер. Ниже мы рассмотрим различные примеры конфигураций с описание задачи, которую необходимо решить. | Для активации этой функции необходимо произвести предварительную настройку. Необходимо подключиться к устройству по протоколу ssh и перейти в папку назначения с помощью команды «**/etc/rsyslog.d**». Далее с помощью команды «**nano file_name.conf**» необходимо создать конфигурационный файл. В конфигурационной файле необходимо задать параметры журналирования, сетевой адрес сервера, сетевой протокол, файл с логами и другие параметры. Механизм журналирования позволяет осуществлять фильтрацию нужных событий по ключевым слом перед отправкой на центральны сервер. Ниже мы рассмотрим различные примеры конфигураций с описание задачи, которую необходимо решить. |
| |
Конфигурацию для протокола Rsyslog можно задать как в одном файле, так и в нескольких. При старте основного процесса все конфигруации из файлов будут считаны и применены. | Конфигурацию для протокола **Rsyslog** можно задать как в одном файле, так и в нескольких. При старте основного процесса все конфигурации из файлов будут считаны и применены. |
| |
=== Запись событий из динамических файлов в журналы событий на устройстве === | </WRAP> |
| |
| ==== Запись событий из динамических файлов в журналы событий на устройстве ==== |
| |
| <WRAP indent> |
Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «**nano /etc/rsyslogd.d/<file_name>.conf**». В конфигурационном файле задать следующие настройки. | Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «**nano /etc/rsyslogd.d/<file_name>.conf**». В конфигурационном файле задать следующие настройки. |
| |
</code> | </code> |
| |
В данном примере, мы анализируем поступающую информацию из файла «**/var/log/messages**» и применяем к сообщениям фильтры по ключевым словам «**eigrpd**», «**bgpd**». События для ключа «**eigrpd**» записываются в файл «**/media/storage/logs/frr_eigrp.log**», для ключа «**bgpd**» - «**/media/storage/logs/frr_bgp.log**» | В данном примере, мы анализируем поступающую информацию из файла «**/var/log/messages**» и применяем к сообщениям фильтры по ключевым словам «**eigrpd**», «**bgpd**». События для ключа «**eigrpd**» записываются в файл «**/media/storage/logs/frr_eigrp.log**», для ключа «**bgpd**» записываются в файл «**/media/storage/logs/frr_bgp.log**» |
| |
| |
| </WRAP> |
| |
| ==== Отправка событий из динамических файлов на удаленных сервер ==== |
| |
| <WRAP indent> |
| Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «**nano /etc/rsyslogd.d/<file_name>.conf**». В конфигурационном файле задать следующие настройки. |
| |
| <code> |
| 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") |
| } |
| </code> |
| |
| В данном примере, мы анализируем поступающую информацию из файла «**/var/log/messages**» и применяем к сообщениям фильтры по ключевым словам «**eigrpd**», «**bgpd**». События для ключа «**eigrpd**» и «**bgpd**» отправляем по протоколу «**udp**» на удаленный сервер с сетевым адресом «**10.34.17.88**» на порт «**514**». |
| </WRAP> |
| |
| ==== Отправка событий из динамических файлов на несколько удаленных сервер ==== |
| |
| <WRAP indent> |
| Для задания нужной конфигурации необходимо открыть на редактирование файл с настройками с помощью команды «**nano /etc/rsyslogd.d/<file_name>.conf**». В конфигурационном файле задать следующие настройки. |
| |
| <code> |
| 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") |
| } |
| </code> |
| |
| В данном примере, мы анализируем поступающую информацию из файла «**/var/log/messages**» и применяем к сообщениям фильтры по ключевым словам «**eigrpd**». События для ключа «**eigrpd**» отправляем по протоколу «**udp**» на два удаленных сервера с сетевым адресом «**10.34.17.88**» на порт «**514**» и «**10.34.17.90**» на порт «**514**». |
| </WRAP> |
| |
| ==== Дополнительные параметры обработки и отправки журналов событий. ==== |
| |
| <WRAP indent> |
| |
| Протокол **rsyslog** поддерживает возможность фильтровать информацию по заданным критериям для последующей отправки на удаленный сервер. Общий форма сообщения: |
| <code>if [$свойство] [условие] then [action]</code> |
| |
| Перечень **свойств**, которые можно задать: |
| * **msg** - сообщение syslog |
| * **hostname** - от кого сообщение |
| * **syslogtag** - TAG сообщения |
| * **programname** - название процесса, |
| * **pri** - приоритет сообщения |
| * **syslogfacility** - syslog facility как число |
| * **syslogfacility-text** - facility в текстовом формате |
| * **syslogseverity** - важность |
| * **syslogseverity-text** - важность в текстовом формате |
| |
| Перечень **условий**, которые можно использовать: |
| * **contains** - содержит |
| * **isequal** - равно |
| * **startswitch** - начинается с |
| * **regex** - регулярное выражение |
| |
| Условия для поиска можно комбинировать с помощью логических операций or/and/not, например: |
| |
| <code> |
| * 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 |
| </code> |
| |
| Возможные категории для логов перечислены в __//табл. 9.f.1 и 9.f.2//__. |
| |
| <WRAP center round box 100%> |
| |
| __//Табл. 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 |Отладочная информация| |
| </WRAP> |
| |
</WRAP> | </WRAP> |
| |
[[tssltd:общие_настройки|Вернуться к оглавлению]] | [[tssltd:общие_настройки|Вернуться к оглавлению]] |