debian

Debian下Nginx日志如何管理

小樊
36
2025-05-13 08:55:52
栏目: 智能运维

在Debian系统下,Nginx日志的管理可以通过配置日志服务(如rsyslog或syslog-ng)以及使用logrotate工具来实现。以下是详细的步骤和方法:

Nginx日志存储策略

  1. 安装rsyslog
sudo apt update
sudo apt install rsyslog
  1. 配置rsyslog收集Nginx日志
ModLoad imfile
InputFileName /var/log/nginx/access.log
InputFileTag nginx-access:InputFile
InputFileStateFile stat-nginx-access
InputFileSeverity info
InputFileFacility local7
InputFilePollInterval 10
InputFilePersistStateInterval 200
InputRunFileMonitor

ModLoad imfile
InputFileName /var/log/nginx/error.log
InputFileTag nginx-error:InputFile
InputFileStateFile stat-nginx-error
InputFileSeverity warning
InputFileFacility local7
InputFilePollInterval 10
InputFilePersistStateInterval 200
InputRunFileMonitor
  1. 重启rsyslog服务
sudo systemctl restart rsyslog

日志文件管理命令

tail -f /var/log/nginx/access.log
cat /var/log/nginx/error.log
grep "error" /var/log/nginx/error.log
less /var/log/nginx/access.log
head -n 20 /var/log/nginx/access.log
wc -l /var/log/nginx/access.log
sed 's/old/new/g' /var/log/nginx/access.log
awk '{print 1}' /var/log/nginx/access.log
find /var/log -name "*.log"
gzip /var/log/nginx/access.log
gunzip /var/log/nginx/access.log.gz

Nginx日志轮转配置

  1. 安装logrotate(如果尚未安装):
sudo apt-get install logrotate
  1. 创建或编辑Nginx logrotate配置文件
sudo nano /etc/logrotate.d/nginx
  1. 添加配置文件内容
/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
}
  1. 测试配置
sudo logrotate -d /etc/logrotate.d/nginx
  1. 验证定时任务

logrotate 通常由每日 cron 任务自动运行。您可以检查 /etc/cron.daily/logrotate 文件以确认:

cat /etc/cron.daily/logrotate

通过上述配置和命令,可以有效地管理和存储Nginx的日志信息,确保系统的安全性和可维护性。

0
看了该问题的人还看了