Cryostat を使用した JFR レコーディングの管理


Red Hat build of Cryostat 2

Red Hat Customer Content Services

概要

Red Hat build of Cryostat を使用して、コンテナー化されたアプリケーションにある Java 仮想マシン (JVM) のパフォーマンスをモニターする JDK Flight Recordings (JFR) を管理する方法を説明します。Cryostat 2.4 を使用すると、JVM の JFR データを起動、停止、取得、アーカイブ、インポート、およびエクスポートできます。

はじめに

Red Hat build of Cryostat は、JDK Flight Recorder (JFR) のコンテナーネイティブ実装です。これを使用すると、OpenShift Container Platform クラスターで実行されるワークロードで Java 仮想マシン (JVM) のパフォーマンスを安全にモニターできます。Cryostat 2.4 を使用すると、Web コンソールまたは HTTP API を使用して、コンテナー化されたアプリケーション内の JVM の JFR データを起動、停止、取得、アーカイブ、インポート、およびエクスポートできます。

ユースケースに応じて、Cryostat が提供するビルトインツールを使用して、Red Hat OpenShift クラスターに直接レコーディングを保存して分析したり、外部のモニタリングアプリケーションにレコーディングをエクスポートして、レコーディングしたデータをより詳細に分析したりできます。

重要

Red Hat build of Cryostat は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 セキュリティーオプション

Cryostat のセキュリティー設定を行うと、Cryostat インスタンスをより適切に保護できます。

アプリケーションは、JMX 認証ヘッダーを含む API リクエストを Cryostat に送信できます。その後、Cryostat はアプリケーションに接続できるように、認証チャレンジに合格する必要があります。Cryostat とターゲット JVM アプリケーションの間の接続を確立している間、Red Hat build of Cryostat Operator は認証情報をメモリー内に保存します。

Cryostat は、ターゲット JVM アプリケーションの認証情報を暗号化し、Red Hat OpenShift の永続ボリューム要求 (PVC) に格納されているデータベースに保存できます。Cryostat は、認証情報をデータベースに追加する HTTP リクエストと、その認証情報を使用してターゲットアプリケーションに接続する JMX 接続で SSL/TLS をサポートします。また、Cryostat は、ユーザーによって提供されたパスフレーズまたは Red Hat build of Cryostat Operator によって生成されたパスフレーズを使用して、データベース内の認証情報を暗号化します。

1.1. SSL 証明書のアップロード

Cryostat Web コンソールの Recordings または Events タブから SSL エラーメッセージを受け取った場合は、ターゲット JVM の SSL 証明書をアップロードする必要があります。そうしない場合、JFR レコーディング作成ツールなどの Cryostat ツールにアクセスできません。

前提条件

  • Cryostat インスタンスの認証情報を入力した。
  • Dashboard パネルからターゲット JVM を作成した。
  • ターゲット JVM の SSL 証明書をダウンロードした。

手順

  1. Cryostat インスタンスの Recordings メニューまたは Events メニューに移動します。

    注記

    以降の手順では、例として Recordings メニューを使用しますが、Events メニューでも同様の手順を実行できます。

  2. Recordings パネルで、ドロップダウンリストからターゲット JVM を選択します。ターゲット JVM に信頼できる SSL 証明書が含まれていない場合、次の例のようにプロンプトが表示されます。

    図1.1 SSL エラーメッセージ

    SSL エラーメッセージ
  3. Security ボタンをクリックします。Cryostat Web コンソールでウィンドウが開き、Security ダイアログボックスが表示されます。

    図1.2 Security ダイアログボックス

    *Security* ダイアログボックス
  4. Upload ボタンをクリックします。Cryostat Web コンソールで Upload SSL certificate ウィンドウが開きます。

    図1.3 Upload SSL certificate ウィンドウ

    *Upload SSL certificate* ウィンドウ
  5. Browse ボタンをクリックして、ローカルシステムの SSL 証明書を見つけます。

    重要

    SSL 証明書は、binary または base64 のいずれかの形式を使用して、DER でエンコードされている必要があります。Cryostat は、.der および .cer ファイル拡張子をサポートします。

  6. Cryostat インスタンスを再起動します。
  7. Cryostat インスタンスの Recordings メニューに移動します。
  8. Web コンソールに Authentication Required というメッセージが表示された場合は、認証情報を入力します。一部のターゲット JVM では、監査目的でデータにアクセスする前に認証が必要です。

関連情報

1.2. 認証情報の保存および管理

