0
我花了几个小时试图弄清楚为什么logrotate不能成功上传我的日志到S3,所以我在这里发布我的设置。这里的东西 - logrotate的正确上传日志文件到S3的时候我强迫它像这样:Logrotate没有上传到S3
sudo logrotate -f /etc/logrotate.d/haproxy
Starting S3 Log Upload...
WARNING: Module python-magic is not available. Guessing MIME types based on file extensions.
/var/log/haproxy-2014-12-23-044414.gz -> s3://my-haproxy-access-logs/haproxy-2014-12-23-044414.gz [1 of 1]
315840 of 315840 100% in 0s 2.23 MB/s done
不过,这并不为正常logrotate的过程中取得成功。日志仍然由我的正面脚本压缩,所以我知道它正在运行。这里是我的设置:
/etc/logrotate.d/haproxy =>
/var/log/haproxy.log {
size 1k
rotate 1
missingok
copytruncate
sharedscripts
su root root
create 777 syslog adm
postrotate
/usr/local/admintools/upload.sh 2>&1 /var/log/upload_errors
endscript
}
/usr/local/admintools/upload.sh =>
echo "Starting S3 Log Upload..."
BUCKET_NAME="my-haproxy-access-logs"
# Perform Rotated Log File Compression
filename=/var/log/haproxy-$(date +%F-%H%M%S).gz \
tar -czPf "$filename" /var/log/haproxy.log.1
# Upload log file to Amazon S3 bucket
/usr/bin/s3cmd put "$filename" s3://"$BUCKET_NAME"
这里是输出一个干转的logrotate:
sudo logrotate -fd /etc/logrotate.d/haproxy
reading config file /etc/logrotate.d/haproxy
Handling 1 logs
rotating pattern: /var/log/haproxy.log forced from command line (1 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/haproxy.log
log needs rotating
rotating log /var/log/haproxy.log, log->rotateCount is 1
dateext suffix '-20141223'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/haproxy.log.1 to /var/log/haproxy.log.2 (rotatecount 1, logstart 1, i 1),
renaming /var/log/haproxy.log.0 to /var/log/haproxy.log.1 (rotatecount 1, logstart 1, i 0),
copying /var/log/haproxy.log to /var/log/haproxy.log.1
truncating /var/log/haproxy.log
running postrotate script
running script with arg /var/log/haproxy.log : "
/usr/local/admintools/upload.sh 2>&1 /var/log/upload_errors
"
removing old log /var/log/haproxy.log.2
任何洞察赞赏。
什么是文件(或dir)'/ var/log/upload_errors'?如果它是'upload.sh'的日志文件,那么该命令应该是'/usr/local/admintools/upload.sh >>/var/log/upload_errors 2>&1' – Jdamian
add'set -x' as first 'upload.sh'的行,并检查消息 – Jdamian
是的,这解除了我的封锁。事实证明,我的s3cmd是为我的用户配置的,而不是root用户。 “错误:/root/.s3cfg:没有这样的文件或目录 错误:配置文件不可用 错误:考虑使用--configure参数来创建一个。”解决方案是复制我的配置文件。 – worker1138