Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 2 Текущий »

Пакет rsyslog это open source программное обеспечение, предназначенное для обработки логов и выдающая их в разнообразных форматах.
Rsyslog не разрабатывается сотрудниками Eltex и не включает доработок, за исключением конфигурации.

Установка rsyslog

root@root:/# apt update
root@root:/# apt install rsyslog

После установки необходимо добавить демона Keepalived в автозагрузку и запустить его:

root@root:/# systemctl enable rsyslog
root@root:/# systemctl start rsyslog

Конфигурация rsyslog

Конфигурация состоит из основного файла /etc/rsyslog.conf и дополнительно созданных файлов в папке /etc/rsyslog.d/*.conf.

/etc/rsyslog.conf
# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf


#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
#module(load="imudp")
#input(type="imudp" port="514")

# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514


# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
#$PrivDropToUser syslog
#$PrivDropToGroup syslog

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

где
Обеспечивает получение сислог-сообщений через сеть по UDP и TCP

$ModLoad imudp

$UDPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514


Устанавливает права доступа, владельца и группу по умолчанию для лог-файлов

$FileOwner root

$FileGroup adm

$FileCreateMode 0640

$DirCreateMode 0755

$Umask 0022

Интегрирует файлы конфигурации из папки /etc/rsyslog.d/ с расширением .conf

$IncludeConfig /etc/rsyslog.d/*.conf


Создание файла конфигурации в папке /etc/rsyslog.d/ и папки хранения логов /var/log/eltex с выдачей прав

root@root:/# mkdir /var/log/eltex
root@root:/# chown root:adm /var/log/eltex/
root@root:/# touch /etc/rsyslog.d/eltex.conf

Настройка файла конфигурации eltex.conf:

/etc/rsyslog.d/eltex.conf
$template FileFormatTemplate,"<%PRI%> 1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME%-%syslogseverity-text%-%MSGID%: %msg%\n\r"

$template LogFileTemplate,"/var/log/eltex/%FROMHOST%/%$now%.log"

$template Templ,"<%PRI%> 1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %msg%\n\r"


if not ($APP-NAME startswith "%") then ?LogFileTemplate;FileFormatTemplate
if ($APP-NAME startswith "%") then ?LogFileTemplate;Templ

При таком файле конфигурации и введённой настройке будет создаваться папка с адресом источника, в которой будут создаваться файлы даты получения сообщения.
Сами syslog сообщения на сервере будут преобразовываться в формат RFC 5424.

<190> 1 2022-05-13T16:30:33.387810+07:00 192.168.0.2 %NSFP-I-SFPGibicDetected  te1/0/2 SFP port is present


Возможные поля для парсинга
msg - тело сообщения
hostname - имя хоста\ip из сообщения
fromhost - имя хоста, от которого пришло сообщение
fromhost-ip - адрес хоста, от которого пришло сообщения (127.0.0.1 для локальных сообщений)
syslogtag - имя и номер процесса (" rsyslogd[12125]:"), который выдал сообщение (извлекается из сообщения)
programname - имя процесса, который выдал сообщение (извлекается из сообщения)
pri - источник и приоритет, в виде числа
pri-text - декодированные источник и приоритет (facility.priority, например syslog.emer)
syslogfacility - только источник в виде числа
syslogfacility-text - только декодированный источник ("local0")
syslogseverity - только приоритет в виде числа
syslogseverity-text - только декодированный уровень ("debug")
timegenerated - время получения  (с высоким разрешением)
timereported - время, извлечённое из сообщения
inputname - имя входного модуля
$hour, $minute - текущее время
$myhostname - имя хоста обработки



  • Нет меток