Oracle Cloud Infrastructureロギング・サービス
Oracle Cloud Infrastructureロギング・サービスは、テナンシ内のすべてのログに対応した、スケーラブルでフルマネージド型の一元管理ペインです。OpenSearchではなくOracle Cloud Infrastructureロギングにログを送信するようにVerrazzanoを構成できます。一般的な情報は、Oracle Cloud Infrastructureのロギングの概要に関する項を参照してください。
カスタム・ログの設定
Verrazzanoのログは、Oracle Cloud Infrastructureのカスタム・ログに送信できます。Verrazzanoインストール・リソースには2つのOracle Cloud Infrastructureログ識別子(1つはVerrazzanoシステム・ログ用で、もう1つはアプリケーション・ログ用)を指定する必要があります。「カスタム・ログの作成」のステップに従って、2つのカスタム・ログを作成します。カスタム・ログの作成時にエージェント構成を作成しないでください。ログ・レコードが複製されてしまいます。
資格証明の構成
Verrazzanoに付属のFluentdプラグインでは、デフォルトでOracle Cloud Infrastructureのインスタンス・プリンシパル認証が使用されます。オプションで、ユーザーAPI署名キーを使用してVerrazzanoを構成できます。クラスタがOracle Cloud Infrastructureの外部で実行されている場合、Oracle Cloud Infrastructureロギングにログを送信するにはAPI署名キー認証が必要です。
Verrazzanoのインストール
Verrazzanoのインストール中に、クラスタでOracle Cloud Infrastructureロギングが有効になります。Verrazzanoインストール・カスタム・リソースには、2つのカスタム・ログを指定するためのフィールドがあります。1つはシステム・ログ用で、もう1つはアプリケーション・ログ用です。次に、資格証明のタイプごとのVerrazzanoインストールYAMLファイルの例を示します。APIはKibanaを参照しますが、今後のリリースではパブリックAPIでOpenSearchダッシュボードが使用されます。
デフォルトのログ・オブジェクトのオーバーライド
個々のネームスペースでOracle Cloud Infrastructureログ・オブジェクトをオーバーライドできます。ネームスペースにログ識別子を指定するには、verrazzano.io/oci-log-id
という名前の注釈をネームスペースに追加します。注釈の値は、Oracle Cloud Infrastructureログ・オブジェクト識別子です。
次に、ネームスペースの例を示します。
apiVersion: v1
kind: Namespace
metadata:
annotations:
verrazzano.io/oci-log-id: ocid1.log.oc1.iad.ns.app.example
creationTimestamp: "2022-01-14T15:09:19Z"
labels:
istio-injection: enabled
verrazzano-managed: "true"
name: example
spec:
finalizers:
- kubernetes
status:
phase: Active
注釈を追加してから削除すると、ログはVerrazzanoカスタム・リソースで指定されているデフォルトのOracle Cloud Infrastructureログ・オブジェクトに戻ります。
ログの検索
Verrazzanoログの検索には、Oracle Cloud Infrastructureコンソール、Oracle Cloud Infrastructure CLIまたはOracle Cloud Infrastructure SDKを使用できます。
たとえば、Oracle Cloud Infrastructure CLIを使用して、システム・ログ内のverrazzano-application-operator
コンテナによって生成されたレコードを検索します。
$ oci logging-search search-logs --search-query=\
"search \"ocid1.compartment.oc1..example/ocid1.loggroup.oc1.iad.example/ocid1.log.oc1.iad.example\" | \
where \"data\".\"kubernetes.container_name\" = 'verrazzano-application-operator' | sort by datetime desc" \
--time-start 2021-12-07 --time-end 2021-12-17
springboot
ネームスペース内のすべてのアプリケーション・ログ・レコードを検索します。
$ oci logging-search search-logs --search-query=\
"search \"ocid1.compartment.oc1..example/ocid1.loggroup.oc1.iad.example/ocid1.log.oc1.iad.example\" | \
where \"data\".\"kubernetes.namespace_name\" = 'springboot' | sort by datetime desc" \
--time-start 2021-12-07 --time-end 2021-12-17
ログの検索の詳細は、「ロギング問合せ言語仕様」を参照してください。
トラブルシューティング
Oracle Cloud InfrastructureロギングでVerrazzanoログを確認できない場合は、クラスタ内のFluentdコンテナ・ログを確認して、エラーがあるかどうか調べます。
$ kubectl logs -n verrazzano-system -l app=fluentd --tail=-1
not authorized
エラー・メッセージが表示された場合は、Oracle Cloud Infrastructure動的グループまたはIAMポリシーに問題があり、FluentdプラグインとOracle Cloud Infrastructure APIとの通信が阻害されている可能性があります。
適切な権限が設定されていることを確認するには、Oracle Cloud Infrastructureロギングの必要な権限に関するドキュメントを確認してください。