centos php如何日志分析
小樊
47
2025-08-24 16:14:00
一、日志文件定位
- Apache:
/var/log/httpd/error_log
- Nginx+PHP-FPM:
/var/log/nginx/error.log、/var/log/php-fpm/error.log
- PHP-FPM:
/var/log/php-fpm/error.log 或 /run/php-fpm/www-error.log
- 查看配置:通过
php --ini 找到 php.ini,检查 error_log 路径。
二、基础查看命令
- 实时查看:
tail -f error_log
- 搜索关键字:
grep "error" error_log
- 统计错误类型:
grep "PHP Fatal error" error_log | awk '{print $1, $2, $3, $4, $5}' | sort | uniq -c | sort -nr
三、专业分析工具
- ELK Stack(Elasticsearch+Logstash+Kibana):
- 收集、存储、可视化日志,适合大规模日志分析。
- 配置示例:Logstash 通过
file 插件采集日志,Kibana 创建仪表盘展示错误趋势。
- GoAccess:
- 实时分析 Web 日志,生成 HTML 报告,支持按 IP、状态码等维度统计。
- 安装后运行:
goaccess /var/log/httpd/access_log -o report.html。
- Graylog:
- 集中管理日志,提供搜索、告警功能,需搭配 Elasticsearch 和 MongoDB。
四、日志轮转管理
- 工具:使用
logrotate 定期压缩旧日志,避免占用磁盘空间。
- 配置示例:编辑
/etc/logrotate.d/php-fpm,设置每日轮转并保留 10 个备份。
五、关键分析方向
- 错误类型:通过
error_reporting 和 log_errors 配置记录详细错误(如语法错误、数据库连接失败)。
- 性能问题:分析慢查询日志(需配合 MySQL 慢查询日志),定位执行时间长的 SQL 语句。
- 安全审计:监控异常访问(如频繁登录失败、非授权访问),结合
fail2ban 防御。