linux

LNMP环境下日志管理方法

小樊
35
2025-12-06 03:53:31
栏目: 编程语言

LNMP环境下日志管理方法

一 日志分类与定位

组件 常见路径 主要用途
Nginx /var/log/nginx/access.log/var/log/nginx/error.log 访问记录、错误与诊断
PHP-FPM /var/log/php-fpm/(如:www-data-*.log 或 php-fpm.log) FPM 进程与脚本错误
MySQL/MariaDB /var/log/mysql/error.log,以及(可选)slow.loggeneral.log 错误、慢查询、通用查询
系统日志 journalctl -u nginx/mysql 服务启动、运行与崩溃信息

二 日志轮转与保留策略

/var/log/nginx/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 0644 root adm
    sharedscripts
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 $(cat /var/run/nginx.pid)
        fi
    endscript
}
/var/log/php-fpm/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        if [ -f /var/run/php-fpm/php-fpm.pid ]; then
            kill -USR2 $(cat /var/run/php-fpm/php-fpm.pid)
        fi
    endscript
}
/var/log/mysql/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 0640 mysql adm
}

三 日志格式与采集优化

http {
    log_format main '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';
    access_log /var/log/nginx/access.log main;
    error_log  /var/log/nginx/error.log;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
    expires 7d;
    access_log off;
}

四 分析与可视化

goaccess -a -d -f /var/log/nginx/access.log \
  --log-format '%h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^' \
  --date-format %d/%b/%Y --time-format %T \
  -o /var/www/html/goaccess.html

五 监控告警与安全合规

0
看了该问题的人还看了