ターゲット JVM アプリケーションに対して Java Management Extensions (JMX) 認証または HTTP 認証を有効にすると、Cryostat がアプリケーションの JFR レコーディングにアクセスできるように、認証情報の入力を求められます。

Cryostat Web コンソールで Recordings または Events メニュー項目をクリックすると、コンソールで Authentication Required ウィンドウが開きます。ターゲット JVM アプリケーションのユーザー名およびパスワードを入力する必要があります。その後、レコーディングを表示したり、アプリケーションで追加のレコーディング操作を実行したりできます。

図1.4 Cryostat Authentication Required ウィンドウの例

Cryostat *Authentication Required* ウィンドウの例

Cryostat は、Cryostat エージェントまたはターゲット JVM への接続に使用する認証情報を保存します。

重要

ターゲット JVM アプリケーションを再起動する必要がある場合は、アプリケーションの JFR レコーディングデータが失われないように、次のいずれかのタスクを完了してください。

  • Cryostat Web コンソールの Recordings メニュー項目をクリックし、JFR レコーディングをアーカイブします。
  • Cryostat アーカイブのストレージの場所にスナップショットのレコーディングをコピーするように Cryostat をスケジュールする自動化されたルールを作成します。

自動化されたルールを作成して複数のターゲット JVM をモニターする場合は、各ターゲット JVM 接続に対して認証情報を保存して再利用するように Cryostat を設定できます。この設定を使用すると、Cryostat Web コンソールでアプリケーションの JFR レコーディングに再度アクセスするときに、認証情報を再入力する必要がなくなります。

前提条件

  • ターゲット JVM アプリケーションの JMX または HTTP 認証を有効にした。

手順

  1. Security メニュー項目をクリックします。
  2. Store Credentials ウィンドウで、Add ボタンをクリックします。Store Credentials ウィンドウが開きます。

    図1.5 Store Credentials ウィンドウの例

    Cryostat Web コンソールの *Store Credentials* ウィンドウの例
  3. Match Expression フィールドに、一致式の詳細を指定します。

    注記

    疑問符アイコンを選択すると、Match Expression Hint スニペットに推奨の構文が表示されます。

  4. Save をクリックします。Store Credentials ウィンドウにテーブルエントリーが表示され、ターゲット JVM の Match Expression が示されます。

    図1.6 Store Credentials ペインのテーブルエントリーの例

    *Store Credentials* ペインのテーブルエントリーの例
    重要

    セキュリティー上の理由から、テーブルエントリーにはユーザー名やパスワードは表示されません。

  5. オプション: ターゲット JVM の保存済み認証情報を削除する場合は、このターゲット JVM のテーブルエントリーの横にあるチェックボックスを選択してから、Delete をクリックします。

第2章 JFR レコーディングのアーカイブ

アクティブな JFR レコーディングをアーカイブして、JFR レコーディングからのデータ損失を防ぐことができます。アーカイブした JFR レコーディングは、ダウンロードまたはアップロードできるため、ニーズに合わせてレコーディングを分析できます。

アーカイブした JFR レコーディングは、Archives メニューの All TargetsAll Archives、および Uploads の 3 つの見出しのいずれかの下に時系列で表示されます。JFR レコーディングに対して実行したアクションによっては、レコーディングが各テーブルの下に表示される場合があります。

2.1. JDK Flight Recorder (JFR) のレコーディングのアーカイブ

アクティブな JFR レコーディングをアーカイブして、JFR レコーディングからのデータ損失を防ぐことができます。Cryostat が古い JFR レコーディングデータを新しいデータに置き換えてストレージ容量を節約したり、ターゲット JVM が突然停止または再起動したりすると、データの損失が発生する可能性があります。

レコーディングのアーカイブを作成すると、Cryostat はアクティブな JFR レコーディングのデータをコピーし、そのデータを Cryostat インスタンスの永続ストレージの場所に保存します。Red Hat build of Cryostat Operator は、この永続ストレージの場所を Red Hat OpenShift クラスター内の関連付けられた永続ボリューム要求 (PVC) に構築します。

JFR レコーディングは、その設定に関係なくアーカイブできます。さらに、JFR レコーディングからスナップショットをアーカイブすることもできます。

前提条件

  • Cryostat インスタンスの認証情報を入力した。
  • ターゲット JVM レコーディングを作成し、認証情報を入力しており、Recordings メニューにアクセスできる。JDK Flight Recorder (JFR) レコーディングの作成 (Cryostat を使用した JFR レコーディングの作成) を参照してください。

