我想配置 Apache 将访问日志发送到日志分析系统,因此是否可以通过配置 Apache 来实现,或者我必须使用 Syslog 工具来发送日志。
答案1
就像上面所解释的,Apache 可以立即将其日志发送到 syslog,而不是让 syslog 处理 Apache 日志。Apache 配置系统日志
这已经足够了:
CustomLog "|/usr/bin/logger -t httpd -p <facility>.<priority>" <log format name>
如果这些消息的标准处理不够充分,您可能需要配置系统日志。
答案2
您没有提到具体的日志分析软件,我认为您希望通过 syslog 协议来实现这一点。因此,您需要在 syslog 客户端(apache webserver)上执行以下操作。
- 在 /etc/rsyslog.d/apache_access.log.conf 下创建一个配置文件
对于 access.log:
$ModLoad imfile
$InputFileName /var/log/apache2/access.log
$InputFileTag apache_access:
$InputFileStateFile stat-apache-access
$InputFileSeverity info
$InputFileFacility local3
$InputRunFileMonitor
$InputFilePollInterval 10
local3.* @@ip-analysis-system:<portnumber-ip-analysis-system>
对于 error.log
/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /var/log/apache2/error.log
$InputFileTag apache_error:
$InputFileStateFile stat-apache-error
$InputFileSeverity info
$InputFileFacility local3
$InputRunFileMonitor
$InputFilePollInterval 10
local3.* @@ip-analysis-system:<portnumber-ip-analysis-system>
使用以下命令重新启动 syslog:
systemctl 重启 rsyslog
现在,来自 local3 设施的所有数据都已发送到您的分析服务器。
顺便说一句:我认为您的问题是重复的。请查看下面的链接。