温馨提示×

Ubuntu上LNMP日志如何分析

小樊
51
2025-08-31 12:51:21
栏目: 智能运维

Ubuntu上LNMP日志分析方法如下:

一、日志文件位置

  • 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(认证日志)。

二、常用分析命令

  • 查看实时日志
    tail -f /var/log/nginx/access.log(实时查看访问日志)。
  • 搜索关键字
    grep 'ERROR' /var/log/nginx/error.log(筛选错误日志中的关键字)。
  • 统计分析
    awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr(统计访问IP频率)。
  • 排序慢查询
    sort -k4 -nr /var/log/mysql/slow.log | head -10(按执行时间排序慢查询日志)。

三、工具辅助分析

  • 基础工具
    • awk:提取日志字段(如IP、时间、状态码)。
    • sed:替换或删除日志中的冗余信息。
    • logrotate:自动切割日志,避免文件过大。
  • 可视化工具
    • GoAccess:实时生成HTML报告,展示访问趋势、状态码分布等。
    • ELK Stack:用于大规模日志的存储、搜索和可视化分析。

四、典型分析场景

  • Nginx错误排查
    • 通过error.log定位“502 Bad Gateway”等错误,查看上游服务(如PHP-FPM)是否异常。
    • 分析access.log中的404/500状态码,排查无效请求或后端接口问题。
  • MySQL性能优化
    • 通过slow.log识别执行时间过长的SQL,使用EXPLAIN分析执行计划,优化索引。
  • PHP错误定位
    • 根据php-fpm.log中的语法错误(如未定义函数)或致命错误,快速定位代码问题。

五、注意事项

  • 定期清理旧日志,避免占用磁盘空间(可通过logrotate配置)。
  • 生产环境中建议关闭PHP的display_errors,仅记录日志。
  • 敏感信息(如数据库密码)需从日志中脱敏处理。

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

0