温馨提示×

centos lnmp日志如何查看

小樊
34
2025-11-08 03:46:06
栏目: 智能运维

LNMP各组件日志位置及查看方法(CentOS系统)

在CentOS环境下,LNMP(Linux+Nginx+MySQL+PHP)组合的日志通常分布在对应服务的默认路径中,以下是各组件的日志位置常用查看命令,覆盖实时监控、历史记录查询等场景。

一、Nginx日志(Web服务器层)

Nginx的日志分为访问日志(记录客户端请求详情)和错误日志(记录服务端错误信息),路径及查看方法如下:

  • 访问日志:默认路径为/var/log/nginx/access.log,记录所有客户端请求的IP、时间、请求方法、响应状态等信息。
    • 实时查看最新访问记录:sudo tail -f /var/log/nginx/access.log
    • 查看最近100条记录:sudo tail -n 100 /var/log/nginx/access.log
  • 错误日志:默认路径为/var/log/nginx/error.log,记录Nginx启动、运行中的错误(如配置错误、连接失败)。
    • 实时查看最新错误:sudo tail -f /var/log/nginx/error.log
    • 搜索特定错误(如“502”):sudo grep "502" /var/log/nginx/error.log

若日志路径被自定义,可通过Nginx主配置文件(/etc/nginx/nginx.conf)中的access_logerror_log指令确认。

二、MySQL日志(数据库层)

MySQL的日志涵盖错误日志(数据库服务异常)、慢查询日志(性能瓶颈查询)、通用查询日志(所有查询记录),路径及查看方法如下:

  • 错误日志:默认路径为/var/log/mysql/error.log(或/var/log/mysqld.log,取决于MySQL版本),记录数据库启动、关闭及运行错误。
    • 实时查看错误更新:sudo tail -f /var/log/mysql/error.log
  • 慢查询日志:默认未启用,需在MySQL配置文件(/etc/my.cnf)中添加以下参数启用:
    [mysqld]
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow-query.log
    long_query_time = 2  # 记录执行时间超过2秒的查询
    
    重启MySQL后,可通过sudo tail -f /var/log/mysql/slow-query.log查看慢查询记录。
  • 通用查询日志:默认未启用,配置文件中添加:
    [mysqld]
    general_log = 1
    general_log_file = /var/log/mysql/mysql.log
    
    重启后记录所有客户端查询,查看命令:sudo tail -f /var/log/mysql/mysql.log

三、PHP-FPM日志(PHP处理层)

PHP-FPM(FastCGI进程管理器)的日志分为错误日志(PHP运行时错误)和访问日志(PHP脚本访问情况),路径及查看方法如下:

  • 错误日志:默认路径为/var/log/php-fpm/error.log,记录PHP脚本执行中的语法错误、致命错误等。
    • 实时查看错误:sudo tail -f /var/log/php-fpm/error.log
    • 若日志不存在,需检查PHP-FPM配置文件(/etc/php-fpm.d/www.conf)中的error_log指令,确保路径正确并重启服务:sudo systemctl restart php-fpm
  • 访问日志:默认路径为/var/log/php-fpm/access.log,记录PHP脚本的访问详情(如执行时间、脚本路径),需在www.conf中启用access_log指令。

四、系统日志(综合层)

若需查看LNMP服务的系统级日志(如服务启动失败、权限问题),可使用journalctl命令:

  • 查看PHP-FPM系统日志:sudo journalctl -u php-fpm
  • 查看Nginx系统日志:sudo journalctl -u nginx
  • 查看MySQL系统日志:sudo journalctl -u mysqld(或mysql,取决于服务名)
  • 实时查看系统日志更新:sudo journalctl -f

五、常用日志分析技巧

  • 过滤关键字:使用grep快速定位特定错误(如“ERROR”“500”),例如sudo grep "ERROR" /var/log/mysql/error.log
  • 统计IP访问量:通过awksort统计访问日志中Top 10 IP,例如:
    sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
    
  • 查看特定时间段日志:结合grep和日期过滤,例如查看2025-11-08的Nginx错误日志:sudo grep "2025-11-08" /var/log/nginx/error.log

以上方法覆盖了CentOS下LNMP各组件的日志查看需求,可根据具体问题选择对应的日志类型和命令,快速定位和解决问题。

0