Назад | Перейти на главную страницу

Apache httpd: отправлять журналы ошибок в системный журнал и на локальный диск? Не трогая /etc/syslog.conf?

У меня есть сервер Apache httpd 2.2. Я хочу регистрировать все сообщения с помощью системного журнала, чтобы запросы отправлялись на наш центральный сервер системного журнала. Я также хочу убедиться, что все сообщения журнала отправляются на локальный диск, чтобы системный администратор мог легко получить доступ к файлам журнала в локальной системе.

Журналы доступа HTTP легко отправлять как на локальный диск, так и в системный журнал. Один из распространенных методов:

LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
CustomLog "|/usr/bin/logger -t httpd -i -p local4.info" combined

Но для журналов ошибок это сделать непросто. Следующая конфигурация не работает, поскольку в журналах ошибок используется только последний раздел ErrorLog. Первая строка ErrorLog игнорируется.

ErrorLog logs/error_log
ErrorLog syslog:local4.error

Как я могу гарантировать, что журналы ошибок Apache записываются на локальный диск и отправляются в системный журнал?

Можно ли это сделать не трогая /etc/syslog.conf ? Я в порядке, если мои пользователи хотят управлять своими собственными файлами конфигурации Apache, но я не хочу, чтобы они касались системных файлов, таких как /etc/syslog.conf

Ты можешь использовать:

ErrorLog "| tee -a /var/log/httpd/error_log | /usr/bin/logger -t httpd -i -p local4.error"

делать то, что вам нужно.

Попробуйте отправить весь ErrorLog в канал, например сценарий perl. Этот сценарий Perl может направлять в системный журнал и на локальный диск.