Red Hat で Java Platform Advocate として OpenJDK を担当している伊藤ちひろ(@chiroito)です。
この記事は、Red Hat Developerのブログ記事、Manage JMX credentials on Kubernetes with Cryostat 2.1 | Red Hat Developer の翻訳記事です。
Cryostatは、Kubernetes上のJDK Flight Recorderのデータを管理するためのツールです。コンテナ化されたJava仮想マシン(JVM)上でJava Management Extensions(JMX)認証を有効にしている場合、CryostatはターゲットJVM上のJDKフライトレコーディングにアクセスする前にJMX認証情報を入力するよう促します。CryostatコンソールのAutomated Rules、Recordings、Eventsタブでは、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 認証情報を入力します。
図1:JMXの認証情報を保存するために「Security」タブに移動
図2に示すように、ターゲットJVMを選択し、JMX認証情報を入力するよう促す画面が表示されます。
図2:JMXの認証情報を入力
また、図3に示すように、Recordings または Events タブに移動して、JMX認証を有効にしたターゲットJVMを選択すると、JMX認証情報が自動的に保存されます。同様の認証画面が表示され、JMX認証情報を入力するよう促されます。認証情報は自動的に保存され、「Stored JMX Credentials」表に表示されます。認証情報は自動的に記憶され、いつでも削除できます。
図3:このJMX認証ポップアップ画面は、ターゲットJVMの記録を閲覧する前に認証が必要な場合に表示される
ターゲットに認証情報を保存すると、ターゲットエイリアスと接続 URL が Security タブの Stored Credentials 表に表示されます。これは、図 4 に示すように、Cryostat がそのターゲットの JMX 認証情報を保存していることを示します。繰り返しになりますが、特定のターゲットに保存された認証情報を関連付ける場合、接続 URL だけが重要です。ターゲットエイリアスはいつでも自由に変更でき、Cryostat が保存された JMX 認証情報を見つけ、ターゲット JVM に適用する能力に影響を与えることはありません。
セキュリティ対策として、登録後は実際の認証情報を確認できません。既存のターゲットの保存された認証情報を置き換えたい場合、古い認証情報項目を削除し、古い項目と同じ接続 URL で新しい項目を追加できます。保存されている認証情報を削除するには、ターゲットの横にあるチェックボックスを選択し、Delete をクリックします。保存されているすべてのJMX認証情報を削除するには、表の上部にあるヘッダのチェックボックスを選択し、Deleteをクリックします。
図4:保存されたJMX認証情報の表
まとめ
この記事では、コンテナ化されたJVMに接続する際にCryostatが再利用するためのJMX認証情報を保存する方法について説明しました。Cryostatの詳細については、cryostat.ioを参照してください。質問、コメント、フィードバックは、GitHubで私たちとつながるか、メーリングリストに参加することで、お気軽にどうぞ。