検索

4.2. Prometheus での Fuse Online インテグレーションおよびインフラストラクチャーコンポーネントの監視

download PDF

Prometheus を使用して Fuse Online インフラストラクチャーコンポーネントおよび Fuse Online インテグレーションを監視できます。Grafana ダッシュボードを使用して、Prometheus によって収集されるメトリクスを可視化することもできます。

重要

Prometheus に対する Red Hat のサポートは、Red Hat 製品ドキュメントに記載されているセットアップと推奨設定に限定されます。

Grafana はコミュニティーがサポートする機能です。Grafana をデプロイして Red Hat Fuse 製品を監視する設定は、Red Hat の実稼働環境におけるサービスレベルアグリーメント (SLA) の対象外です。

Fuse Online インテグレーションを監視する他に、Prometheus を使用して以下の Fuse Online インフラストラクチャーコンポーネントによって公開されるメトリクスを監視できます。

Syndesis Server
syndesis-server コンポーネントは Micrometer でインストルメント化され、デフォルトですべての JVM Micrometer メトリクスを自動的に公開します。さらに、syndesis-server は要求レート、エラーレート、レイテンシーなどの REST API エンドポイントに関するメトリクスを公開します。
Syndesis Meta
syndesis-meta コンポーネントは Micrometer でインストルメント化され、デフォルトですべての JVM Micrometer メトリクスを自動的に公開します。また、REST API エンドポイントについてのメトリクスも公開します。
Syndesis DB
Fuse Online Postgres データベースのメトリクスは、サードパーティーの Prometheus エクスポーター を使用してエクスポートされます。
統合
integration メトリクスは、インテグレーションが作成され、デフォルトで複数の JVM メトリクスを公開する公式の JMX エクスポーターを使用してエクスポートされた後に表示されます。さらに、integration メトリクスは、メッセージレートやエラーレートなどの Apache Camel 固有のメトリクスを公開します。

前提条件

  • Fuse Online は、オンサイトで OCP 4.9 (またはそれ以降) にインストールされ、実行されている。
  • oc クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。
  • OCP クラスターへの admin アクセスがある。
  • Fuse Online インストールが ops addon が有効になっている状態で設定されている。必要に応じて、以下のコマンドで有効にすることができます。

    oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'

