
У меня возникла проблема с настройкой rsyslog для записи данных удаленного журнала в определенный файл. У меня есть два ящика Windows Server 2008, на каждом из которых есть приложение C#, использующее NLog.Targets.Syslog, которое записывает свои отладочные данные на ящик Linux. Все данные журнала записываются в /var/log/syslog просто отлично, но я хочу иметь отдельный файл журнала для каждого сервера, а данные журнала не записываются в эти пользовательские файлы журнала.
Вот моя установка:
/etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
Я создал собственный файл конфигурации в /etc/rsyslog.d
/etc/rsyslog.d/22-remote.conf
:msg, contains, "AMAZONA-COMPUTERNAME1" /var/log/dbm/server-1.log
& ~
:msg, contains, "AMAZONA-COMPUTERNAME2" /var/log/dbm/server2.log
& ~
*.* /var/log/syslog.log
AMAZONA-COMPUTERNAME1 — имя компьютера Windows сервера. Я также пробовал IP-адреса, и это тоже не работает. Что я упускаю? файлы журналов находятся по пути /var/log/dbm/
Я не получаю никаких ошибок от rsyslog по этому поводу, и он успешно записывает все данные удаленного журнала в /var/log/syslog. Что я делаю не так?
На сервере регистрации я запускаю Ubuntu на экземпляре Amazon EC2.
Вот моя конфигурация NLog:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extensions>
<add assembly="NLog.Targets.Syslog" />
</extensions>
<targets>
<target name="syslog" type="Syslog" syslogserver="server ip here" port="514" facility="Local7"/>
</targets>
<rules>
<logger name="*" minLevel="Trace" appendTo="syslog"/>
</rules>
</nlog>
Пример вывода журнала в /var/log/syslog
Oct 15 18:18:50 AMAZONA-COMPUTERNAME2 NLog: 2012-10-15 18:18:50.2890|DEBUG|myapp.download.excel.ExcelWorkbook| -- Copied in the data table: 0
Oct 15 18:18:50 AMAZONA-COMPUTERNAME2 NLog: 2012-10-15 18:18:50.2890|DEBUG|myapp.download.excel.ExcelWorkbook| -- Formatted Header and Footer: 0
решение1
Ладно, решил. Я изменил запись конфигурации в моем пользовательском файле 22-remote.conf в /etc/rsyslog.d/ с этой:
:msg, contains, "AMAZONA-COMPUTERNAME1" /var/log/dbm/server-1.log
& ~
:msg, contains, "AMAZONA-COMPUTERNAME2" /var/log/dbm/server2.log
& ~
К этому:
if $fromhost-ip == '10.11.12.12' then /var/log/dbm/server-1.log
& ~
if $fromhost-ip == '10.11.13.13' then /var/log/dbm/server2.log
& ~