Rsyslog настройка
Rsyslog-это утилита с открытым исходным кодом, используемая в UNIX и Unix-подобных компьютерных системах для пересылки сообщений журнала в IP -сети. Он реализует базовый протокол syslog, расширяет его фильтрацией на основе контента, богатыми возможностями фильтрации, операциями в очереди для обработки автономных выходов, поддержкой различных выходов модулей, гибкими параметрами конфигурации и добавляет такие функции, как использование TCP для транспорта. (Википедия)
Потребовалось получать логи событий в одном месте. Выбор пал на Rsyslog, самое наверное простое средство для сбора логов, которое есть в linux-подобных системах. Настраивать Rsyslog будем с простым конфигом, без всяких излишек. Для начала нужно открыть 514 порт для протоколов TCP и UDP.
Для настройки необходимо отредактировать конфигурационный файл /etc/rsyslog.conf.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<strong>Было</strong> # provides UDP syslog reception #module(load="imudp") #input(type="imudp" port="514") # provides TCP syslog reception #module(load="imtcp") #input(type="imtcp" port="514") <strong>Стало </strong># provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514") |
В моем случае логи необходимо собирать в /var/log/rsyslog/ с указанием хоста с которого они пришли, поэтому в файл 50-default.conf вносим следующие данные:
1 |
nano /etc/rsyslog.d/50-default.conf |
И в самый конец добавляем три строчки:
1 2 3 |
$template RemoteLogs,"/var/log/rsyslog/%HOSTNAME%/%HOSTNAME%.log" *.* ?RemoteLogs & stop |
Если полученные логи требуется перенаправлять на другой сервер, то необходимо создать дополнительный конфигурационный файл:
1 |
nano /etc/rsyslog.d/02-server.conf |
Со следующим содержанием:
1 2 3 4 5 6 7 8 |
module(load="imfile" PollingInterval="5" statefile.directory="/var/spool/rsyslog") input(type="imfile" File="/var/log/rsyslog/%HOSTNAME%/%HOSTNAME%.log" Tag="KATA" Severity="error" Facility="local7") local7.* @10.10.15.3:514 |
где 10.10.15.3 это адрес куда мы отправляем логи.
Часто бывает проблема, что логи не пересылаются по каким-то причинам. Распространенная причина — это сам дополнительный конфигурационный файл, поэтому после создания требуется его проверить на ошибки:
1 |
rsyslogd -N1 -f /etc/rsyslog.d/02-server.conf |
После всех настроек не забываем перезапустить сервис Rsyslog:
1 |
service rsyslog restart |
В случае не верно указанной даты в логах, можем настроить дату и время:
1 2 |
timedatectl set-timezone Europe/Moscow rm -rf /etc/localtime ; ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime |
После указания верной даты и времени, не забываем перезапустить сервис Rsyslog.