手順

  1. 既存の openshift-monitoring 設定がある場合は、手順 2 に進みます。

    それ以外の場合には、ユーザーワークロードモニターリングオプションを true に設定する openshift-monitoring 設定を作成し、手順 3 に進みます。

    oc apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
       enableUserWorkload: true
    EOF
  2. 既存の openshift-monitoring 設定がある場合:

    1. 既存の openshift-monitoring 設定をチェックして、ユーザーワークロードモニターリング オプションが true に設定されるかどうかを判別します。

      oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'

      結果が enableUserWorkload: true の場合、ユーザーワークロードモニターリング オプションは true に設定されます。ステップ 3 に進みます。

      結果に他の設定が表示される場合には、次の手順に進み、ConfigMap を編集してユーザーワークロードの監視を有効にします。

    2. 以下のようにエディターで ConfigMap ファイルを開きます。

      oc -n openshift-monitoring edit cm/cluster-monitoring-config
    3. enableUserWorkloadtrue に設定します。以下に例を示します。

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cluster-monitoring-config
        namespace: openshift-monitoring
      data:
        config.yaml: |
         enableUserWorkload: true
    4. ConfigMap ファイルを保存します。
  3. 以下のコマンドを使用して、openshift-user-workload-monitoring namespace の Pod のステータスを確認します。

    oc -n openshift-user-workload-monitoring get pods -w

    Pod のステータスが Running になるまで待機します。以下に例を示します。

    prometheus-operator-5d989f48fd-2qbzd   2/2     Running
    prometheus-user-workload-0             5/5     Running   prometheus-user-workload-1             5/5     Running
    thanos-ruler-user-workload-0           3/3     Running
    thanos-ruler-user-workload-1           3/3     Running
  4. Prometheus で Fuse Online のアラートルールが有効になっていることを確認します。

    1. 内部 prometheus インスタンスにアクセスします。

      oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
    2. ブラウザーを開いて localhost:9090 にアクセスします。
    3. Status> Targets の順に選択します。3 つの syndesis エンドポイントが表示されるはずです。
    4. CTRL-C を押して、port-forward プロセスを終了します。
  5. OperatorHub から、Grafana Operator を選択した namespace (例:grafana-middleware namespace) にインストールします。
  6. クラスターロールとクラスターロールのバインディングを追加して、grafana-operator がノードおよび namespace を一覧表示できるようにします。

    1. grafana-operator Web サイトからクラスターロール YAML ファイルをダウンロードします。

      curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
    2. grafana-operator のクラスターパーミッションを追加して、他の namespace およびノードを読み取ります。

      cat <<EOF >> tmp_role.yaml
        - apiGroups:
            - ""
          resources:
            - namespaces
            - nodes
          verbs:
            - get
            - list
            - watch
      EOF
      oc apply -f tmp_role.yaml
      oc apply -f - <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: grafana-operator
      roleRef:
        name: grafana-operator
        kind: ClusterRole
        apiGroup: ""
      subjects:
        - kind: ServiceAccount
          name: grafana-operator-controller-manager
          namespace: grafana-middleware
      EOF
  7. DASHBOARD_NAMESPACES_ALL 環境変数を使用して namespace を制限することで、grafana-operator が他の namespace から Grafana ダッシュボードを読み取れるようにします。

    oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
  8. grafana Pod が再作成されていることを確認します。

    oc -n grafana-middleware get pods -w
  9. 必要に応じて、grafana-operator ログを表示します。

    oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
  10. Grafana カスタムリソース を追加して、以下のように Grafana サーバー Pod を起動します。

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: Grafana
    metadata:
      name: grafana-middleware
      namespace: grafana-middleware
    spec:
      config:
        auth:
          disable_signout_menu: true
        auth.anonymous:
          enabled: true
        log:
          level: warn
          mode: console
        security:
          admin_password: secret
          admin_user: root
      dashboardLabelSelector:
      - matchExpressions:
        - key: app
          operator: In
          values:
          - grafana
          - syndesis
      ingress:
        enabled: true
    EOF
  11. grafana-operator がモニターリング情報を読み取ることを許可します。

    oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
  12. GrafanaDatasource を追加して、thanos-querier をクエリーします。

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: GrafanaDataSource
    metadata:
      name: prometheus-grafanadatasource
      namespace: grafana-middleware
    spec:
      datasources:
        - access: proxy
          editable: true
          isDefault: true
          jsonData:
            httpHeaderName1: 'Authorization'
            timeInterval: 5s
            tlsSkipVerify: true
          name: Prometheus
          secureJsonData:
            httpHeaderValue1: "Bearer $(oc -n grafana-middleware serviceaccounts get-token grafana-serviceaccount)"
          type: prometheus
          url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')"
      name: prometheus-grafanadatasource.yaml
    EOF
  13. grafana サーバーログを表示します。

    oc logs -f `oc get pods -l app=grafana -oname`
  14. grafana URL にアクセスし、Fuse Online ダッシュボードを表示するには、以下を実行します。

    echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')

    Grafana コンソールの左側のパネルで、検索ボタンをクリックします。各 Syndesis インスタンスのダッシュボードを含むフォルダー (OCP namespace 名) が表示されます。

    • Fuse Online インテグレーションでは、Integration - Camel を選択します。このダッシュボードには、Apache Camel インテグレーションアプリケーションによって公開される標準メトリクスが表示されます。
    • Fuse Online インフラストラクチャーコンポーネントでは、以下のインフラストラクチャーダッシュボードのいずれかを選択します。

      Infrastructure - DB
      Fuse Online の Postgres インスタンスに関連するメトリクスを表示します。
      Infrastructure - JVM
      syndesis-meta または syndesis-server アプリケーションの実行中の JVM に関するメトリクスを表示します。ダッシュボードの上部にある Application ドロップダウンリストから、監視するアプリケーションを選択します。
      Infrastructure - REST APIs
      request throughput および latency などの Fuse Online インフラストラクチャー API エンドポイントに関連するメトリクスを表示します。ダッシュボードの上部にある Application ドロップダウンリストから、監視するアプリケーションを選択します。

関連情報

Prometheus を初めて使用する場合は、https://prometheus.io/docs/prometheus/latest/getting_started/ を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.