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署名キー認証が必要です。
インスタンス・プリンシパル認証
クラスタのノード・プールにコンピュート・インスタンスを含む動的グループを作成し、適切なポリシーを割り当てて、その動的グループが以前に作成したカスタム・ログにログ・エントリを送信できるようにします。必要な権限に細心の注意を払ってください。
動的グループおよびポリシーが正しく構成されていない場合、FluentdはOracle Cloud Infrastructureロギングへのログの送信に失敗します。
ユーザーAPI署名キー
API署名キーがまだない場合は、Oracle Cloud Infrastructureドキュメントの必要なキーとOCIDに関する項を参照してください。資格証明の詳細を含むOracle Cloud Infrastructure構成ファイルを作成し、その構成ファイルを使用してシークレットを作成する必要があります。
Fluentd Oracle Cloud Infrastructureロギングが機能するには、次の要件を満たす必要があります:
- Oracle Cloud Infrastructure構成ファイルのプロファイル名は、
DEFAULT
にする必要があります。 - Oracle Cloud Infrastructure構成ファイルの
key_file
パスは、/root/.oci/key
にする必要があります。実際のキー・ファイルの場所は後でシークレットに指定するため、実際のキー・ファイルがその場所に存在している必要はありません。 - FluentdプラグインがOracle Cloud Infrastructureにログを送信できるようにするには、APIキーに関連付けられたユーザーに適切なOracle Cloud Infrastructure Identity and Access Management (IAM)ポリシーが用意されている必要があります。Oracle Cloud Infrastructureロギング・サービスで使用されるIAMポリシーについては、Oracle Cloud Infrastructureドキュメントのロギングの詳細に関する項を参照してください。
Verrazzanoプラットフォーム・オペレータがインストールされたら、Oracle Cloud Infrastructure構成ファイルおよび秘密キー・ファイルからverrazzano-install
ネームスペースに不透明なシークレットを作成します。構成ファイルのキーはconfig
で、秘密キー・ファイル・データのキーはkey
である必要があります。
次に、シークレットを作成するkubectl
コマンドの例を示します。
$ kubectl create secret generic oci-fluentd -n verrazzano-install \
--from-file=config=/home/myuser/oci_config --from-file=key=/home/myuser/keys/oci_api.pem
シークレットは次のようになります。
apiVersion: v1
data:
config: W0RFRkFVTFRdCnVzZXI9b2NpZDEudXN...
key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS...
kind: Secret
metadata:
name: oci-fluentd
namespace: verrazzano-install
type: Opaque
便宜上、既存のOracle Cloud Infrastructure構成ファイルを指すことができるヘルパー・スクリプトがここにあり、これを使用するとシークレットが作成されます。このスクリプトを使用すると、デフォルトの構成ファイルの場所、プロファイル名、およびシークレットの名前をオーバーライドできます。
カスタム・ログの指定
Verrazzanoのインストール中に、クラスタでOracle Cloud Infrastructureロギングが有効になります。Verrazzanoインストール・カスタム・リソースには、2つのカスタム・ログを指定するためのフィールドがあります。1つはシステム・ログ用で、もう1つはアプリケーション・ログ用です。次に、資格証明のタイプごとのVerrazzanoインストールYAMLファイルの例を示します。
インスタンス・プリンシパル資格証明
apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
name: vz-oci-logging
spec:
profile: dev
components:
fluentd:
enabled: true
oci:
systemLogId: ocid1.log.oc1.iad.system.example
defaultAppLogId: ocid1.log.oc1.iad.app.example
opensearch:
enabled: false
opensearchDashboards:
enabled: false
ユーザーAPI資格証明
ユーザーAPI資格証明を使用する場合、Fluentdコンポーネント設定のOracle Cloud Infrastructureセクションで、Verrazzanoカスタム・リソースのシークレットの名前を構成する必要があります。YAMLファイルは次のようになります。
apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
name: vz-oci-logging
spec:
profile: dev
components:
fluentd:
enabled: true
oci:
systemLogId: ocid1.log.oc1.iad.system.example
defaultAppLogId: ocid1.log.oc1.iad.app.example
apiSecret: oci-fluentd
opensearch:
enabled: false
opensearchDashboards:
enabled: false
apiSecret
値は、以前にユーザーAPI資格証明を構成したときに作成したシークレットと一致している必要があります。
デフォルトのログ・オブジェクトのオーバーライド
個々のネームスペースで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ログ・オブジェクトに戻ります。