手順

  1. Active Recordings タブで、JFR レコーディングのチェックボックスを選択します。Archive ボタンは、Active Recordings ツールバーで有効になります。

    図2.1 JFR レコーディング用のアーカイブボタン

    JFR レコーディング用のアーカイブボタン
  2. Archive ボタンをクリックします。Cryostat は、JFR レコーディングのアーカイブを作成します。

    選択したターゲット JVM に関連するその他のレコーディングとともに、Archived Recordings タブの下からアーカイブされたレコーディングを表示できます。

    または、All Targets テーブルの下からアーカイブされたレコーディングを表示できます。

    図2.2 All Targets テーブルの下にリストされたターゲット JVM アプリケーションの例

    *All Targets* テーブルの下にリストされたターゲット JVM アプリケーションの例
    ヒント

    アーカイブされたレコーディングがないターゲット JVM エントリーを削除するには、Hide targets with zero recordings チェックボックスを選択します。

    JVM ターゲットエントリーの横にある下矢印 (v) をクリックすると、フィルター機能にアクセスできます。この機能では、ラベルを編集してフィルターを強化したり、Delete ボタンをクリックしてフィルターを削除したりできます。

  3. All Targets テーブルから、確認する各ターゲット JVM アプリケーションの横にあるチェックボックスを選択します。テーブルには、アーカイブされた各レコーディングとそのソースの場所がリスト表示されます。
  4. All Archives テーブルに移動します。このテーブルは All Targets テーブルに似ていますが、All Archives テーブルには、Cryostat が Cryostat 内でアーカイブしたファイルからのターゲット JVM アプリケーションがリスト表示されます。

    注記

    アーカイブされたファイルに認識可能な JVM アプリケーションがない場合、そのファイルは引き続き All Archives テーブルにリストされますが、見出し lost の下のネストされたテーブル内で開きます。

  5. オプション: アーカイブされたレコーディングを削除するには、特定のアーカイブされた JFR レコーディング項目の横にあるチェックボックスを選択し、プロンプトが表示されたら Delete をクリックします。

    図2.3 アーカイブされた JFR レコーディングの削除

    アーカイブされた JFR レコーディングの削除
    注記

    Cryostat は、ターゲット JVM アプリケーションのアドレス、アクティブなレコーディングの名前、作成されたアーカイブ済みレコーディングのタイムスタンプに基づいて、アーカイブされたレコーディングに名前を割り当てます。

関連情報

2.2. アクティブなレコーディングまたはアーカイブされたレコーディングのダウンロード

Cryostat を使用して、アクティブなレコーディングまたはアーカイブされたレコーディングをローカルシステムにダウンロードできます。

前提条件

手順

  1. Cryostat インスタンスの Recordings メニューまたは Archives メニューに移動します。

    注記

    以降の手順では、例として Recordings メニューを使用しますが、Archives メニューでも同様の手順を実行できます。

  2. Active Record タブまたは Archived Recordings タブをクリックして、必要なレコーディングを決定します。
  3. リストされた JFR レコーディングを見つけ、そのオーバーフローメニューを選択します。

    図2.4 JFR レコーディングのオーバーフローメニューの表示

    JFR レコーディングのオーバーフローメニューの表示
  4. 以下のいずれかのオプションを選択します。

    1. オーバーフローメニューから、Download Recording をクリックします。オペレーティングシステムの設定に応じて、ファイル保存ダイアログが開きます。JFR バイナリーファイルと JSON ファイルを任意の場所に保存します。
    2. All Targets テーブルから、リストされている JFR レコーディングのオーバーフローメニューを選択します。Download をクリックして、アーカイブされたファイルを、メタデータとラベル情報を含む JSON ファイルとともにローカルシステムに保存します。
  5. オプション: ダウンロードしたファイルを Java Mission Control (JMC) デスクトップアプリケーションで表示します。

    注記

    .jfr ファイルをダウンロードせずに、Cryostat アプリケーションでレコーディングからのデータを表示する場合は、View in Grafana オプションをクリックします。

2.3. JFR レコーディングを Cryostat のアーカイブ場所にアップロードする

ローカルシステムから Cryostat のアーカイブ場所に、JFR レコーディングをアップロードできます。

Cryostat ストレージ領域を節約するために、JFR レコーディングをスケールダウンまたは削除している可能性があります。JFR レコーディングをダウンロードした場合は、インスタンスのスケールアップまたは再デプロイ時に Cryostat インスタンスにアップロードできます。

