7.5. syslog プロトコルを使用したログの転送
syslog RFC3164 または RFC5424 プロトコルを使用して、デフォルトの Elasticsearch ログストアの代わり、またはこれに加えてプロトコルを受け入れるように設定された外部ログアグリゲーターにログのコピーを送信できます。syslog サーバーなど、外部ログアグリゲーターを OpenShift Container Platform からログを受信するように設定する必要があります。
syslog プロトコルを使用してログ転送を設定するには、syslog サーバーに対する 1 つ以上の出力およびそれらの出力を使用するパイプラインと共に ClusterLogForwarder
カスタムリース (CR) を作成します。syslog 出力では、UDP、TCP、または TLS 接続を使用できます。
または、設定マップを使用して syslog RFC3164 プロトコルを使用してログを転送することもできます。ただし、この方法は OpenShift Container Platform では非推奨となり、今後のリリースで取り除かれます。
前提条件
- 指定されたプロトコルまたは形式を使用してロギングデータを受信するように設定されたロギングサーバーが必要です。
手順
以下のように
ClusterLogForwarder
CR YAML ファイルを作成します。apiVersion: logging.openshift.io/v1 kind: ClusterLogForwarder metadata: name: instance 1 namespace: openshift-logging 2 spec: outputs: - name: rsyslog-east 3 type: syslog 4 syslog: 5 facility: local0 rfc: RFC3164 payloadKey: message severity: informational url: 'tls://rsyslogserver.east.example.com:514' 6 secret: 7 name: syslog-secret - name: rsyslog-west type: syslog syslog: appName: myapp facility: user msgID: mymsg procID: myproc rfc: RFC5424 severity: debug url: 'udp://rsyslogserver.west.example.com:514' pipelines: - name: syslog-east 8 inputRefs: 9 - audit - application outputRefs: 10 - rsyslog-east - default 11 parse: json 12 labels: secure: "true" 13 syslog: "east" - name: syslog-west 14 inputRefs: - infrastructure outputRefs: - rsyslog-west - default labels: syslog: "west"
- 1
ClusterLogForwarder
CR の名前はinstance
である必要があります。- 2
ClusterLogForwarder
CR の namespace はopenshift-logging
である必要があります。- 3
- 出力の名前を指定します。
- 4
syslog
タイプを指定します。- 5
- オプション。以下に一覧表示されている syslog パラメーターを指定します。
- 6
- 外部 syslog インスタンスの URL およびポートを指定します。
udp
(セキュアでない)、tcp
(セキュアでない) プロトコル、またはtls
(セキュアな TCP) プロトコルを使用できます。CIDR アノテーションを使用するクラスター全体のプロキシーが有効になっている場合、出力は IP アドレスではなくサーバー名または FQDN である必要があります。 - 7
tls
接頭辞を使用する場合、TLS 通信のエンドポイントに必要なシークレットの名前を指定する必要があります。シークレットはopenshift-logging
プロジェクトに存在し、tls.crt、tls.key、および ca-bundle.crt のキーが含まれる必要があります。これらは、それぞれが表す証明書を参照します。- 8
- オプション: パイプラインの名前を指定します。
- 9
- パイプラインを使用して、転送する必要のあるログタイプを指定します (
application
infrastructure
、またはaudit
)。 - 10
- ログを転送するためにそのパイプラインで使用する出力を指定します。
- 11
- オプション: ログを内部 Elasticsearch インスタンスに転送するために
default
出力を指定します。 - 12
- 必要に応じて、構造化された JSON ログエントリーを
structured
フィールドの JSON オブジェクトとして転送します。ログエントリーに有効な構造化された JSON が含まれる必要があります。そうでない場合は、OpenShift Logging は構造化
フィールドを削除し、代わりにログエントリーをデフォルトのインデックスapp-00000x
に送信します。 - 13
- オプション: 文字列。ログに追加する 1 つまたは複数のラベル。"true" などの引用値は、ブール値としてではなく、文字列値として認識されるようにします。
- 14
- オプション: サポートされるタイプの他の外部ログアグリゲーターにログを転送するように複数の出力を設定します。
- オプション。パイプラインを説明する名前。
-
inputRefs
は、そのパイプラインを使用して転送するログタイプです (application
、infrastructure
、またはaudit
)。 -
outputRefs
は使用する出力の名前です。 - オプション: 文字列。ログに追加する 1 つまたは複数のラベル。
CR オブジェクトを作成します。
$ oc create -f <file-name>.yaml
Red Hat OpenShift Logging Operator は Fluentd Pod を再デプロイします。Pod が再デプロイされない場合、強制的に再デプロイするために Fluentd Pod を削除できます。
$ oc delete pod --selector logging-infra=fluentd
7.5.1. syslog パラメーター
syslog
出力には、以下を設定できます。詳細は、syslog の RFC3164 または RFC5424 RFC を参照してください。
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 の場合、
16
–23
またはlocal0
–local7
-
カーネルメッセージの場合、
オプション。
payloadKey
: syslog メッセージのペイロードとして使用するレコードフィールド。注記payloadKey
パラメーターを設定すると、他のパラメーターが syslog に転送されなくなります。- rfc: syslog を使用してログを送信するために使用される RFC。デフォルトは RFC5424 です。
severity: 送信 syslog レコードに設定される syslog の重大度。値には 10 進数の整数または大文字と小文字を区別しないキーワードを使用できます。
-
システムが使用不可であることを示すメッセージの場合、
0
またはEmergency
-
即時にアクションを実行する必要があることを示すメッセージの場合、
1
またはAlert
-
重大な状態を示すメッセージの場合、
2
またはCritical
-
エラーの状態を示すメッセージの場合、
3
またはError
-
警告状態を示すメッセージの場合は、
4
またはWarning
-
正常であるが重要な状態を示すメッセージの場合は、
5
またはNotice
-
情報を提供するメッセージの場合は、
6
またはInformational
-
デバッグレベルのメッセージを示唆するメッセージの場合、
7
またはDebug
。デフォルトです。
-
システムが使用不可であることを示すメッセージの場合、
- tag: タグは、syslog メッセージでタグとして使用するレコードフィールドを指定します。
- trimPrefix: 指定された接頭辞をタグから削除します。
7.5.2. 追加の RFC5424 syslog パラメーター
以下のパラメーターは RFC5424 に適用されます。
-
appName: APP-NAME は、ログを送信したアプリケーションを識別するフリーテキストの文字列です。
RFC5424
に対して指定する必要があります。 -
msgID: MSGID は、メッセージのタイプを識別するフリーテキスト文字列です。
RFC5424
に対して指定する必要があります。 -
procID: PROCID はフリーテキスト文字列です。値が変更される場合は、syslog レポートが中断していることを示します。
RFC5424
に対して指定する必要があります。