ログ フィルタリング機能を使用すると、ESXi ホストで実行されている syslog サービスのログ ポリシーを変更できます。ログ フィルタを作成すれば、ESXi ログの重複エントリ数を削減したり、特定のログ イベントをすべてブラックリストに登録したりできます。

このタスクについて

ログ フィルタは、記録先(ログ ディレクトリまたはリモート syslog サーバ)に関係なく、ESXi ホストの vmsyslogd デーモンによって処理されるすべてのログ イベントに影響します。

ログ フィルタを作成する場合、指定した 1 つ以上のシステム コンポーネントによって生成され、指定の語句に一致するログ メッセージの最大ログ エントリ数を設定します。ログ フィルタリング機能を有効にし、syslog デーモンを再ロードして、ESXi ホストのログ フィルタを有効化する必要があります。

重要:

ログ情報量の制限を設定すると、潜在的なシステム障害を正しくトラブルシューティングできない可能性があります。最大ログ エントリ数に達した後にログ ローテーションが発生すると、フィルタリングされたメッセージのすべてのインスタンスが失われる可能性があります。

手順

  1. ESXi シェルに root としてログインします。
  2. /etc/vmware/logfilters ファイルで、次のエントリを追加して、新しいログ フィルタを作成します。
    numLogs | ident | logRegexp

    説明:

    • numLogs では、指定したログ メッセージの最大ログ エントリ数を設定します。この数に達すると、指定したログ メッセージがフィルタリングされて無視されます。0 を使用すると、指定したすべてのログ メッセージがフィルタリングされて無視されます。

    • ident では、1 つ以上のシステム コンポーネントを指定し、これらのコンポーネントで生成されるログ メッセージにフィルタを適用します。ログ メッセージを生成するシステム コンポーネントについては、/etc/vmsyslog.conf.d ディレクトリにある syslog 構成ファイルの idents パラメータの値を参照してください。複数のシステム コンポーネントにフィルタを適用するには、コンマ区切りのリストを使用します。すべてのシステム コンポーネントにフィルタを適用するには、* を使用します。

    • 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
    注:

    # で始まる行はコメントを示しており、行の残りの部分は無視されます。

  3. /etc/vmsyslog.conf ファイルで、次のエントリを追加して、ログ フィルタリング機能を有効にします。
    enable_logfilters = true
  4. esxcli system syslog reload コマンドを実行して、syslog デーモンを再ロードし、構成の変更を適用します。