Cryostat 2.1によるKubernetes上のJMX認証情報の管理

Red Hat で Java Platform Advocate として OpenJDK を担当している伊藤ちひろ(@chiroito)です。

この記事は、Red Hat Developerのブログ記事、Manage JMX credentials on Kubernetes with Cryostat 2.1 | Red Hat Developer の翻訳記事です。


https://developers.redhat.com/sites/default/files/styles/article_feature/public/2020_Java_ContainerJFR_Featured_Article__A-01.png?itok=K_g-UdJY

Cryostatは、Kubernetes上のJDK Flight Recorderのデータを管理するためのツールです。コンテナ化されたJava仮想マシン(JVM)上でJava Management Extensions(JMX)認証を有効にしている場合、CryostatはターゲットJVM上のJDKフライトレコーディングにアクセスする前にJMX認証情報を入力するよう促します。CryostatコンソールのAutomated RulesRecordingsEventsタブでは、JMX認証情報を入力する必要があります。これは、JMX認証を有効にしたターゲットで既存のフライトレコーディングを表示したり録画操作を実行したい場合に必要です。自動ルールなどのCryostatの機能で複数のターゲットJVMを監視する場合、Cryostatが各ターゲット接続のJMX認証情報を記憶し再利用することを望むでしょう。

Cryostatは、各ターゲットの接続URLとして知られる一意のJMXサービスURLに従って、JMX認証情報を保存します。基盤となるJVMインスタンスの変更、ターゲットエイリアスの変更、ターゲットアプリケーションの再起動があっても、Cryostatは、保存されたJMX認証情報を、認証情報が関連付けられている接続URLに適用します。

ターゲットアプリケーション上で自動的に記録を開始し保存する自動化ルールを開始したい場合、ルールを作成する前に、Security タブで選択した各ターゲットの認証情報を保存しなければなりません。Cryostat に JMX 認証を必要とするターゲットの認証情報がない場合、ルールはターゲット JVM に接続できず、記録は開始されません。

ここでは、CryostatのWeb UIを使用して、保存されたJMX認証情報を管理する方法を紹介します。

CryostatにJMXの認証情報を保存する方法

まず、Security タブに移動します。Stored Credentials 表は、Cryostat が JMX 認証情報を保存しているすべてのターゲットを一覧表示します。図 1 に示すように Add をクリックして、希望するターゲット JVM の JMX 認証情報を入力します。

https://developers.redhat.com/sites/default/files/empty-jmx-credentials-ui.png

図1:JMXの認証情報を保存するために「Security」タブに移動

図2に示すように、ターゲットJVMを選択し、JMX認証情報を入力するよう促す画面が表示されます。

https://developers.redhat.com/sites/default/files/store-jmx-credentials.png

図2:JMXの認証情報を入力

また、図3に示すように、Recordings または Events タブに移動して、JMX認証を有効にしたターゲットJVMを選択すると、JMX認証情報が自動的に保存されます。同様の認証画面が表示され、JMX認証情報を入力するよう促されます。認証情報は自動的に保存され、「Stored JMX Credentials」表に表示されます。認証情報は自動的に記憶され、いつでも削除できます。

https://developers.redhat.com/sites/default/files/navigate-to-recordings-1.png

図3:このJMX認証ポップアップ画面は、ターゲットJVMの記録を閲覧する前に認証が必要な場合に表示される

ターゲットに認証情報を保存すると、ターゲットエイリアスと接続 URL が Security タブの Stored Credentials 表に表示されます。これは、図 4 に示すように、Cryostat がそのターゲットの JMX 認証情報を保存していることを示します。繰り返しになりますが、特定のターゲットに保存された認証情報を関連付ける場合、接続 URL だけが重要です。ターゲットエイリアスはいつでも自由に変更でき、Cryostat が保存された JMX 認証情報を見つけ、ターゲット JVM に適用する能力に影響を与えることはありません。

セキュリティ対策として、登録後は実際の認証情報を確認できません。既存のターゲットの保存された認証情報を置き換えたい場合、古い認証情報項目を削除し、古い項目と同じ接続 URL で新しい項目を追加できます。保存されている認証情報を削除するには、ターゲットの横にあるチェックボックスを選択し、Delete をクリックします。保存されているすべてのJMX認証情報を削除するには、表の上部にあるヘッダのチェックボックスを選択し、Deleteをクリックします。

https://developers.redhat.com/sites/default/files/view-store-credential-target-table_0.png

図4:保存されたJMX認証情報の表

まとめ

この記事では、コンテナ化されたJVMに接続する際にCryostatが再利用するためのJMX認証情報を保存する方法について説明しました。Cryostatの詳細については、cryostat.ioを参照してください。質問、コメント、フィードバックは、GitHubで私たちとつながるか、メーリングリストに参加することで、お気軽にどうぞ。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。