さらに、以前の Cryostat インスタンスから新しい Cryostat インスタンスにファイルをアップロードすることもできます。Cryostat 分析ツールは、新しい Cryostat インスタンスにアップロードされたレコーディングを使用します。

前提条件

手順

  1. Cryostat インスタンスの Archives メニューに移動します。

    図2.5 Cryostat Web コンソールの Archives メニュー

    Cryostat Web コンソールの *Archives* メニュー
  2. オプション: Uploads テーブルから、アップロードされたすべての JFR レコーディングを表示できます。Uploads テーブルには、All Targets テーブルやその他の出力など、他のテーブルと同様のフィルタリングメカニズムも組み込まれています。Archives メニューのフィルタリングメカニズムを使用して、認識可能なターゲット JVM アプリケーションを持たない可能性があるアーカイブファイルを見つけることもできます。

    図2.6 Archives メニューの Uploads テーブル

    *Archives* メニューの *Uploads* テーブル
  3. アップロードアイコンをクリックします。Re-Upload Archived Recording ウィンドウが、Cryostat Web インターフェイスに表示されます。

    図2.7 Re-Upload Archived Recording ウィンドウ

    *Re-Upload Archived Recording* ウィンドウ
  4. JFR File フィールドで、Upload をクリックします。
  5. 拡張子が .jfr のファイルである JFR レコーディングファイルを探し、Submit をクリックします。

    注記

    または、.jfr ファイルを JFR File フィールドにドラッグアンドドロップすることもできます。

JFR レコーディングファイルが Uploads テーブルで開きます。

図2.8 Uploads テーブルにある JFR レコーディングの例

*Uploads* テーブルにある JFR レコーディングの例

第3章 イベントテンプレート

Cryostat には、デフォルトのイベントテンプレートが含まれています。これを使用すると、ターゲット JVM のパフォーマンスをモニターするための JFR レコーディングをすばやく作成できます。

3.1. カスタムイベントテンプレートの使用

JDK Flight Recorder (JFR) レコーディングの作成時に、以下のいずれかのデフォルトイベントテンプレートを選択できます。

  • 一定期間、または明示的に停止されるまで、ターゲット Java 仮想マシン (JVM) の基本的なデータを収集する継続テンプレート。
  • 一定期間、または明示的に停止されるまで、ターゲット Java 仮想マシン (JVM) の詳細なデータを収集するプロファイリングテンプレート。

どちらかのデフォルトイベントテンプレートを使用して、ターゲット JVM のパフォーマンスをモニターするための JFR レコーディングを迅速に作成できます。どちらのイベントテンプレートも、必要に応じて後で編集できます。たとえば、デフォルトイベントテンプレートにはアプリケーション固有のカスタムイベントが含まれないため、これらのカスタムイベントをカスタムテンプレートに追加する必要があります。

Cryostat は ALL meta-template もサポートします。これを使用すると、JFR はターゲット JVM のすべてのイベントタイプをモニターできます。各イベントタイプにはデフォルト値があります。ALL meta-template には XML 定義が含まれないため、ALL meta-template の XML ファイルをダウンロードすることはできません。

前提条件

  • Installed Operators オプションを使用して、Cryostat 2.4 を Red Hat OpenShift にインストールした。
  • Red Hat OpenShift プロジェクトに Cryostat インスタンスを作成した。

