7.10. レガシー syslog メソッドを使用したログの転送

syslog RFC3164 プロトコルを使用して、設定ファイルおよび設定マップを作成して、ログを OpenShift Container Platform クラスター外の宛先に送信することができます。syslog サーバーなど、外部ログアグリゲーターを OpenShift Container Platform からログを受信するように設定する必要があります。

重要

ログ転送のこの方法は、OpenShift Container Platform では非推奨となり、今後のリリースでは取り除かれます。

syslog プロトコルには、以下の 2 つのバージョンがあります。

syslog プロトコルを使用してログを送信するには、ログを転送するために必要な情報を使って syslog.conf という設定ファイルを作成します。次に、そのファイルを使用して OpenShift Container Platform がログの転送時に使用する openshift-logging プロジェクトの syslog という設定マップを作成します。

前提条件

  • 指定されたプロトコルまたは形式を使用してロギングデータを受信するように設定されたロギングサーバーが必要です。

syslog 設定ファイルのサンプル

<store>
@type syslog_buffered
remote_syslog rsyslogserver.example.com
port 514
hostname ${hostname}
remove_tag_prefix tag
facility local0
severity info
use_record true
payload_key message
rfc 3164
</store>

以下の syslog パラメーターを設定できます。詳細は、syslog の RFC3164 を参照してください。

  • facility: syslog ファシリティー。値には 10 進数の整数または大文字と小文字を区別しないキーワードを使用できます。

    • カーネルメッセージの場合、0 または kern
    • ユーザーレベルのメッセージの場合、1 または user。デフォルトです。
    • メールシステムの場合、2 または mail
    • システムデーモンの場合、3 または daemon
    • セキュリティー/認証メッセージの場合、4 または auth
    • syslogd によって内部に生成されるメッセージの場合、5 または syslog
    • ラインプリンターサブシステムの場合、6 または lpr
    • ネットワーク news サブシステムの場合、7 または news
    • UUCP サブシステムの場合、8 または uucp
    • クロックデーモンの場合、9 または cron
    • セキュリティー認証メッセージの場合、10 または authpriv
    • FTP デーモンの場合、11 または ftp
    • NTP サブシステムの場合、12 または ntp
    • syslog 監査ログの場合、13 または security
    • syslog アラートログの場合、14 または console
    • スケジューリングデーモンの場合、15 または solaris-cron
    • ローカルに使用される facility の場合、1623 または local0local7
  • payloadKey: syslog メッセージのペイロードとして使用するレコードフィールド。
  • rfc: syslog を使用してログを送信するために使用される RFC。
  • severity: 送信 syslog レコードに設定される syslog の重大度。値には 10 進数の整数または大文字と小文字を区別しないキーワードを使用できます。

    • システムが使用不可であることを示すメッセージの場合、0 または Emergency
    • 即時にアクションを実行する必要があることを示すメッセージの場合、1 または Alert
    • 重大な状態を示すメッセージの場合、2 または Critical
    • エラーの状態を示すメッセージの場合、3 または Error
    • 警告状態を示すメッセージの場合は、4 または Warning
    • 正常であるが重要な状態を示すメッセージの場合は、5 または Notice
    • 情報を提供するメッセージの場合は、6 または Informational
    • デバッグレベルのメッセージを示唆するメッセージの場合、7 または Debug。デフォルトです。
  • tag: syslog メッセージでタグとして使用するレコードフィールド。
  • trimPrefix: タグから削除する接頭辞。

手順

OpenShift Container Platform をレガシーの設定方法を使用してログを転送できるように設定するには、以下を実行します。

  1. syslog.conf という名前の設定ファイルを作成し、<store> スタンザ内に以下のようなパラメーターを指定します。

    <store>
    @type <type> 1
    remote_syslog <syslog-server> 2
    port 514 3
    hostname ${hostname}
    remove_tag_prefix <prefix> 4
    facility <value>
    severity <value>
    use_record <value>
    payload_key message
    rfc 3164 5
    </store>
    1
    使用するプロトコル (syslog または syslog_buffered のいずれか) を指定します。
    2
    syslog サーバーの FQDN または IP アドレスを指定します。
    3
    syslog サーバーのポートを指定します。
    4
    オプション: 以下のように適切な syslog パラメーターを指定します。
    • syslog 接頭辞から指定された tag フィールドを削除するためのパラメーター。
    • 指定されたフィールドを syslog キーとして設定するパラメーター。
    • syslog ログファシリティーまたはソースを指定するパラメーター。
    • syslog ログの重大度を指定するパラメーター。
    • レコードの重大度およびファシリティーを使用するためのパラメーター (ある場合)。true の場合、container_namenamespace_name、および pod_name は、出力の内容に組み込まれます。
    • syslog メッセージのペイロードを設定するためのキーの指定に使用するパラメーター。デフォルトは message に設定されます。
    5
    レガシーの syslog メソッドでは、rfc 値に 3164 を指定する必要があります。
  2. 設定ファイルから openshift-logging プロジェクトに syslog という名前の設定マップを作成します。

    $ oc create configmap syslog --from-file=syslog.conf -n openshift-logging

Red Hat OpenShift Logging Operator は Fluentd Pod を再デプロイします。Pod が再デプロイされない場合、強制的に再デプロイするために Fluentd Pod を削除できます。

$ oc delete pod --selector logging-infra=fluentd