PowerFlex 機架:啟用系統記錄轉送功能時,/var/log 空間問題
Summary: 本文說明 /var/log 空間中的問題,因為記錄輪替發生的頻率不夠高。
Symptoms
目前的 logrotate 組態會每週輪換訊息檔案一次,但在 VxFlex Manager 中啟用系統記錄轉送的情況下,其旋轉速度可能不夠快。
事實:
- VxFlex Manager 中已啟用 syslog 轉送功能。
- /var/log 分割區很快就會填滿。
- 這可能因系統而異
- VxFlex 整合式機架或裝置系統中的裝置會啟用遠端 syslog,並設定為將系統記錄事件傳送至 VxFlex Manager
Cause
當 /var/log 檔案系統為 100% 時,所有資源的資源清查都會失敗。
注意:如果空間太滿而無法執行這些檢查,或空間填滿速度過快,下列警告或嚴重警示可能無法運作。
- 如果發生 75% 的情況 >,VxFlex Manager UI 會顯示警告:
如果發生 95% 的 > 狀況,VxFlex Manager UI 會顯示嚴重:
df -h 顯示 /var/log 的使用容量非常高,並且正在快速增長。
Resolution
若要修正 VxFlex Manager 裝置上啟用系統記錄轉送的紀錄輪換問題,您可以使用下列步驟設定 logrotate、壓縮現有記錄、變更 rsyslog 設定,以及降低偵錯記錄層級:
步驟 1: SSH 至 VxFlex Manager 並成為 root 使用者: sudo su -
第 2 步:編輯 (vi 編輯器) 系統記錄 logrotate 規則,方法是確保下列文字存在於 /etc/logrotate.d/syslog
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { size 100M nodateext rotate 5 compress missingok copytruncate postrotate /bin/killall -s SIGHUP -r rsyslog endscript }
步驟 3: 輸入下列命令,以確認新組態是否已正確儲存:
cat /etc/logrotate.d/syslog
步驟 4: 根據 /var/log 空間填滿的速度,選擇下列其中一個選項:
對於不會每天填滿 /var/log,但需要比每周更快的輪換的環境,請使用以下命令將logrotate從每周更改為每天:
cp /etc/cron.weekly/logrotate /etc/cron.daily/
如果環境填滿 /var/log 的速度超過每日旋轉所能容納的情況,請使用下列命令將 logrotation 從每日變更為每小時:
cp /etc/cron.daily/logrotate /etc/cron.hourly/
步驟 5: 執行下列命令,壓縮現有檔案並釋出空間:
for log in `ls /var/log/messages-*`; do sudo gzip $log; done
注意: 如果 /var/log/messages 檔案已滿,無法壓縮,請使用下列命令加以清除:
cat /dev/null > /var/log/messages
步驟 6: 若要確認 logrotate 組態是否正常運作,請執行下列命令:
logrotate -f /etc/logrotate.d/syslog
步驟 7: 若要停止將轉送的系統記錄事件記錄至 VxFlex Manager 裝置上的 /var/log/messages 檔案,請執行下列步驟:
- 使用此命令在 /etc/rsyslog.d/ 下建立 conf 檔案:
vi 21-stop-remote-host-syslog-logging.conf - 將以下行新增到上面新創建的檔案中:
if $fromhost-ip != '127.0.0.1' then ~ - 輸入以下內容以儲存檔案:
:wq! - 重新啟動 rsyslog 服務:
systemctl restart rsyslog.service
注意:21 是用於 rsyslog 的優先順序編號。重新開機後,rsyslog 不會將傳入的遠端系統記錄儲存至 /var/log/messages。VxFlex Manager 的本機系統記錄仍會儲存到 /var/log/messages 中。
注意:即使 VxFlex Manager 上未啟用系統記錄轉送,主機也可能指向 VxFlex Manager,這可能會向 /var/log/messages 檔案發送垃圾郵件。無論 VxFlex Manager 系統記錄是否開啟,如果訊息檔案被洪泛,請設定步驟 7。
步驟8: 執行下列步驟,變更 VxFlex Manager 裝置中 logstash 的偵錯記錄層級:
- 使用下列命令編輯記錄層級:
vi /etc/logstash/logstash.yml - 在檔案中搜尋除錯設定
- 將記錄層級從資訊 (預設) 變更為錯誤

- 編輯下列檔案: vi /etc/logstash/log4j2.properties
- 在預設配置中,有一行以 rootLogger.appenderRef.console 開頭,請使用如下所示的 # 將這一行註釋掉:
-
執行下列步驟,以重新啟動 logstash 服務: systemctl restart logstash
步驟 8: 如果 /var/log 檔案系統已滿 100%,請將 VxFlex Manager 裝置重新開機。這可確保所有服務都能正確啟動備份。
便條: 傳送測試警示,以確保警示連接器在解決空間問題並重新啟動裝置後正常運作。
Additional Information
- 正在針對未來的 VxFlex Manager 版本進行修正,以停止將系統記錄訊息記錄至 /var/log/messages。
- 這與具有 syslog 轉送功能 (最高至 3.4.0.4271 版) 的任何 VxFlex Manager 版本相關。