ログ フィルタリング機能を使用すると、ESXi ホストで実行されている syslog サービスのログ ポリシーを変更できます。
vSphere 7.0 Update 2 以降では、ESXCLI を使用してログ フィルタを追加し、ログ フィルタリングを有効にすることができます。ログ フィルタは、一度設定すると削除しないかぎり、ESXi を再起動しても保持されます。
ログ フィルタは、記録先(ログ ディレクトリまたはリモート Syslog サーバ)に関係なく、ESXi ホストの vmsyslogd サービスによって処理されるすべてのログ イベントに影響します。
ログ フィルタリング機能を有効にし、syslog デーモンを再ロードして、ESXi ホストのログ フィルタを有効化する必要があります。
ログ フィルタを構成する ESXCLI コマンドは、次の形式に従います:esxcli system syslog config logfilter {cmd} [cmd options]
。
たとえば、使用可能なログ フィルタのリストを取得するには、次のコマンドを実行します:[root@xxx-xx-dhcp-xx-xx:~] esxcli system syslog config logfilter list
。
ログ フィルタリングを有効または無効にするには、set コマンドを使用します:[root@xxx-xx-dhcp-xx-xx:~] esxcli system syslog config logfilter set
。
ログ フィルタを追加するには add コマンド、ログ フィルタを削除するには remove コマンドを使用します。
ログ フィルタリングが有効になっているかどうかを確認するには、get コマンドを使用します。
ログ フィルタは 3 つのコンポーネントによって指定され、次の構文に従います:numLogs | ident | logRegexp
。
パラメータ | 説明 |
---|---|
numLogs | フィルタリングを開始する前に、許可される logRegexp Python 正規表現の一致の数を指定します。 |
ident | ident 文字列は、アプリケーションが Syslog 機能に対して自身を識別する方法を示します。logRegexp フィルタは、同じアプリケーションに関連付けられている必要があります。アプリケーションの ident 文字列は、/var/run/log のログ ファイルを調べることによって確認できます。各ログ ファイルの 3 番目のフィールドは、ident 文字列で始まり、[ で終わります。 |
logRegexp | 除外するメッセージを識別する Python 正規表現。 |
たとえば、「mark」という単語を含む hostd デーモンからの 10 回目より後のメッセージをすべて除外するには、次のコマンドを使用します:esxcli system syslog config logfilter add --filter="10|Hostd|mark"
。
ログ フィルタを削除するには、次のコマンドを使用します:esxcli system syslog config logfilter remove --filter="10|Hostd|mark"。
詳細については、「ESXi Syslog のオプション」を参照してください。
前提条件
ESXCLI をインストールします。ESXCLI スタート ガイドを参照してください。トラブルシューティングするには、ESXi Shell で esxcli コマンドを実行します。