Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Flex Gatewa を使用すると、サポートされている Fluent Bit v3.0 出力種別にランタイムとアクセスログを配信できます。カスタム YAML ファイルを介してログ出力を設定します。さらに、アクセスログを表示するには、メッセージログポリシーも適用する必要があります。
次の設定ファイルの例は、Flex Gateway ログを出力種別 (File
、HTTP
、および Splunk
) に送信する方法を示しています。ただし、Azure Log Analytics
、Amazon S3
、Kafka
など、任意の Fluent Bit v3.0 出力種別を使用できます。Fluent Bit 出力種別の完全なリストについては、対象の Fluent Bit バージョンの Fluent Bit のドキュメントを参照してください。
追加の Fluent Bit ログ出力種別を設定できるだけでなく、Flex Gateway はランタイムログを Runtime Manager に送信し、アクセスログを API Manager に送信します。詳細は、次を参照してください。
Flex Gateway ログ出力を設定する前に、次のタスクを完了します。
さらに、出力に応じて、ログの送信先のサービスが動作していて、必要な情報が揃っていることを確認します。
Splunk:
実行中の Splunk サービス。無料の Splunk Cloud トライアルを使用して Splunk をテストできます。
Cloud または Enterprise Splunk サービスに HTTP イベントコレクター (HEC) データ入力を追加済み。データ入力を追加する方法と HEC トークンを作成する方法については、 Splunk ドキュメント を参照してください。
Dynatrace:
実行中の Dynatrace サービス。無料の Dynatrace トライアルを使用して Dynatrace をテストできます。
環境 ID。Dynatrace 環境 ID の見つけ方については、 「環境 ID」を参照してください。
アクセストークン。Dynatrace アクセストークンを生成するには、 「アクセストークン」を参照してください。トークンに
Ingest logs
トークンスコープがあることを確認します。
ランタイムログとアクセスログの両方は、同じログ出力に表示されます。ただし、両方のログをログ出力に含めるかどうかを選択できます。アクセスログを使用するには、メッセージログポリシーも適用する必要があります。
ランタイムログには、次の情報が含まれます。
Flex Gateway、Fluent Bit、および Envoy の起動とシャットダウン
デプロイされた API とポリシー
Flex Gateway の設定ミスの可能性またはその他のエラー
アクセスログには、一定期間の Envoy との受信インタラクション、および特定の API に対する受信要求と応答が示されます。
アクセスログを有効にするには、監視する API インスタンスにメッセージログポリシーを適用する必要があります。メッセージログポリシーを適用するには、「アクセスログの設定」を参照してください。
logging
オブジェクトは、メッセージログポリシーを介してランタイムおよびアクセスログの配信を設定します。ログは、サポートされている Fluent Bit v3.0 出力に配信されます。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: <value>
namespace: <namespace name>
spec:
logging:
outputs:
- name: <output-name>
type: <output-type>
parameters:
<param-name>: <param-value>
runtimeLogs:
logLevel: <value>
outputs: <value>
accessLogs:
outputs: <value>
yaml
パラメーター | 必須または省略可能 | デフォルト値 | 説明 |
---|---|---|---|
|
必須 |
なし |
後でランタイムとアクセスログの設定で参照する、この出力の名前。 |
|
必須 |
なし |
Fluent Bit でサポートされる出力種別。Fluent Bit 出力種別については、対象の Fluent Bit バージョンの Fluent Bit のドキュメント |
|
必須 |
なし |
特定の Fluent Bit 出力種別のパラメーターのマップ。Fluent Bit 出力種別のパラメーターについては、対象の Fluent Bit バージョンの Fluent Bit のドキュメント |
|
省略可能 |
空 |
アクセスログをリダイレクトする出力名のリスト。 |
|
省略可能 |
|
ログの詳細を指定するパラメーター。サポートされる |
|
省略可能 |
空 |
ランタイムログをリダイレクトする出力名のリスト。 |
値を空白のままにすると、デフォルト値が設定に適用されます。
上記のパラメーターに加えて、Flex Gateway にはログ出力用の変数が用意されています。設定されている場合、変数はログ内のそれぞれの出力の 1 つとして表示されます。
変数 | 説明 | 出力 |
---|---|---|
|
ログに記録されたイベントの日時 |
特定の時刻 (例: |
|
ログに記録されたイベントが発生した Flex Gateway サービス |
|
|
ログに記録されたイベントの |
|
|
ログ種別 |
|
適用された値を含む設定ファイルを確認するには、次の設定ファイルの例を参照してください。
Flex Gateway 設定ディレクトリに YAML 設定ファイルを作成します。
sudo touch /usr/local/share/mulesoft/flex-gateway/conf.d/logs-config.yaml
ssh
次の例に示すように、目的の出力設定の詳細でファイルを更新します。
ログ出力にイベントが表示されない場合は、Flex Gateway ランタイムログに設定エラーがないか確認します。
ランタイムログを表示するには、『Runtime Manager でのランタイムログの表示』を参照してください。
追加のトラブルシューティングヘルプは、『ログの問題のトラブルシューティング』を参照してください。
アクセスログを設定する場合、「アクセスログの設定」を参照してメッセージログポリシーを適用します。
Flex Gateway 設定ファイルを含むフォルダーのボリュームをすでに追加している場合、YAML ファイルの作成と保存のステップに進みます。 |
Ctrl+C を押して、Flex Gateway とレプリカを停止します。
Flex Gateway 設定ファイルを含むディレクトリに app
という名前のフォルダーを作成します。
新しい app
ディレクトリの追加ボリュームで Flex Gateway を再起動します。
docker run --rm \ -v "$(pwd)":/usr/local/share/mulesoft/flex-gateway/conf.d \ -p 8080:8080 \ mulesoft/flex-gateway
ssh
-e FLEX_NAME=<name-for-flex-replica> \ を含めて、Flex レプリカに割り当てる名前 (省略可能) を指定します。
|
次の例に示すように、目的の出力設定の詳細を含む YAML ファイルを作成して保存します。
ログ出力にイベントが表示されない場合は、Flex Gateway ランタイムログに設定エラーがないか確認します。
ランタイムログを表示するには、『Runtime Manager でのランタイムログの表示』を参照してください。
追加のトラブルシューティングヘルプは、『ログの問題のトラブルシューティング』を参照してください。
アクセスログを設定する場合、「アクセスログの設定」を参照してメッセージログポリシーを適用します。
Flex Gateway のログを設定する手順は、次のとおりです。
次の例に示すように、目的の出力設定の詳細を含む YAML 設定ファイルを使用して、新しいリソースを作成します。
ログ出力にイベントが表示されない場合は、Flex Gateway ランタイムログに設定エラーがないか確認します。
ランタイムログを表示するには、『Runtime Manager でのランタイムログの表示』を参照してください。
追加のトラブルシューティングヘルプは、『ログの問題のトラブルシューティング』を参照してください。
アクセスログを設定する場合、「アクセスログの設定」を参照してメッセージログポリシーを適用します。
書式設定されたランタイムログとアクセスログを /var/log
ディレクトリの log.txt
という名前のファイル (Fluent Bit の File
出力) に送信するように Flex Gateway を設定します。この例の定義では、file
の値として spec.logging.outputs.type
が指定されています。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: logging-config
spec:
logging:
outputs:
- name: default
type: file
parameters:
file: /var/log/log.txt # Docker: replace `/var/log` with the absolute path to the mounted configuration directory
format: template
template: |
[{date}][{logger}][{level}][{kind}] {message}
runtimeLogs:
logLevel: info
outputs:
- default
accessLogs:
outputs:
- default
yaml
Docker の場合は、spec.logging.output.parameters.file の /var/log を、マウントされた設定ディレクトリへの絶対パスに置き換えてください。
|
書式設定されたランタイムログとアクセスログを HTTP
出力に送信するように Flex Gateway を設定できます。この例の定義では、HTTP
の値として spec.logging.outputs.type
が指定されています。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: logging-config
spec:
logging:
outputs:
- name: default
type: HTTP
parameters:
host: collectors.au.sumologic.com
port: "443"
URI: /receiver/v1/http/[PrivateKey]
format: json_lines
json_date_key: timestamp
json_date_format: iso8601
runtimeLogs:
logLevel: info
outputs:
- default
accessLogs:
outputs:
- default
yaml
Splunk は、このリソースを適用するとすぐにログの取り込みを開始します。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: splunk-config
spec:
logging:
outputs:
- name: splunk
type: splunk
parameters:
host: <instance-name>.splunkcloud.com
port: "8088"
splunk_token: <Splunk's HEC token>
tls: "on"
tls.verify: "off"
runtimeLogs:
logLevel: info
outputs: [splunk]
accessLogs:
outputs: [splunk]
yaml
書式設定されたランタイムログとアクセスログを Dynatrace 環境の HTTP
出力に送信するように Flex Gateway を設定できます。たとえば、次のファイルには必要な設定が含まれています。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: dynatrace-config
spec:
logging:
outputs:
- name: dynatrace
type: http
parameters:
host: <environmentID>.live.dynatrace.com
Port: "443"
allow_duplicated_headers: "false"
header:
- Content-Type application/json; charset=utf-8
- Authorization Api-Token <accessToken>
URI: /api/v2/logs/ingest
Format: json
json_date_key: timestamp
json_date_format: iso8601
tls: "on"
tls.verify: "off"
runtimeLogs:
logLevel: info
outputs:
- dynatrace
accessLogs:
outputs:
- dynatrace
yaml
設定オプションについての詳細は、対象の Fluent Bit バージョンの Fluent Bit のドキュメントを参照してください。
ログ出力内のアクセスログを設定するには、要求および応答データの監視の対象である API にメッセージログポリシーを適用する必要があります。すでにメッセージログポリシーを API インスタンスに割り当てている場合、別のメッセージログポリシーを設定する必要はありません。
メッセージログポリシーを設定するには、『接続モードでの Flex Gateway のメッセージログの設定』を参照してください。
メッセージログポリシーを設定すると、API Manager の [Logs (ログ)] とサードパーティログサービスの両方にアクセスログが表示されます。
アクセスログが表示されない場合、メッセージログポリシーが実行される前に、より高い実行順序を持つポリシーによってエラーが発生している可能性があります。ポリシーの実行を並び替えるには、『ポリシーの順序付け』を参照してください。
次のログ出力の例は、次のイベントで発生する可能性がある出力を示しています。
[flex-gateway-agent][info] SignalHandler: Signal terminated received [flex-gateway-agent][info] FilesystemWatcher(/usr/local/share/mulesoft/flex-gateway/conf.d): Stopping with context done [flex-gateway-agent][info] XdsService: Stopping with context done [flex-gateway-agent][error] flex-gateway-envoy: Stopped with error context canceled [flex-gateway-agent][info] FilesystemWatcher(/etc/mulesoft/flex-gateway/conf.d): Stopping with context done [flex-gateway-agent][error] flex-gateway-fluent: Stopped with error context canceled [flex-gateway-agent][error] flex-gateway-fluent: Stopped with error context canceled [flex-gateway-agent][info] Server dropped connection [flex-gateway-agent][info] Agent communication closed
[flex-gateway-agent][error] WebSocket receiver got error: read tcp 172.17.0.2:60780->100.64.1.37:443: i/o timeout [flex-gateway-agent][info] Server dropped connection [flex-gateway-agent][warn] Dropped connection due to error read tcp 172.17.0.2:60780->100.64.1.37:443: i/o timeout [flex-gateway-agent][info] Reconnecting after connection was dropped [flex-gateway-agent][error] Error connecting to Websocket Server: dial tcp: lookup arm-mcm2-service.kstg.msap.io on 192.168.65.7:53: dial udp 192.168.65.7:53: connect: network is unreachable
[flex-gateway-envoy][critical] Caught Segmentation fault, suspect faulting address 0xffff87e8fb89485b [flex-gateway-envoy][critical] Backtrace (use tools/stack_decode.py to get line numbers): [flex-gateway-envoy][critical] Envoy version: 36cbae1aeedd8c3b4eb88cd28268d21fe0905ce5/1.23.0/Clean/RELEASE/BoringSSL [flex-gateway-envoy][critical] #0: __restore_rt [0x7ff79db2f140] [flex-gateway-envoy][critical] #1: [0x557dcfad249b] [flex-gateway-envoy][critical] #2: [0x557dcdf35237] [flex-gateway-envoy][critical] #3: [0x557dce16d49f] [flex-gateway-envoy][critical] #4: [0x557dce1a8ff5] [flex-gateway-envoy][critical] #5: [0x557dce1a8e47] [flex-gateway-envoy][critical] #6: ... [flex-gateway-agent][error] flex-gateway-envoy: Stopped with error flex-gateway-envoy: command error: signal: segmentation fault [flex-gateway-agent][error] flex-gateway-fluent: Stopped with error context canceled [flex-gateway-agent][error] flex-gateway-fluent: Stopped with error context canceled [flex-gateway-agent][info] FilesystemWatcher(/etc/mulesoft/flex-gateway/conf.d): Stopping with context done [flex-gateway-agent][info] FilesystemWatcher(/usr/local/share/mulesoft/flex-gateway/conf.d): Stopping with context done [flex-gateway-agent][info] XdsService: Stopping with context done [flex-gateway-agent][info] Server dropped connection [flex-gateway-agent][info] Agent communication closed