Nginx日志管理的高效存储和查询可以通过以下几个步骤来实现:
logrotate工具按天、周或月分割日志文件,避免单个日志文件过大。/var/log/nginx/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 nginx adm
}
/var/log/nginx/*.log {
size 10M
rotate 5
compress
delaycompress
missingok
notifempty
create 0640 nginx adm
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
input {
file {
path => "/var/log/nginx/*.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "nginx-%{+YYYY.MM.dd}"
}
}
find /var/log/nginx -type f -name "*.log" -mtime +7 -exec rm -f {} \;
通过以上步骤,可以有效地管理和查询Nginx日志,确保日志存储的高效性和查询的便捷性。