LNMP架构日志管理实操指南
一 核心思路与目录
二 各组件日志位置与查看
tail -f /var/log/nginx/access.log、tail -f /var/log/nginx/error.logjournalctl -u nginx -ftail -f /var/log/php-fpm/www-data-*.log 或 tail -f /var/log/php-fpm.logjournalctl -u php*-fpm -ftail -f /var/log/mysql/error.logjournalctl -u mysql -fjournalctl 统一查看服务与内核日志,便于跨组件排障。三 日志轮转与保留策略
| 组件 | 配置路径 | 关键策略 | 轮转后动作 |
|---|---|---|---|
| Nginx | /etc/logrotate.d/nginx | daily、rotate 7、compress、missingok、notifempty、create 0640 www-data adm | 无需重启,自动继续写入新文件 |
| MySQL | /etc/logrotate.d/mysql | daily、rotate 7、compress、missingok、notifempty、create 0640 mysql adm | 建议 postrotate 执行 systemctl reload mysql 以确保日志句柄刷新 |
| PHP-FPM | /etc/logrotate.d/php-fpm | daily、rotate 7、compress、missingok、notifempty、create 0640 www-data adm | postrotate 执行 kill -USR2 $(cat /var/run/php-fpm.pid) 或 systemctl reload php*-fpm 触发重新打开日志文件 |
logrotate -d /etc/logrotate.d/nginxlogrotate -f /etc/logrotate.d/nginx四 日志分析与可视化
grep " 500 " /var/log/nginx/access.logawk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | headmysqldumpslow -s c /var/log/mysql/slow.log五 监控告警与安全合规