温馨提示×

Ubuntu LNMP中如何进行日志分析

小樊
38
2025-08-21 12:02:17
栏目: 智能运维

Ubuntu LNMP日志分析方法如下:

一、日志文件位置

  • Nginx/var/log/nginx/access.log(访问日志)、error.log(错误日志)。
  • MySQL/var/log/mysql/error.log(错误日志)、慢查询日志需在my.cnf中配置路径。
  • PHP/var/log/php-fpm.log/var/log/php7.x-fpm.log
  • 系统/var/log/syslogjournalctl(需安装systemd-journal)。

二、常用命令行工具

  • 基础查看catlesstail -f(实时查看)。
  • 搜索关键字grep "error" /var/log/nginx/error.log
  • 统计分析
    • 统计IP访问量:awk '{print $1}' access.log | sort | uniq -c | sort -nr
    • 分析状态码:awk '$9 >= 400 {print $9, $7}' access.log | sort | uniq -c
    • 查找慢查询(需日志含request_time):awk '{print $NF, $7}' access.log | sort -nr

三、专业工具分析

  • GoAccess:实时可视化分析,生成HTML报告,支持Nginx日志格式。
    sudo apt install goaccess  
    goaccess /var/log/nginx/access.log --log-format=COMBINED -o report.html  
    
  • ELK Stack:用于大规模日志的收集、分析和可视化,需部署Elasticsearch、Logstash、Kibana。
  • Logrotate:自动轮转压缩日志,避免文件过大,配置文件位于/etc/logrotate.conf

四、典型分析场景

  • Nginx错误排查:通过error.log定位404/500错误,结合access.log分析请求来源。
  • MySQL性能优化:利用慢查询日志(mysqldumpslow工具)找出低效SQL,结合EXPLAIN分析执行计划。
  • PHP异常监控:通过php-fpm.log定位语法错误或致命异常,结合Xdebug进行代码调试。

五、日志管理最佳实践

  • 定期清理旧日志:通过logrotate设置保留天数或按大小切割。
  • 敏感信息过滤:避免在日志中记录用户密码等敏感数据。
  • 远程日志存储:将关键日志发送至远程服务器,防止本地日志丢失。

以上方法可快速定位问题,结合工具可提升分析效率,适用于服务器运维和开发调试场景。[1,2,3,6,8,9,10,11,12,13,15,16,17]

0