本文阐述如何在lnmp (linux, nginx, mysql/mariadb, php) 架构下高效管理nginx和mysql日志。
nginx日志管理
-
日志文件位置:
- 访问日志:通常位于 /usr/local/nginx/logs/access.log。
- 错误日志:通常位于 /usr/local/nginx/logs/error.log。
-
日志轮转:
-
使用 logrotate 工具实现日志轮转,防止单个日志文件过大。 logrotate 可定期分割、压缩旧日志并创建新日志。
-
/etc/logrotate.d/nginx 配置文件示例:
/usr/local/nginx/logs/*.log { daily missingok rotate 7 compress delaycompress notifempty create 0644 nginx nginx }
登录后复制
-
-
日志清理:
-
定期清理过旧的日志文件,可以使用 find 和 rm 命令:
find /usr/local/nginx/logs/ -type f -name "*.log.*" -mtime +7 -exec rm {} \;
登录后复制
-
mysql日志管理
-
日志类型:
- 错误日志:记录mysql服务器的错误信息,位置通常为 /var/log/mysql/error.log 或 /var/lib/mysql/hostname.err。
- 查询日志:记录所有客户端查询。
- 慢查询日志:记录执行时间超过阈值的查询,用于性能调优。
- 二进制日志:记录数据库更改操作,用于数据恢复和主从复制。
-
日志位置配置:
- 修改mysql配置文件 (my.cnf 或 my.ini),例如:
[mysqld] log_error = /var/log/mysql/error.log general_log = 1 slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log
登录后复制 -
日志轮转:
- 同样可以使用 logrotate 管理mysql日志,配置文件类似于nginx的配置。
自动化与监控
-
自动化脚本:
- 编写脚本定期检查日志文件大小,超过阈值时自动分割和清理。
- cut_nginx_logs.sh 示例:
#!/bin/bash /usr/sbin/logrotate -f /etc/logrotate.d/nginx
登录后复制 -
监控与报警:
- 使用监控工具 (如prometheus, grafana) 监控日志文件大小和数量,设置报警阈值,及时发现异常。
通过以上方法,您可以有效管理lnmp架构下的日志,保障系统稳定性和性能。
以上就是lnmp架构下如何进行日志管理的详细内容,更多请关注代码网其它相关文章!
发表评论