SaltStack-ロギング

ロギングは、実行中のソフトウェアイベントを追跡するために使用されます。イベントは説明メッセージで記述され、オプションで変数データを含めることができます。ソルトロギングアプローチは、問題を解決するために使用されます。特定のログレベルでチェックアウトできます。

構成設定

ロギングのさまざまな構成設定について詳しく理解しましょう。

LOG_FILE

ソルトログレコードは、識別用のローカルパス名またはネットワークの場所を含むファイルを介して渡されます。このファイルはログファイルと見なされます。

log_file: /var/log/salt/master

ここでは、マスターで実行されているバイナリに依存するファイル。同様に、以下に示すミニオンでも実行できます。

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 −ソルト実装とソルトコードの両方のデバッグに役立つ情報。

  • 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

メッセージをログに記録するコンソールの形式を定義します。ソルトはカスタムを使用します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'

ここで、「info」レベルのメインソルトライブラリは、 salt.modules トレースレベルでログに記録します。

外部ロギングハンドラ

Saltは、LogStashおよびSentry外部ログハンドラーを使用してログを記録します。この章で詳しく理解しましょう。

LOGSTASHハンドラー

LogStashはオープンソースです。サーバー側の安全なデータ処理パイプライン。LogStashを使用するSaltの単純なUDPロギングハンドラーについて考えてみましょう。

ソルトマスターファイルで以下の変更を指定します-

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は、本番環境でのリアルタイムのエラー追跡と、クラッシュを再現して修正するための情報です。マスターファイルのデフォルト設定は以下に定義されています。

sentry_handler:
   dsn: https://pub-key:[email protected]/app-id
   log_level: debug

ここでは、歩哨ハンドラーのデフォルトのログレベルはERRORですが、デバッグを定義しました log_level sentry_handler構成キーの下。