Debian中Nginx日志管理方法是什么
导读:Debian 中 Nginx 日志管理方法 一 日志位置与查看 默认日志路径为:/var/log/nginx/access.log(访问日志)与 /var/log/nginx/error.log(错误日志)。 常用查看方式: 实时查看访...
Debian 中 Nginx 日志管理方法
一 日志位置与查看
- 默认日志路径为:/var/log/nginx/access.log(访问日志)与 /var/log/nginx/error.log(错误日志)。
- 常用查看方式:
- 实时查看访问日志:
tail -f /var/log/nginx/access.log - 实时查看错误日志:
tail -f /var/log/nginx/error.log - 查看服务日志:
journalctl -u nginx -f
- 实时查看访问日志:
- 多虚拟主机场景下,常见按站点切分的访问日志(如:other_vhost_access.log)也位于同一目录。
二 自定义日志格式与输出路径
- 在 /etc/nginx/nginx.conf 的 http 块中定义格式,在 server 或 location 中引用:
- 示例:
http { log_format custom '$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 custom; error_log /var/log/nginx/error.log; }
- 示例:
- 修改配置后建议先检查语法并平滑重载:
sudo nginx -tsudo systemctl reload nginx
三 日志轮转 Logrotate 配置
- 创建或编辑 /etc/logrotate.d/nginx:
/var/log/nginx/*.log { daily missingok rotate 7 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 $(cat /var/run/nginx.pid) fi endscript } - 关键参数说明:
- daily:按天轮转;rotate 7:保留最近 7 份;compress/delaycompress:压缩旧日志并延迟一次;
- notifempty:空文件不轮转;create 0640 www-data adm:新建日志权限与属主;
- postrotate … kill -USR1:通知 Nginx 重新打开日志文件,确保写入新文件。
- 测试与执行:
- 语法/调试:
sudo logrotate -d /etc/logrotate.conf - 强制执行:
sudo logrotate -f /etc/logrotate.d/nginx
- 语法/调试:
- 自动化:系统通常通过 /etc/cron.daily/logrotate 每日触发。
四 监控分析与备份
- 实时监控与分析:
- 关键词检索:
grep "ERROR" /var/log/nginx/error.log - 命令行分析:
awk/grep组合统计与过滤 - 可视化/集中化:GoAccess(实时分析)、ELK Stack(Elasticsearch/Logstash/Kibana)、Graylog、Grafana Loki
- 关键词检索:
- 备份与清理:
- 归档压缩:
tar或rsync定期备份 /var/log/nginx/ - 清理旧压缩日志:
find /var/log/nginx/ -type f -name "access.log.*.gz" -mtime +30 -delete
- 归档压缩:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian中Nginx日志管理方法是什么
本文地址: https://pptw.com/jishu/756366.html