手順

  1. Cryostat インスタンスの Dashboard パネルで、ドロップダウンリストから Target JVM を選択します。
  2. オプション: Topology パネルで、Add to view アイコンを選択してターゲット JVM を定義できます。アイコンを選択すると、カスタムターゲット接続 URL を定義するためのウィンドウが開きます。

    1. Connection URL フィールドに、JVM の Java Management Extension (JMX) エンドポイントの URL を入力します。
    2. オプション: Alias フィールドに、JMX Service URL のエイリアスを入力します。
    3. Create をクリックします。

      図3.1 Create Target ダイアログボックス

      *Create Custom Target* ダイアログボックス
  3. Cryostat Web コンソールのナビゲーションメニューから、Events をクリックします。Web コンソールで Authentication Required ダイアログが開く場合があります。プロンプトが表示されたら、Authentication Required ダイアログボックスに UsernamePassword を入力し、Save をクリックしてターゲット JVM に認証情報を提供します。

    注記

    選択したターゲット JMX で、JMX 接続に対して SSL/TLS 証明書が有効な場合は、プロンプトが表示されたら証明書を追加する必要があります。

    Cryostat は、ターゲット JVM アプリケーションの認証情報を暗号化し、Red Hat OpenShift の永続ボリューム要求 (PVC) に格納されているデータベースに保存できます。

  4. Event Templates タブで、リストされたイベントテンプレートを見つけ、その他のオプションメニューを選択します。
  5. その他のオプションメニューから、Download をクリックします。オペレーティングシステムの設定に応じて、ファイル保存ダイアログが開きます。ファイルを任意の場所に保存します。

    図3.2 イベントテンプレートのその他のオプションメニューの例

    イベントテンプレートのその他のオプションメニューの例
  6. デフォルトのファイルエディターでファイルを開き、必要に応じてファイルを編集します。設定の変更を保持するには、ファイルを保存する必要があります。

    注記

    後の段階でファイルの特定に役立つ description および provider 属性に値を追加できます。

  7. Events メニューから Event Templates タブに移動し、Upload アイコンをクリックします。Cryostat Web コンソールで Create Custom Event Template 開きます。

    図3.3 Create Custom Event Template ウィンドウ

    *Create Custom Event Template* ウィンドウ
  8. Upload をクリックし、デフォルトのファイルエディターを使用して、1 つ以上の設定済みイベントテンプレートファイルを Cryostat Web コンソールにアップロードします。ファイルを Template XML ウィンドウにドラッグアンドドロップすることもできます。
  9. Submit ボタンをクリックします。Cryostat Web コンソールで Event Templates タブが開き、カスタムイベントテンプレートが表示されます。
  10. オプション: イベントテンプレートを作成すると、次のいずれかのオプションを選択し、テンプレートを使用して JFR レコーディングを作成できます。

    • Automated Rules メニューから Create をクリックし、Template リストからイベントテンプレートを選択します。
    • Events メニューから、リストされたイベントテンプレートを見つけ、その他のオプションメニューから Create Recording を選択します。
    • Recordings メニューの Active Recordings タブで、Create をクリックします。

関連情報

第4章 統合アプリケーション

Cryostat は、JFR レコーディングに基づくデータの分析方法を強化できる特定のアプリケーションと統合されています。

4.1. Grafana での JFR レコーディングの表示

Cryostat 2.4 は Grafana アプリケーションと統合されているため、Grafana で JFR レコーディングデータをプロットできます。プロットデータを期間ごとに区切って表示し、ターゲット JVM アプリケーションのパフォーマンスを正確に分析できます。

前提条件

手順

  1. Cryostat インスタンスの Recordings メニューまたは Archives メニューに移動します。
  2. 必要に応じて、Active Recordings タブまたは Archived Recordings タブをクリックします。
  3. JFR レコーディングを見つけ、オーバーフローメニューを選択します。

    図4.1 JFR レコーディングの例で利用可能なオーバーフローメニュー項目

    JFR レコーディングの例で利用可能なオーバーフローメニュー項目
  4. オーバーフローメニューから View in Grafana オプションをクリックします。新しい Web ブラウザーウィンドウで Grafana アプリケーションが開きます。
  5. Grafana ダッシュボードのサインインアイコンをクリックします。
  6. ターミナルで以下のコマンドを実行し、認証情報を確認します。

    <cryostat_name>=$(kubectl get cryostat -o jsonpath='{$.items[0].metadata.name}')
    
    oc get secret $<cryostat_name>-grafana-basic -o jsonpath='{$.data.GF_SECURITY_ADMIN_USER}' | base64 -d
    
    oc get secret $<cryostat_name>-grafana-basic -o jsonpath='{$.data.GF_SECURITY_ADMIN_PASSWORD}' | base64 -d

    また、Red Hat OpenShift の Cryostat details ページにある Grafana Secret カスタムリソース (CR) から認証情報を見つけることもできます。

    図4.2 OpenShift における Cryostat details ページの Grafana Secret CR

    Red Hat OpenShift の *Cryostat details* ページにある *Grafana Secret* CR
  7. Grafana Web コンソールのログインページに認証情報を入力します。ダッシュボードウィンドウが開き、JFR レコーディングのデータがさまざまな時系列プロットで表示されます。
  8. オプション: プロットの時系列セグメントを選択して、プロットを操作します。画面上のデータが拡大され、その期間のデータのみが表示されます。

    図4.3 プロットグラフありの Grafana ダッシュボード例

    プロットグラフありの Grafana ダッシュボード例

改訂日時: 2024-01-02

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.