6.6. デフォルトのログファイルパスのオーバーライド

デフォルトのコンテナーを変更し、変更箇所にサービスログファイルへのパスが含まれる場合は、デフォルトのログファイルパスも変更する必要があります。すべてのコンポーザブルサービスには <service_name>LoggingSource パラメーターがあります。たとえば、nova-compute サービスの場合、パラメーターは NovaComputeLoggingSource です。

手順

  1. nova-compute サービスのデフォルトパスをオーバーライドするには、設定ファイルの NovaComputeLoggingSource パラメーターにパスを追加します。

     NovaComputeLoggingSource:
          tag: openstack.nova.compute
          path: /some/other/path/nova-compute.log

    tag および path 属性は、<service_name>LoggingSource パラメーターの必須要素です。それぞれのサービスで tag および path が定義され、残りの値はデフォルトで派生されます。

  2. 特定のサービスの形式を変更することができます。これは Fluentd 設定に直接渡します。LoggingDefaultFormat パラメーターのデフォルト形式は、/(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d+) (?<pid>\d+) (?<priority>\S+) (?<message>.*)$/ です。以下の構文を使用します。

    <service_name>LoggingSource:
        tag: <service_name>.tag
        path: <service_name>.path
        format: <service_name>.format

    より複雑な変換の例を以下のスニペットに示します。

     ServiceLoggingSource:
        tag: openstack.Service
        path: /var/log/containers/service/service.log
        format: multiline
        format_firstline: '/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3} \d+ \S+ \S+ \[(req-\S+ \S+ \S+ \S+ \S+ \S+|-)\]/'
        format1: '/^(?<Timestamp>\S+ \S+) (?<Pid>\d+) (?<log_level>\S+) (?<python_module>\S+) (\[(req-(?<request_id>\S+) (?<user_id>\S+) (?<tenant_id>\S+) (?<domain_id>\S+) (?<user_domain>\S+) (?<project_domain>\S+)|-)\])? (?<Payload>.*)?$/'