我正在尝试将 Apache/2.2.22 (Ubuntu) 日志发送到远程 rsyslogd 8.2001.0 (aka 2020.01) 服务器,然后使用 awstats 7.6 (build 20161204)。我的格式有问题,awstats 显示行损坏我猜测行损坏是因为一开始有一个额外的空白。有人能告诉我为什么 rsyslog 添加了这个额外的空间或如何删除它吗?日志看起来像:
x.x.x.x - - [06/Jan/2022:08:39:07 +0200] "GET /1.php HTTP/1.1" 200 2906 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
但应该看起来像:
x.x.x.x - - [06/Jan/2022:08:39:07 +0200] "GET /1.php HTTP/1.1" 200 2906 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
我的 apache 配置将日志发送到 local7:
CustomLog "| /bin/bash -c /usr/bin/tee -a ${APACHE_LOG_DIR}/access-my.domain.log | /usr/bin/logger -t my.domain.com -p local7.info" combined
发件人 rsyslog 配置:
$ModLoad imfile
$InputFilePollInterval 10
$InputFileName /var/log/apache2/access-*.log
$InputFileTag apache2-access
$InputFileStateFile stat-apache-access
$InputFileSeverity info
$InputRunFileMonitor
$InputFileFacility local7
local7.* @x.x.x.x
接收器 rsyslog:
module(load="imudp")
input(type="imudp" port="514")
$template mydomain, "/var/log/remote-logs/access-my.domain.com.log"
$template mydomain2, "%msg%\n"
if $syslogtag == "my.domain.com:" then ?mydomain;mydomain2
& stop
请帮忙,如果您知道这是额外的:Apache 应该登录到 local7 并将文件保存在本地,但是这个 CustomLog 只发送到 local7 而不在本地保存文件,我知道这是旧的(DISTRIB_DESCRIPTION="Ubuntu 12.04.5 LTS"),这就是我将日志发送到远程服务器的原因,因为在这个发行版中没有更多的包用于 awstats 和 Perl 模块。