Debian LAMP日志分析如何进行
导读:Debian LAMP日志分析实操指南 一 定位日志与快速查看 系统与服务日志集中在**/var/log**。常用路径与用途: 系统整体:/var/log/syslog(Debian 常用)、/var/log/messages 认证与安...
Debian LAMP日志分析实操指南
一 定位日志与快速查看
- 系统与服务日志集中在**/var/log**。常用路径与用途:
- 系统整体:/var/log/syslog(Debian 常用)、/var/log/messages
- 认证与安全:/var/log/auth.log
- Apache:/var/log/apache2/access.log、/var/log/apache2/error.log
- MySQL:/var/log/mysql/error.log,慢查询日志常见为**/var/log/mysql/slow.log**(是否启用取决于配置)
- PHP:取决于运行方式;常见为**/var/log/php-fpm.log或由Apache error.log**承载
- 快速查看与过滤常用命令:
- 实时查看:tail -f /var/log/apache2/error.log
- 关键字过滤:grep -i “error” /var/log/syslog
- 分页浏览:less /var/log/syslog
- systemd 服务日志:journalctl -u apache2、journalctl -u mysql,按时间过滤:–since “2025-12-22 00:00:00” --until “2025-12-22 12:00:00”,仅看错误级别:journalctl -p err -u mysql
二 按组件的分析要点与命令
- Apache
- 访问日志定位流量与错误:统计5xx与404
- 示例:awk ‘$9 > = 500 { count++} END { print “5xx:”, count} ’ /var/log/apache2/access.log
- 示例:grep ’ 404 ’ /var/log/apache2/access.log | wc -l
- 错误日志聚焦高优先级错误与模块加载失败:grep -i “error|crit|alert” /var/log/apache2/error.log
- 可视化与报表:GoAccess /var/log/apache2/access.log -a -o /var/www/html/report.html(浏览器查看报表)
- 访问日志定位流量与错误:统计5xx与404
- MySQL
- 错误日志排查启动/运行故障:tail -f /var/log/mysql/error.log
- 慢查询分析(需启用):mysqldumpslow -s t /var/log/mysql/slow.log(按耗时排序)
- 二进制日志(主从/恢复):按需清理过期 binlog,示例:PURGE BINARY LOGS BEFORE ‘2025-12-01 00:00:00’
- PHP
- 确认日志路径:在php.ini检查error_log;若为PHP-FPM,常见路径**/var/log/php-fpm.log**
- 配置建议(生产):log_errors = On、display_errors = Off、自定义error_log;排查语法/调用问题可临时开启 display_errors 于测试环境
- 关联定位:Web 层错误优先查Apache error.log或PHP-FPM 日志,再回到代码
三 常见场景与命令清单
- 定位“今天”的 Apache 5xx 错误
- journalctl -u apache2 --since today | grep -E ’ 5[0-9]{ 2} ’
- 找出访问量 Top 10 的 IP
- awk ‘{ print $1} ’ /var/log/apache2/access.log | sort | uniq -c | sort -nr | head
- 统计某页面的访问次数(按实际日志格式调整字段)
- grep ‘GET /index.php’ /var/log/apache2/access.log | wc -l
- 检测短时间高频访问的 IP(可疑爬虫/扫描)
- awk ‘{ print $1} ’ /var/log/apache2/access.log | sort | uniq -c | sort -nr | head | awk ‘$1 > 100’
- 查看 MySQL 最近 1 小时的错误
- journalctl -u mysql --since “1 hour ago” | grep -i error
- 分析慢查询并按平均时间排序
- mysqldumpslow -s at /var/log/mysql/slow.log
- 检查失败的登录尝试(安全审计)
- grep ‘Failed password’ /var/log/auth.log | awk ‘{ print $11} ’ | sort | uniq -c | sort -nr | head
- 实时跟踪系统级错误
- journalctl -p err -f
四 日志轮转与保留策略
- 使用logrotate自动轮转、压缩与清理,主配置**/etc/logrotate.conf**,服务配置在**/etc/logrotate.d/**。
- Apache 示例(/etc/logrotate.d/apache2)
- /var/log/apache2/*.log { daily; rotate 14; compress; delaycompress; missingok; notifempty; create 0640 www-data adm; sharedscripts; postrotate systemctl reload apache2 > /dev/null; endscript }
- MySQL 示例(/etc/logrotate.d/mysql)
- /var/log/mysql/*.log { daily; rotate 7; compress; delaycompress; missingok; notifempty; create 0640 mysql adm; sharedscripts; postrotate systemctl reload mysql > /dev/null; endscript }
- 验证与测试:logrotate -d /etc/logrotate.d/apache2(干跑),必要时logrotate -f强制执行一次
五 集中化与可视化
- 轻量报表:GoAccess实时生成 HTML/JSON/CSV 报表,适合快速洞察与分享
- 企业级方案:ELK Stack(Elasticsearch/Logstash/Kibana)或Graylog集中采集、解析、检索与告警
- 系统级聚合与告警:结合rsyslog与journalctl统一转发与筛选,配合监控平台实现阈值告警
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian LAMP日志分析如何进行
本文地址: https://pptw.com/jishu/778006.html
