NetBackup 統一日誌(Unified Logging)預設寫入 /usr/openv/logs,長期運行易導致磁盤爆滿,服務癱瘓。本文系統梳理日誌配置查看、級別調整、目錄遷移、清理命令、自動化維護全流程。
vxlogcfg:配置管理(查看/修改日誌級別、目錄、滾動策略)vxlogmgr:日誌文件管理(列表/刪除/歸檔)nbcplogs:日誌收集打包(故障排查提交支持用)/usr/openv/netbackup/bin/vxlogcfg -l -o default -p NB
# 輸出關鍵字段:
# LogDirectory = /usr/openv/logs/
# DebugLevel = 1 # 調試級別(0-6,工程師用)
# DiagnosticLevel = 6 # 診斷級別(0-6,管理員用,數值越大越詳盡)
# RolloverMode = FileSize | LocalTime
# MaxLogFileSizeKB = 51200
# RolloverPeriodInSeconds = 43200 (12小時)
# NumberOfLogFiles = 3
# LogRecycle = False # 關鍵:False 表示不自動刪除舊文件,需手動清理
# 1. 確認佔用大戶
du -sh /usr/openv/logs/*
# 典型大戶:nbsl (132), nbrmms (222), nbdisco (400), nbemm (111)
# 2. 一鍵刪除所有統一日誌文件(謹慎!生產建議先備份)
/usr/openv/netbackup/bin/vxlogmgr -d
# 交互確認輸入 y,會列出並刪除所有受管日誌文件
# 3. 或僅刪除指定 Originator 的日誌
vxlogmgr -d -p NB -o 132 # 僅刪除 nbsl (OID=132)
1. 降低全局診斷級別(推薦:生產環境 DiagnosticLevel=2-3)
# 修改所有 Originator 的 DiagnosticLevel 為 2
vxlogcfg -a -p 51216 -o ALL -s DiagnosticLevel=2
# 僅調整特定模塊(nbemm OID=111, nbsl OID=132)
vxlogcfg -a -p NB -o 111 -s DiagnosticLevel=2
vxlogcfg -a -p NB -o 132 -s DiagnosticLevel=2
2. 啟用日誌回收(自動刪除舊文件)
vxlogcfg -a -p NB -o DEFAULT -s LogRecycle=True
# 配合 NumberOfLogFiles 控制保留份數
3. 遷移日誌目錄至大分區
# 停止 NBU 服務
/usr/openv/netbackup/bin/bp.kill_all
# 修改默認日誌目錄
vxlogcfg -a -p NB -o Default -s LogDirectory=/data/nbu_logs
# 遷移現有日誌
mv /usr/openv/logs /data/nbu_logs_old
ln -s /data/nbu_logs /usr/openv/logs
# 重啟服務
/usr/openv/netbackup/bin/bp.start_all
| OID | 模塊名 | 功能 | 建議 DiagnosticLevel |
|---|---|---|---|
| 111 | nbemm | 企業媒體管理器(核心目錄服務) | 2-3 |
| 132 | nbsl | 存儲生命週期管理 | 2-3 |
| 222 | nbrmms | 媒體管理器 | 2 |
| 400 | nbdisco | 設備發現 | 1-2 |
| 117 | nbjm | 作業管理器 | 2 |
| 116 | nbpem | 策略執行管理器 | 2 |
| 231 | nbevtmgr | 事件管理器 | 2 |
| 293 | nbaudit | 審計日誌 | 3 |
查看完整映射:vxlogcfg -l -p 51216 -o ALL 或 nbcplogs --list-subproducts NB
| 參數 | 含義 | 推薦值 |
|---|---|---|
| DebugLevel | 工程調試級別(極詳細,極佔磁盤) | 0 (生產關閉) |
| DiagnosticLevel | 運維診斷級別 | 2-3 (平衡可見性與磁盤) |
| RolloverMode | 滾動觸發條件 | FileSize | LocalTime |
| MaxLogFileSizeKB | 單文件最大尺寸 | 51200 (50MB) |
| RolloverPeriodInSeconds | 時間滾動周期 | 43200 (12h) 或 86400 (24h) |
| NumberOfLogFiles | 保留文件數(需 LogRecycle=True) | 10-20 |
| LogRecycle | 是否自動刪除舊文件 | True (關鍵!) |
#!/bin/bash
# /opt/scripts/nbu_log_maintenance.sh
# 每天 02:00 執行
LOG_DIR="/usr/openv/logs"
MAX_AGE_DAYS=7
MAX_SIZE_GB=10
# 1. 清理超齡日誌
find "$LOG_DIR" -name "*.log" -mtime +$MAX_AGE_DAYS -delete
# 2. 若總佔用超閾值,強制觸發 vxlogmgr 清理最舊
CURRENT_GB=$(du -sg "$LOG_DIR" | awk '{print $1}')
if [ "$CURRENT_GB" -gt "$MAX_SIZE_GB" ]; then
/usr/openv/netbackup/bin/vxlogmgr -d -p NB -o ALL 2>&1 | logger -t nbu_log_cleanup
fi
# 3. 記錄磁盤使用情況
echo "$(date) NBU Logs: ${CURRENT_GB}GB" >> /var/log/nbu_disk_usage.log
# crontab -e (root)
0 2 * * * /opt/scripts/nbu_log_maintenance.sh
# 問題排查期間,臨時提升特定模塊級別
vxlogcfg -a -p NB -o 111 -s DiagnosticLevel=5 # nbemm 詳盡日誌
# 排查結束後立即恢復
vxlogcfg -a -p NB -o 111 -s DiagnosticLevel=2
建立「配置基線 → 監控磁盤 → 定期清理 → 故障臨時調級 → 事後復原」的閉環機制,配合 LogRecycle=True 與合理的 NumberOfLogFiles,可徹底避免 NetBackup 日誌佔滿磁盤導致備份系統癱瘓的風險。