18.10. チュートリアル: ロギング
Red Hat OpenShift Service on AWS (ROSA) では、さまざまな方法でログを表示できます。以下の手順では、ログを AWS CloudWatch に転送し、oc logs
を使用して Pod から直接ログを表示します。
ROSA にはロギングソリューションが事前設定されていません。
18.10.1. CloudWatch へのログの転送
ログを AWS CloudWatch に転送するには、ロギングアドオンサービスをインストールします。
次のスクリプトを実行して、ROSA クラスターからログを CloudWatch に転送するように設定します。
$ curl https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/resources/configure-cloudwatch.sh | bash
注記ROSA からログを CloudWatch に送信するように設定する方法は、このチュートリアルの範囲を超えています。AWS との統合と CloudWatch ロギングの有効化は、ROSA の重要な側面です。そのため、設定プロセスを簡素化するために、スクリプトが同梱されています。このスクリプトにより、AWS CloudWatch が自動的に設定されます。スクリプトを調べると、必要な手順を理解することができます。
出力例
Varaibles are set...ok. Policy already exists...ok. Created RosaCloudWatch-mycluster role. Attached role policy. Deploying the Red Hat OpenShift Logging Operator namespace/openshift-logging configured operatorgroup.operators.coreos.com/cluster-logging created subscription.operators.coreos.com/cluster-logging created Waiting for Red Hat OpenShift Logging Operator deployment to complete... Red Hat OpenShift Logging Operator deployed. secret/cloudwatch-credentials created clusterlogforwarder.logging.openshift.io/instance created clusterlogging.logging.openshift.io/instance created Complete.
数分後、AWS CloudWatch 内にロググループが表示され始めます。次のコマンドを実行してロググループを表示します。
$ aws logs describe-log-groups --log-group-name-prefix rosa-mycluster
出力例
{ "logGroups": [ { "logGroupName": "rosa-mycluster.application", "creationTime": 1724104537717, "metricFilterCount": 0, "arn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.application:*", "storedBytes": 0, "logGroupClass": "STANDARD", "logGroupArn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.application" }, { "logGroupName": "rosa-mycluster.audit", "creationTime": 1724104152968, "metricFilterCount": 0, "arn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.audit:*", "storedBytes": 0, "logGroupClass": "STANDARD", "logGroupArn": "arn:aws:logs:us-west-2:000000000000:log-group:rosa-mycluster.audit" },
18.10.2. ストリームとログへのデータの出力
メッセージを
stdout
に出力します。- OSToy アプリケーションで、Home をクリックし、Log Message (stdout) のメッセージボックスをクリックします。
-
stdout
ストリームに出力するメッセージ ("All is well!" など) を書き込みます。 Send Message をクリックします。
メッセージを
stderr
に出力します。- Log Message (stderr) のメッセージボックスをクリックします。
-
stderr
ストリームに出力するメッセージ ("Oh no! Error!" など) を書き込みます。 Send Message をクリックします。
18.10.3. oc
コマンドを使用したアプリケーションログの表示
コマンドラインインターフェイス (CLI) で次のコマンドを入力して、フロントエンド Pod の名前を取得します。
$ oc get pods -o name
出力例
pod/ostoy-frontend-679cb85695-5cn7x 1 pod/ostoy-microservice-86b4c6f559-p594d
- 1
- Pod 名は
ostoy-frontend-679cb85695-5cn7x
です。
次のコマンドを実行して、
stdout
とstderr
両方のメッセージを表示します。$ oc logs <pod-name>
出力例
$ oc logs ostoy-frontend-679cb85695-5cn7x [...] ostoy-frontend-679cb85695-5cn7x: server starting on port 8080 Redirecting to /home stdout: All is well! stderr: Oh no! Error!
18.10.4. CloudWatch でのログの表示
- AWS Web コンソール で CloudWatch に移動します。
左側のメニューで、Logs をクリックし、Log groups をクリックして、さまざまなロググループを表示します。次の 3 つのグループがあるはずです。
-
rosa-<cluster-name>.application
-
rosa-<cluster-name>.audit
rosa-<cluster-name>.infrastructure
-
-
rosa-<cluster-name>.application
をクリックします。 フロントエンド Pod のログストリームをクリックします。
-
stdout
とstderr
のフィルター。 行を展開すると、以前に入力したメッセージやその他の関連情報が表示されます。
- ログストリームに戻り、マイクロサービスを選択します。
- 検索バーに "microservice" と入力して、ログ内の他のメッセージを確認します。
エントリーの 1 つを展開すると、フロントエンド Pod がマイクロサービスから受信した色と、その色をフロントエンド Pod に送信した Pod が表示されます。