LNMP下如何处理错误日志

LNMP下处理错误日志可从查看、配置、分析及维护等方面入手,具体如下:

  • 查看日志文件

    • Nginx错误日志:默认路径 /var/log/nginx/error.log,可通过 tail -f 实时查看。
    • PHP错误日志:默认路径 /var/log/php-fpm.log 或自定义路径(需在 php.iniphp-fpm.conf 中配置 error_log)。
    • MySQL错误日志:默认路径 /var/log/mysql/error.log,可通过 SHOW VARIABLES LIKE 'log_error' 确认。
  • 配置日志记录

    • Nginx:在 nginx.conf 中通过 error_log 指令设置路径和日志级别(如 error 记录错误,warn 记录警告)。
    • PHP
      • 全局配置:在 php.ini 中设置 log_errors=Onerror_log 路径,生产环境建议关闭 display_errors
      • 脚本动态配置:通过 ini_set('error_log', '/path/to/log') 临时指定日志文件。
    • MySQL:在 my.cnf 中配置 log-error 路径,可通过 FLUSH LOGS 重置日志。
  • 分析日志内容

    • 使用 grep 过滤关键错误,如 grep -i 'error' /var/log/nginx/error.log
    • 结合工具分析,如 awk 统计错误频率,或通过 logrotate 定期归档日志。
  • 处理异常情况

    • 权限问题:确保日志目录可写(如 chown -R www-data:www-data /var/log/nginx)。
    • 日志过大:通过 logrotate 按时间或大小切割日志,避免占满磁盘。
    • 生产环境优化:关闭 display_errors,仅记录关键错误到日志,避免敏感信息泄露。
  • 自动化监控

    • 使用 cron 定时任务定期检查日志,如 0 * * * * tail -n 100 /var/log/php-fpm.log > /tmp/php_errors.txt
    • 配合监控工具(如 Prometheus + Grafana)实时告警异常日志。

参考来源:[1,3,4,5,6,7,8,9,10,11,12,14]