Grafana

Grafanaを使用したモニタリング・メトリックの表示

Grafanaは、Prometheusメトリック・データのビジュアライゼーションを提供します。

  • クラスタごとに1つのポッド。
  • vmi-system-grafana-*という名前(verrazzano-systemネームスペース内)。
  • メトリック・ビジュアライゼーション用のダッシュボードを提供します。

Grafanaにアクセスするには:

  1. Grafanaイングレスからホスト名を取得します。

    $ kubectl get ingress vmi-system-grafana -n verrazzano-system
    
    # Sample output
    NAME                 CLASS    HOSTS                                              ADDRESS          PORTS     AGE
    vmi-system-grafana   <none>   grafana.vmi.system.default.123.456.789.10.nip.io   123.456.789.10   80, 443   26h
    

  2. ユーザーverrazzanoのパスワードを取得します。

    $ kubectl get secret \
        --namespace verrazzano-system verrazzano \
        -o jsonpath={.data.password} | base64 \
        --decode; echo
    

  3. ホスト名を使用して、ブラウザでGrafanaにアクセスします。

  4. verrazzanoユーザーおよびパスワードを使用してログインします。

Grafana

Grafanaダッシュボード

Verrazzanoは、Grafanaに多数の事前構成済ダッシュボードをインストールします。これらのダッシュボードは、論理的にフォルダに編成されます。フォルダを表示するには、「Dashboards」アイコンを見つけて「Manage」を選択します。

GrafanaFolders

各フォルダには、1つ以上の事前構成済ダッシュボードがあります。ダッシュボードは、アプリケーション、アプリケーションが実行されているKubernetesクラスタおよびVerrazzano自体をモニターするためのメトリックを視覚的に表したものです。これらのダッシュボードに追加したり、事前構成済のダッシュボードをコピーおよび変更したりできます。

フォルダおよびダッシュボードの説明を次に示します:

  • Coherence - Coherenceアプリケーションをモニターするための一連のダッシュボード。Coherenceクラスタ、キャッシュ、エラスティック・データ、フェデレーション詳細、HTTPサーバー、Kubernetes、マシン、クラスタ・メンバー、永続性サマリー、プロキシ・サーバーおよびCoherenceサービスからのメトリックを提供します。
  • Helidon - Helidonワークロードに関して、ステータス、ヒープ使用量、JVMヒープ・サイズ、スレッド数、HTTPリクエストなど、HelidonアプリケーションのJVM詳細を提供します。
  • Istio - Verrazzano Istioサービス・メッシュとメッシュで実行されているワークロードをモニターするための一連のダッシュボード。
  • JVM - Verrazzanoにデプロイされたアプリケーションのモニタリング用。
  • NGINX - Verrazzanoシステムのイングレス・コントローラとイングレス・コントローラを使用して作成されたイングレスのモニタリング用。メトリックには、コントローラ・リクエスト・ボリューム、コントローラ接続、コントローラ成功率、構成リロード、ネットワーク圧力などがあります。
  • OpenSearch - クラスタ・ヘルス、シャード詳細、索引詳細、JVMメトリックなど、OpenSearchクラスタからのメトリックを提供します。
  • Prometheus Operator - CPU使用率、メモリー制限など、クラスタ・コンピュート・リソースのメトリックを提供します。
  • WebLogic - WebLogicワークロードに関して、WebLogic Serverのランタイム・デプロイメントをモニターおよび診断するためのWebLogic Serverランタイム・メトリックを提供します。

また、次の事前構成済Grafana Verrazzanoダッシュボードがあります。これらのダッシュボードは、Verrazzano ApplicationVerrazzano MonitoringおよびVerrazzano Systemフォルダにあります:

  • Verrazzano Applicationには、Application Statusダッシュボードが含まれています。このダッシュボードは、VerrazzanoにデプロイされたOAMアプリケーションの全体的なヘルスとパフォーマンス、および実行中のポッドの詳細に関する情報を提供します。この情報は、クラスタ、アプリケーションおよびコンポーネントに基づいてフィルタできます。
    • Verrazzanoに新しいアプリケーションをデプロイすると、そのアプリケーションは自動的にダッシュボードに追加され、Applicationsのリストで使用できるようになります。モニターする特定のアプリケーションを選択し、表示するアプリケーション・メトリックを選択できます。メトリックは次の3行にあります:
      • Summaryは、CPUおよびメモリーの使用量とポッドのステータスを提供します。
      • Storageは、ディスクおよびPVC (永続ボリューム要求)の使用量を提供します。
      • Requestsは、HTTPリクエストおよびリクエスト・メトリックを提供します。
  • Verrazzano Monitoringには、Verrazzanoが実行されているKubernetesクラスタをモニターするためのダッシュボードが含まれています:
    • alertmanager-mixinは、Alertmanagerによって送信された成功および無効の通知も含め、Alertmanagerによって作成されたアラートを表示します。
    • etcd-mixinは、クラスタ・メトリックを提供し、アクティブ・ストリーム、RPCレート、データベース・サイズ、メモリー使用量、クライアント・トラフィック、ピア・トラフィックなどの追加情報を表示します。
    • kubernetes-mixinは、クラスタ、ポッド、ワークロード・タイプおよびノードに基づくCPU、メモリーおよびネットワークのメトリック、クラスタ、ポッド、ワークロード・タイプおよびノードに基づくネットワーク帯域幅、永続ボリューム使用量、プロキシおよびスケジューラのメトリックを提供します。
    • node-exporter-mixinは、CPU、メモリー、ディスクおよびネットワーク使用量のノード・レベルのステータスを提供します。


