在Linux上配置LNMP(Linux, Nginx, MySQL, PHP)日志管理是一个重要的任务,可以帮助你监控服务器的性能、排查问题和优化配置。以下是一个基本的指南,帮助你配置LNMP日志管理。
Nginx的日志文件通常位于/var/log/nginx/
目录下。你需要编辑Nginx的配置文件来设置日志格式和日志轮转。
sudo nano /etc/nginx/nginx.conf
在http
块中添加或修改日志格式:
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
}
使用logrotate
工具来管理日志文件的轮转。创建一个新的配置文件:
sudo nano /etc/logrotate.d/nginx
添加以下内容:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
MySQL的日志文件通常位于/var/log/mysql/
目录下。你需要编辑MySQL的配置文件来设置日志选项。
sudo nano /etc/mysql/my.cnf
在[mysqld]
部分添加或修改以下选项:
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow_queries.log
long_query_time = 2
log_queries_not_using_indexes = 1
sudo systemctl restart mysql
PHP的日志通常由PHP-FPM处理,并且可以通过Nginx或Apache进行转发。你需要编辑PHP-FPM的配置文件来设置日志选项。
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
找到并修改以下行:
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
sudo systemctl restart php7.x-fpm
你可以使用各种工具来监控和分析这些日志文件,例如:
这些工具可以帮助你实时监控日志、搜索日志条目、生成报告和警报。
通过以上步骤,你可以在Linux上配置LNMP日志管理。确保定期检查和维护这些日志文件,以便及时发现和解决问题。