Ubuntu LAMP 日志查看与分析
一 日志位置与快速定位
| 组件 | 日志文件 | 典型路径 | 主要用途 |
|---|---|---|---|
| Apache | 访问日志 | /var/log/apache2/access.log | 记录所有 HTTP 请求 |
| 错误日志 | /var/log/apache2/error.log | 语法、权限、后端错误等 | |
| MySQL | 错误日志 | /var/log/mysql/error.log | 启动/运行/停止错误 |
| 慢查询日志 | /var/log/mysql/slow.log | 超过阈值的 SQL | |
| 通用查询日志 | /var/log/mysql/general.log | 全部 SQL(调试用) | |
| PHP | FPM 错误日志 | /var/log/php7.x-fpm.log 或 /var/log/php-fpm.log | PHP-FPM 进程错误 |
| PHP 错误日志 | 由 php.ini error_log 指定,常见 /var/log/php_errors.log 或 /var/log/php/error.log | PHP 运行时错误 | |
| 系统 | 系统日志 | /var/log/syslog | 全系统事件 |
| 认证日志 | /var/log/auth.log | SSH 登录等安全事件 |
php -i | grep 'Loaded Configuration File',再在对应 php.ini 中查看 error_log 配置项。二 常用查看与分析命令
sudo tail -f /var/log/apache2/error.loggrep '192.168.1.100' /var/log/apache2/access.logawk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -10journalctl -u apache2、journalctl -u mysqljournalctl --since "2025-12-01" --until "2025-12-12"grep -E 'error|warning|notice' /var/log/php/error.log | wc -ltail -n 100 /var/log/apache2/error.log | grep --color=auto -i error三 组件专项分析与优化
awk/sort/uniq 组合统计 Top IP、Top URL、返回码分布等。/var/log/apache2/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 0644 root adm
sharedscripts
postrotate
systemctl reload apache2 >/dev/null
endscript
}
LogLevel debug(调试期),上线后恢复为合适的级别(如 warn/error)。SHOW VARIABLES LIKE 'general_log_file';
SHOW VARIABLES LIKE 'log_error';
SHOW VARIABLES LIKE 'slow_query_log_file';
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'long_query_time';
SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 2;
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log(按耗时取 Top 10)pt-query-digest /var/log/mysql/slow.log(更强大的聚合与诊断)sudo tail -f /var/log/php7.x-fpm.log | grep --color=auto -i fataldisplay_errors=Off、log_errors=On,避免敏感信息泄露;复杂问题可配合 Xdebug 做性能与调用栈分析。四 故障排查与监控联动
systemctl status apache2、systemctl status mysqlapachectl configtestfree -m、df -hss -tulnp | grep ':80\|:443'journalctl,Web 层看 Apache error.log,数据库层看 MySQL error.log,脚本层看 PHP 错误日志。mysqladmin status/SHOW PROCESSLIST(MySQL)、top/htop、iostat、vmstat、df、iotop。五 日志治理与最佳实践