ログ フィルタリング機能を使用すると、ESXi ホストで実行されている syslog サービスのログ ポリシーを変更できます。ログ フィルタを作成すれば、ESXi ログの重複エントリ数を削減したり、特定のログ イベントをすべて拒否リストに登録したりできます。
ログ フィルタは、記録先(ログ ディレクトリまたはリモート syslog サーバ)に関係なく、ESXi ホストの vmsyslogd デーモンによって処理されるすべてのログ イベントに影響します。
ログ フィルタを作成する場合は、ログ メッセージのログ エントリの最大数を設定します。ログ メッセージは、1 つ以上の指定されたシステム コンポーネントにより生成され、指定された語句に一致します。ログ フィルタリング機能を有効にし、syslog デーモンを再ロードして、
ESXi ホストのログ フィルタを有効化する必要があります。
重要: ログ情報の量に制限を設定すると、潜在的なシステム障害を適切にトラブルシューティングする能力が制限されます。最大ログ エントリ数に達した後にログ ローテーションが発生すると、フィルタリングされたメッセージのすべてのインスタンスが失われる可能性があります。
手順
- ESXi シェルに root としてログインします。
- /etc/vmware/logfilters ファイルで、次のエントリを追加して、ログ フィルタを作成します。
numLogs | ident | logRegexp
説明:
- numLogs では、指定したログ メッセージの最大ログ エントリ数を設定します。この数に達すると、指定したログ メッセージがフィルタリングされて無視されます。0 を使用すると、指定したすべてのログ メッセージがフィルタリングされて無視されます。
- ident では、1 つ以上のシステム コンポーネントを指定し、これらのコンポーネントで生成されるログ メッセージにフィルタを適用します。ログ メッセージを生成するシステム コンポーネントについては、syslog 構成ファイルの idents パラメータの値を参照してください。これらのファイルは /etc/vmsyslog.conf.d ディレクトリ内にあります。複数のシステム コンポーネントにフィルタを適用するには、コンマ区切りのリストを使用します。すべてのシステム コンポーネントにフィルタを適用するには、* を使用します。
- logRegexp では、Python 正規表現構文を使用して大文字と小文字を区別する語句を指定し、コンテンツでログ メッセージをフィルタリングします。
たとえば、
SOCKET connect failed, error 2: No such file or directory のような語句でエラー番号がその都度変わるメッセージを対象とする場合、hostd コンポーネントからの最大ログ エントリ数の制限を 2 に設定するには、次のエントリを追加します。
2 | hostd | SOCKET connect failed, error .*: No such file or directory
注:
#
で始まる行はコメントを示しており、行の残りの部分は無視されます。
- /etc/vmsyslog.conf ファイルで、次のエントリを追加して、ログ フィルタリング機能を有効にします。
- esxcli system syslog reload コマンドを実行して、syslog デーモンを再ロードし、構成の変更を適用します。