2013-09-05 6 views
1

Есть несколько виртуальных доменов работают на Apache 2.2.22 (Ubuntu 12.04), я хочу, чтобы отправить каждый журналы ошибок ВХост отделить Rsyslog файл, Ниже приведены конфигурацииКак регистрировать ошибки Apache для разных объектов syslog для каждого виртуального хоста?

Apache ВХост

<VirtualHost *:80> 
    php_value auto_prepend_file sdemoqa.php 
    DocumentRoot /home/www//demoqa 
    ServerName sdemoqa.xyz.com 
    ErrorLog "syslog:local1" 
    CustomLog /var/log/apache/sdemoqa-access.log combined 

    RewriteEngine on 
    Include /nas/wow.conf 
    Include /nas/auth.conf 
</VirtualHost> 


<VirtualHost *:80> 
    DocumentRoot /home/www/demoqa/hearing 
    ServerName shdemoqa.xyz.com 
# ErrorLog /var/log/apache/hdemoqa-error.log 
    ErrorLog "syslog:local2" 
    CustomLog /var/log/apache/shdemoqa-access.log combined 
</VirtualHost> 

Syslog конфигурации /etc/rsyslog.d/50-default.conf

#Mod Security Logs 
local1.*      /var/log/apache2/modsec/sdemoqa.log 
local2.*      /var/log/apache2/modsec/shdemoqa.log 

Но все ВХосты ошибки будут перенаправлять на первую запись, указанный в системном журнале апач конфиги. Я имею в виду как ВХосты журналы ошибок собираются «local1. * /var/log/apache2/modsec/sdemoqa.log»

Благодарности infosec.pk

ответ

0

Вам может понадобиться изменить свой CustomLog линию с чем-то как следующее:

CustomLog "|/bin/logger -p local1.info -t apache" combined 
ErrorLog syslog:local1 
+0

Разве это не избыточно? Оператор 'ErrorLog syslog: local1' отправляет в локальную систему syslog. И, как я помню; 'CustomLog' заключается в том, чтобы не определять шаблон регистрации adhoc? – renoirb

0

Я думаю, что дело здесь в том, что combined должны быть в конце первой регистрации линии в каждом виртуальном хосте или он объединил его с рядом ВХост входит возможно. Так как уже упоминалось Том или перевернутым, как ОП был он скомандовал:

ErrorLog syslog:local1 combined 
CustomLog "|/bin/logger -p local1.info -t apache" 

Это должно быть так, по крайней мере, первый виртуальный хост, если есть только два виртуальных доменов, если есть больше его нужно заказать этот путь с combined в конце первой строки ведения журнала в каждом предыдущем vhost, иначе следующий vhost будет всегда объединяться в предыдущие настройки/местоположение журнала vhost.

Отказ от ответственности: Я не в полной мере испытал это, проверить это перед внедрением ...

2

syslog места для директив лесозаготовительных доступно только для ErrorLog директивы и Журнальная глобальна. В зависимости от того, что определено последним, это объект, который будет использоваться для всех местоположений регистрации syslog.

Как предлагаемый трубопровод для бревна - лучший способ достичь того, что вы описали, - это то, что уже упоминалось в журнале. Это несчастливо, потому что вы теряете способность отличать приоритет.

Кроме того, другие ответы предполагают регистратор находится в /bin/logger на моей установке Ubuntu 12.04 он фактически находится в /usr/bin/logger

<VirtualHost *:80> 
    php_value auto_prepend_file sdemoqa.php 
    DocumentRoot /home/www//demoqa 
    ServerName sdemoqa.xyz.com 
    CustomLog "|/usr/bin/logger -p local1.notice -t apache" common 
    CustomLog /var/log/apache/sdemoqa-access.log combined 

    RewriteEngine on 
    Include /nas/wow.conf 
    Include /nas/auth.conf 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot /home/www/demoqa/hearing 
    ServerName shdemoqa.xyz.com 
    CustomLog "|/usr/bin/logger -p local2.notice -t apache" common 
    CustomLog /var/log/apache/shdemoqa-access.log combined 
</VirtualHost> 

Я конвейеру оба VirtualHost заявления на предположении, что вы хотели бы директивы по умолчанию ErrorLog также перейти на syslog в другом месте.