LNMP架構下如何進行日志管理

LNMP架構下如何進行日志管理

本文闡述如何在LNMP (linux, nginx, mysql/mariadb, php) 架構下高效管理Nginx和MySQL日志。

Nginx日志管理

  1. 日志文件位置:

    • 訪問日志:通常位于 /usr/local/nginx/logs/access.log。
    • 錯誤日志:通常位于 /usr/local/nginx/logs/Error.log。
  2. 日志輪轉:

    • 使用 logrotate 工具實現日志輪轉,防止單個日志文件過大。 logrotate 可定期分割、壓縮舊日志并創建新日志。

    • /etc/logrotate.d/nginx 配置文件示例:

      /usr/local/nginx/logs/*.log {     daily     missingok     rotate 7     compress     delaycompress     notifempty     create 0644 nginx nginx }
  3. 日志清理:

    • 定期清理過舊的日志文件,可以使用 find 和 rm 命令:

      find /usr/local/nginx/logs/ -type f -name "*.log.*" -mtime +7 -exec rm {} ;

MySQL日志管理

  1. 日志類型:

    • 錯誤日志:記錄MySQL服務器的錯誤信息,位置通常為 /var/log/mysql/error.log 或 /var/lib/mysql/hostname.err。
    • 查詢日志:記錄所有客戶端查詢。
    • 慢查詢日志:記錄執行時間超過閾值的查詢,用于性能調優。
    • 二進制日志:記錄數據庫更改操作,用于數據恢復和主從復制。
  2. 日志位置配置:

    • 修改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
  3. 日志輪轉:

    • 同樣可以使用 logrotate 管理MySQL日志,配置文件類似于Nginx的配置。

自動化與監控

  1. 自動化腳本:

    • 編寫腳本定期檢查日志文件大小,超過閾值時自動分割和清理。
    • cut_nginx_logs.sh 示例:
      #!/bin/bash   /usr/sbin/logrotate -f /etc/logrotate.d/nginx
  2. 監控與報警:

    • 使用監控工具 (如prometheus, grafana) 監控日志文件大小和數量,設置報警閾值,及時發現異常。

通過以上方法,您可以有效管理LNMP架構下的日志,保障系統穩定性和性能。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享