日志到系统日志

Nginx 可以将日志发送到系统日志服务(syslog),便于集中管理和分析。

配置系统日志

错误日志

error_log syslog:server=127.0.0.1:514,tag=nginx,severity=error;

访问日志

log_format syslog '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';

access_log syslog:server=127.0.0.1:514,tag=nginx,severity=info syslog;

系统日志级别

级别说明
debug调试信息
info一般信息
notice通知信息
warn警告信息
error错误信息
crit严重错误
alert需要立即处理
emerg系统不可用

系统日志格式

log_format syslog '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';

系统日志轮转

系统日志通常由系统日志服务(如 rsyslog、syslog-ng)管理,自动轮转。

查看系统日志

# Linux
sudo journalctl -u nginx -f

# 或查看 syslog 文件
sudo tail -f /var/log/syslog | grep nginx

示例配置

error_log syslog:server=127.0.0.1:514,tag=nginx,severity=error,facility=local7;

http {
    log_format syslog '$remote_addr - $remote_user [$time_local] '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent"';

    access_log syslog:server=127.0.0.1:514,tag=nginx,severity=info,facility=local7 syslog;
}