SaltStack - 日誌記錄



日誌記錄用於跟蹤正在執行的軟體事件。事件由描述性訊息描述,該訊息可以選擇包含可變資料。Salt 日誌記錄方法用於解決您可能遇到的任何問題。您可以檢視特定的日誌級別。

配置設定

讓我們詳細瞭解日誌記錄的不同配置設定。

LOG_FILE

Salt 日誌記錄透過檔案傳遞,該檔案包含用於識別的本地路徑名或網路位置。此檔案被視為日誌檔案。

log_file: /var/log/salt/master

在這裡,檔案取決於在 master 中執行的二進位制檔案。類似地,您也可以在 minion 中執行,如下所示。

log_file: /var/log/salt/minion

您也可以使用遠端地址。使用遠端地址的語法為:<file|udp|tcp>://<host|socketpath>:<port-if-required>/<log-facility>。

log_file: udp://loghost:port

在這裡,Log-facility 預設設定為 LOG_USER。

LOG_LEVEL

日誌級別按數值分配的值排序。Python 庫預設定義了大多數日誌級別。除此之外,Salt 還使用更多級別。下面解釋了一些級別。

  • log_level: error; level value is 40 − 指示在錯誤時記錄日誌語句。

  • log_level: quiet; level value is 1000 − 指示在此級別不應記錄任何內容。

  • log_level: info; level value is 20 − 指示正常的日誌資訊。

  • log_level: warn; level value is 30 − 指示在警告時記錄日誌語句。

  • log_level: debug; level value is 10 − 對除錯 Salt 實現和 Salt 程式碼都很有用的資訊。

  • log_level: trace; level value is 5 − 更詳細的程式碼除錯資訊。

LOG_LEVEL_LOGFILE

它定義要傳送到日誌檔案的郵件級別。

log_level_logfile: info

LOG_DATEFMT

它定義日誌日期格式。預設情況下,它表示為 %Y-%m-%d %H:%M:%S。

log_datefmt_logfile: '%Y-%m-%d %H:%M:%S'

LOG_FMT_CONSOLE

它定義控制檯記錄訊息的格式。Salt 使用自定義的 LogRecord 屬性來為控制檯日誌輸出著色。它遵循以下語法:

'%(colorlevel)s'       # log level name colorized by level
'%(colorname)s'        # colorized module name
'%(colorprocess)s'     # colorized process number
'%(colormsg)s'         # colorized messages name

LOG_FMT_LOGFILE

它定義日誌檔案記錄訊息的格式。基本語法如下:

%(asctime)s,%(msecs)03d [%(name)-17s][%(levelname)-8s] %(message)s

LOG_GRANULAR_LEVELS

此級別用於更具體地控制日誌級別。

log_granular_levels:
   'salt': 'info'
   'salt.modules': ‘trace'

在這裡,主 Salt 庫在“info”級別將 salt.modules 設定為在跟蹤級別記錄。

外部日誌處理程式

Salt 使用 LogStash 和 Sentry 外部日誌處理程式進行日誌記錄。讓我們在本節中詳細瞭解它。

LOGSTASH 處理程式

LogStash 是一個開源的伺服器端安全資料處理管道。讓我們考慮一個在 Salt 中使用 LogStash 的簡單 UDP 日誌處理程式。

在 Salt master 檔案中指定以下更改:

logstash_udp_handler:
   host: 127.0.0.1
   port: 9999
   version: 1
   msg_type: logstash

然後在 Logstash 配置檔案中新增更改:

input {
   udp {
      port ⇒ 9999
      codec ⇒ json
   }
}

這裡,UDP – 是輸入,需要具有 json_event 格式,這就是我們透過網路傳送的內容。

SENTRY 日誌處理程式

Sentry 是生產部署中的即時錯誤跟蹤以及用於重現和修復崩潰的資訊。master 檔案中的預設配置如下所示。

sentry_handler:
   dsn: https://pub-key:secret-key@app.getsentry.com/app-id
   log_level: debug

這裡,sentry 處理程式的預設日誌級別為 ERROR,但我們在 sentry_handler 配置鍵下定義了 debug log_level

廣告