次の図は、Verrazzano Monitoringのダッシュボードを示しています:

Verrazzano Monitoringのダッシュボード

  • Verrazzano Systemには、すべてのVerrazzanoシステム・コンポーネントのヘルスとクラスタ全体のKubernetesリソースのリソース使用量に関する情報を提供する一連のダッシュボードがあります。
    • Resource Usage Detailedは、アプリケーション・オペレータ、クラスタ・オペレータ、モニタリング・オペレータ、プラットフォーム・オペレータなど、Verrazzanoの各システム・コンポーネントのリソース使用量の詳細ビューを提供します。クラスタやコンポーネントなどに基づいて情報をフィルタできます。
    • Resource Usage Summaryは、リソース使用量のサマリーを示します。これは、すべてのコンポーネントまたは特定のコンポーネントについて表示できます。クラスタやコンポーネントなどに基づいて情報をフィルタできます。メトリックは次の3行にあります:
      • Summaryは、CPUおよびメモリーの使用量とポッドのステータスを提供します。
      • Storageは、ディスクおよびPVC (永続ボリューム要求)の使用量を提供します。
      • Requestsは、HTTPリクエストおよびリクエスト・メトリックを提供します。
    • System Healthは、Verrazzanoのすべてのシステム・コンポーネントのヘルスを提供します。これは、ローカル・クラスタまたはその他の登録済クラスタについて表示できます。

動的なダッシュボード検出と移植性

Verrazzanoでは、Grafanaダッシュボードを動的に検出できます。この機能を使用すると、ダッシュボードの構成および設定をKubernetes ConfigMapとしてパッケージ化して、個別に、またはアプリケーションとともにデプロイできます。

ダッシュボードをConfigMapとして構成するには:

  1. ダッシュボードをJSONファイルとして作成します。または、既存のGrafanaダッシュボードをJSONファイルとしてエクスポートできます。「Manage Dashboards」を参照してください。

  2. Grafanaを実行しているのと同じクラスタで、次を含むConfigMapを作成します:

    • Grafanaがダッシュボードを検出するためのラベルgrafana_dashboard:"1"

    • ダッシュボードを定義および構成するJSONコード(ステップ1のダッシュボードのJSON)。

    • オプションで、ダッシュボードを表示するGrafanaフォルダ名を指定するk8s-sidecar-target-directory注釈。この注釈の値は、Grafanaフォルダ名です。指定しない場合、ダッシュボードはデフォルトのGrafanaフォルダに表示されます。

ダッシュボードのConfigMapの例を次に示します。

apiVersion: v1
kind: ConfigMap
metadata:
  annotations:
    k8s-sidecar-target-directory: My App Dashboards
  labels:
    grafana_dashboard: "1"
  name: app-dashboard
  namespace: app
data:
  app_dashboard.json: |-
    {
      "title": "My App Dashboard",
      "uid": "Q4Bkkx",
      "version": 2,
      "panels": [
        {
          ...
        }
      ...
    }

ConfigMapが作成されると、ダッシュボードがGrafanaにロードされます。

または、kubectl create configmapを使用して1つのファイルからConfigMapを作成したり、複数のファイルからConfigMapを生成したりすることもできます。「Create a ConfigMap」を参照してください。

ダッシュボードのConfigMapを使用して、カスタム・ダッシュボードをデプロイできます。これらのダッシュボードは変更可能ですが、Grafanaに保存することはできません。ダッシュボードを変更する場合は、ConfigMapを更新するか、ダッシュボードをGrafanaコンソールから新しい場所に保存します。