Linux LAMP(Linux, Apache, MySQL, PHP)日志分析是一个重要的任务,可以帮助你了解服务器的性能、安全性和问题诊断。以下是一些常见的日志文件及其分析方法:
Apache 的主要日志文件通常位于 /var/log/apache2/ 或 /var/log/httpd/ 目录下。
access.log)/var/log/apache2/access.log 或 /var/log/httpd/access_loggrep, awk, sed, logwatch, GoAccess示例命令:
# 统计访问量
grep -c "GET" /var/log/apache2/access.log
# 统计特定IP的访问量
grep "192.168.1.1" /var/log/apache2/access.log | wc -l
# 使用GoAccess进行实时分析
goaccess /var/log/apache2/access.log -o report.html
error.log)/var/log/apache2/error.log 或 /var/log/httpd/error_loggrep, awk, sed示例命令:
# 查找特定错误
grep "PHP Fatal error" /var/log/apache2/error.log
# 统计错误类型
awk '{print $1}' /var/log/apache2/error.log | sort | uniq -c | sort -nr
MySQL 的日志文件通常位于 /var/log/mysql/ 目录下。
error.log)/var/log/mysql/error.loggrep, awk, sed示例命令:
# 查找特定错误
grep "ERROR" /var/log/mysql/error.log
# 统计错误类型
awk '{print $1}' /var/log/mysql/error.log | sort | uniq -c | sort -nr
general_log)/var/log/mysql/general.loggrep, awk, sed示例命令:
# 查找特定查询
grep "SELECT *" /var/log/mysql/general.log
# 统计查询频率
awk '{print $7}' /var/log/mysql/general.log | sort | uniq -c | sort -nr
PHP 的日志文件通常由PHP-FPM或PHP脚本生成,位置不固定。
/var/log/php-fpm.log 或 /var/log/php7.4-fpm.loggrep, awk, sed示例命令:
# 查找特定错误
grep "ERROR" /var/log/php-fpm.log
# 统计错误类型
awk '{print $1}' /var/log/php-fpm.log | sort | uniq -c | sort -nr
php.ini 配置文件指定,通常是 /var/log/php_errors.loggrep, awk, sed示例命令:
# 查找特定错误
grep "Fatal error" /var/log/php_errors.log
# 统计错误类型
awk '{print $1}' /var/log/php_errors.log | sort | uniq -c | sort -nr
系统日志通常位于 /var/log/syslog 或 /var/log/messages。
grep, awk, sed, logwatch示例命令:
# 查找特定事件
grep "Apache" /var/log/syslog
# 统计事件类型
awk '{print $1}' /var/log/syslog | sort | uniq -c | sort -nr
通过这些工具和方法,你可以有效地分析和监控你的LAMP环境,及时发现和解决问题。