Как я могу отправить файлы журнала, отличные от стандартных, на удаленный сервер rsyslog? [дубликат]

Да, я вижу, что вы хотите пометить это как дубликат, и я ценю это, но, пожалуйста, прочтите до конца.

Я нашел этот вопрос в нескольких местах, и ответы либо слишком расплывчаты, чтобы новичок в rsyslog мог понять ... например, этот

Waaay слишком сложен, чтобы быть легким для понимания способом решения что я хочу сделать .... как это

Или очень близко к тому, что я ищу, но не совсем .... как this

Во всяком случае, к конкретному вопросу.

Сервер X = Централизованный сервер системного журнала, на котором запущен rsyslog.

Сервер Y = Сервер, на котором работает Redmine

Я уже настроил Y для отправки файлов журнала по умолчанию на X . Я использовал эти инструкции в сочетании с некоторыми другими.

X /etc/rsyslog.conf:

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


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

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support
#$ModLoad immark  # provides --MARK-- message capability

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

# This one is the template to generate the log filename dynamically, depending on the client's IP address.
$template FILENAME,"/var/log/logs/%fromhost-ip%/syslog.log"

# Log all messages to the dynamically formed file. Now each clients log (192.168.1.2, 192.168.1.3,etc...), wil    l be under a separate directory which is formed by the template FILENAME.
*.* ?FILENAME


# Enable non-kernel facility klog messages
$KLogPermitNonKernelFacility 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 syslog
$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

Как видите, журналы, отправляемые на X , помещаются в каталог, названный в честь IP-адреса, с которого они получены.

Д /etc/rsyslog.d/10-rsyslog.conf

*.* @192.168.1.X:514

Все работает, и у меня все отлично.

Я бы хотел добыть редмин.Файл access.log, расположенный по адресу /var/log/apache2/redmine.access.log , также отправляется на сервер системного журнала X

Как я уже сказал, я много читал об этом. Я просто не слежу за этим, и мне нужен более простой пример.

Я хотел бы хранить файлы журналов на X и Y , так что передавать их прямо куда угодно - это не то, что я хочу.

Я нашел самые простые инструкции, которым я мог почти следовать, были эти . Проблема с ними в том, что на самом деле ничего не объясняется, и я действительно хочу понять, как это работает.

Меня не волнует, будет ли redmine.access.log добавлен в syslog (хотя я бы предпочел этого не делать), или если он будет записан где-то еще вместе (очевидно, на X хотя).

Если кто-то может написать, что, по их мнению, я должен делать, я обновлю свой вопрос, чтобы моя последняя конфигурация работала, так что, надеюсь, другие новички смогут извлечь выгоду из моих глупых вопросов.

РЕДАКТИРОВАТЬ

Это редактирование объясняет, почему это не дубликат.

Это дубликат .... Вот я это признал.

Но мне бы очень хотелось увидеть что-то настолько простое, чтобы иметь действительно полный пример. Итак, если это будет помечено как дубликат и удалено, это нормально, но я все равно собираюсь отредактировать его с помощью рабочего примера в конце.

-1
задан 23 May 2017 в 15:41
1 ответ

Все, что вам нужно сделать, это создать новый файл конфи в /etc/rsyslog.d/, а затем заполнить его директивами $Input[...]. Например,

$InputFileName /var/log/apache2/redmine.access.log
$InputFileTag web.apache.access-combined.pro.whatever.yourface:
$InputFileStateFile stat-file1-ApacheAccess
$InputFileSeverity info
$InputFileFacility local7
$InputFilePollInterval 1
$InputFilePersistStateInterval 1
$InputRunFileMonitor

Добавьте такой блок для каждого файла, который вам нужен. Фактически, технически вам не нужно делать новое конфи, просто добавьте к существующему. Однако, если вы ищете решение для копирования/вставки, вы можете быть разочарованы. В конце концов, rsyslog не так уж и сложно разобраться, так что у вас все получится. Что мило.

2
ответ дан 5 December 2019 в 19:25

Теги

Похожие вопросы