溫馨提示×

centos下weblogic日志管理技巧

小樊
46
2025-10-03 02:43:38
欄目: 智能運維

一、WebLogic日志位置確認
在CentOS系統中,WebLogic日志的默認存儲路徑遵循域(Domain)結構,核心日志文件位于$DOMAIN_HOME/servers/<Server_Name>/logs目錄下,常見文件包括:

  • server.log:服務器實例的主運行日志,記錄啟動/關閉信息、運行時錯誤及業務日志;
  • access.log:HTTP/HTTPS訪問日志,記錄客戶端請求詳情(如URL、狀態碼、響應時間);
  • domain.log:域級日志,匯總域內所有服務器的運行狀態(如集群通信、資源監控)。
    其中,$DOMAIN_HOME為域根目錄(如/user_projects/domains/your_domain),<Server_Name>為服務器實例名稱(如AdminServer)。

二、日志級別動態調整
日志級別決定了日志的詳細程度(從低到高:TRACE < DEBUG < INFO < WARNING < ERROR < SEVERE),可根據需求動態調整以平衡日志量與排查效率:

  1. 通過WebLogic控制臺
    登錄控制臺(http://<服務器IP>:<端口>/console),導航至環境→服務器→<服務器名稱>→日志→通用,修改“日志級別”下拉菜單(如設置為ERROR可僅記錄錯誤信息),點擊“保存”即可生效。
  2. 通過WLST腳本
    使用WLST(WebLogic Scripting Tool)自動化調整,示例腳本:
    connect('weblogic', '密碼', 't3://localhost:7001')
    edit()
    startEdit()
    cd('/Servers/AdminServer/Logging/General')
    set('LogLevel', 'ERROR')  # 設置為ERROR級別
    save()
    activate()
    disconnect()
    
    運行腳本前需確保已配置WLST環境變量。

三、日志輪轉配置(防止日志膨脹)
日志輪轉可自動分割、壓縮舊日志,保留指定數量的文件,避免單個日志文件過大占用磁盤空間。以下是兩種常用方法:

1. 使用WebLogic內置配置(推薦)

通過控制臺配置日志輪轉規則,適用于大多數場景:

  • 導航至環境→服務器→<服務器名稱>→日志→通用,修改以下參數:
    • 旋轉類型:選擇“按大?。˙y Size)”或“按時間(By Time)”;
      • 按大?。涸O置“旋轉文件大小”(如5000KB,默認值,超過則觸發輪轉);
      • 按時間:設置“開始旋轉時間”(如00:00,每天固定時間輪轉)和“旋轉間隔”(如24小時);
    • 保留文件數:勾選“限制保留文件數”,設置“保留文件數量”(如7個,保留最近7個日志文件);
    • 文件名格式:可選“包含日期戳”,如myserver_%yyyy%_%MM%_%dd%.log(輪轉后文件名包含年月日,便于歸檔);
    • 旋轉目錄:默認與主日志文件同目錄,可指定絕對路徑(如/var/log/weblogic/archives)。

2. 使用logrotate工具(系統級輪轉)

logrotate是Linux系統自帶的日志管理工具,可強制定期輪轉WebLogic日志(即使WebLogic未觸發):

  • 安裝logrotate(若未安裝):
    sudo yum install logrotate -y
    
  • 創建WebLogic專用配置文件(/etc/logrotate.d/weblogic),內容示例:
    /path/to/weblogic/domain/logs/*.log {
        daily                   # 每天輪轉
        rotate 7                # 保留7個舊日志
        compress                # 壓縮舊日志(.gz格式)
        missingok               # 日志不存在時不報錯
        notifempty              # 日志為空時不輪轉
        create 640 root adm     # 新日志文件權限(屬主root,屬組adm)
        sharedscripts           # 所有日志輪轉完成后執行腳本
        postrotate
            /bin/kill -HUP `cat /path/to/weblogic/domain/servers/AdminServer/tmp/AdminServer.pid 2>/dev/null` 2>/dev/null || true
        endscript
    }
    
    說明:postrotate腳本通過kill -HUP向WebLogic進程發送信號,使其重新打開日志文件(避免日志丟失)。

四、日志查看與過濾技巧
日常運維中,快速定位關鍵日志(如錯誤、警告)能提升排查效率,常用命令如下:

  • 實時查看最新日志
    tail -f /path/to/weblogic/logs/server.log
    
    Ctrl+C退出實時模式。
  • 查看最后N行日志
    tail -n 100 /path/to/weblogic/logs/access.log  # 查看最后100行訪問日志
    
  • 過濾特定關鍵詞
    grep "ERROR" /path/to/weblogic/logs/server.log  # 查找所有ERROR級別的日志
    grep -i "timeout" /path/to/weblogic/logs/access.log  # 忽略大小寫查找“timeout”(如連接超報錯)
    
  • 分頁查看大日志文件
    less /path/to/weblogic/logs/domain.log  # 按上下鍵翻頁,按q退出
    
  • 查看系統日志中的WebLogic日志(若使用systemd):
    journalctl -u weblogic -f  # 實時查看weblogic服務的系統日志
    

五、日志清理策略
定期清理舊日志可釋放磁盤空間,避免因日志過多導致系統性能下降,以下是三種常用方法:

  1. 通過WebLogic控制臺
    導航至診斷→日志→日志文件,選擇需清理的日志文件(如server.log),點擊“編輯”,設置“日志文件保留時間”(如30天)和“最大日志文件數量”(如10個),勾選“自動刪除舊日志”,點擊“保存”。
  2. 通過WLST腳本
    示例腳本(清理7天前的.log文件):
    import os
    from datetime import datetime, timedelta
    
    log_dir = '/path/to/weblogic/logs'
    days_to_keep = 7
    cutoff_date = datetime.now() - timedelta(days=days_to_keep)
    
    for filename in os.listdir(log_dir):
        if filename.endswith('.log'):
            file_path = os.path.join(log_dir, filename)
            mod_time = datetime.fromtimestamp(os.path.getmtime(file_path))
            if mod_time < cutoff_date:
                os.remove(file_path)
                print(f"Deleted: {file_path}")
    
  3. 通過cron定時任務
    編輯cron任務(crontab -e),添加每日凌晨1點清理7天前日志的任務:
    0 1 * * * find /path/to/weblogic/logs -type f -name "*.log" -mtime +7 -exec rm -f {} \;
    
    說明:-mtime +7表示修改時間超過7天的文件,-exec rm -f {} \;表示刪除匹配的文件。

六、日志集中化管理(可選進階)
對于分布式環境或多臺WebLogic服務器,可將日志集中收集到遠程服務器進行分析,常用工具:

  • rsyslog/syslog-ng:將WebLogic日志發送到遠程syslog服務器,配置示例(/etc/rsyslog.conf):
    local0.* @remote_syslog_server_ip:514  # UDP方式發送
    local0.* @@remote_syslog_server_ip:514 # TCP方式發送(更可靠)
    
    需在WebLogic啟動腳本中添加-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/path/to/logging.properties,并在logging.properties中配置FileHandler輸出到syslog。
  • ELK Stack(Elasticsearch+Logstash+Kibana)
    Logstash作為日志收集器,解析WebLogic日志(如通過grok過濾器提取時間、級別、消息),發送到Elasticsearch存儲,Kibana提供可視化分析界面(如日志趨勢圖、錯誤統計)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女