温馨提示×

Ubuntu下LNMP日志分析方法

小樊
41
2025-09-14 13:19:47
栏目: 智能运维

日志文件位置

  • Nginx/var/log/nginx/access.log(访问日志)、/var/log/nginx/error.log(错误日志)。
  • MySQL/var/log/mysql/error.log(错误日志)、/var/log/mysql/slow.log(慢查询日志,需手动开启)。
  • PHP/var/log/php-fpm.log/var/log/php7.x-fpm.log(错误日志,需在 php.ini 中配置)。
  • 系统/var/log/syslog/var/log/auth.log

常用命令行工具

  • 基础查看catlesstail -f(实时查看)。
  • 关键词搜索grep '关键字' /path/to/log
  • 统计分析
    • 统计IP访问量:awk '{print $1}' access.log | sort | uniq -c | sort -nr
    • 分析状态码分布:awk '{print $9}' access.log | sort | uniq -c
  • 日志轮转logrotate(自动切割、压缩旧日志)。

专用分析工具

  • GoAccess:实时可视化分析Nginx日志,生成HTML报告。
  • ELK Stack:用于大规模日志的存储、搜索和可视化分析。
  • mysqldumpslow:分析MySQL慢查询日志,按执行频率或耗时排序。

分析场景示例

  • Nginx异常请求:通过 grep '404\|500' access.log 定位错误请求,结合 awk 提取异常IP或URL。
  • MySQL性能优化:用 mysqldumpslow -s t -t 10 slow.log 找出耗时最长的10条查询,优化索引或SQL语句。
  • PHP错误定位:根据 php-fpm.log 中的 Fatal error 信息,结合代码行号快速修复bug。

最佳实践

  • 定期清理旧日志,避免占用磁盘空间。
  • 生产环境中关闭 display_errors,仅记录日志。
  • 对关键日志(如安全相关)配置集中式存储(如ELK)。

0