WSO 2マイクロ積分器による雲固有可観測性


分散システム環境では、トラブルシューティングとデバッグは重要であり、また非常にチャレンジングなタスクです.WSO 2 Micro Integratorは、包括的な観測可能性解決を提供するために、クラウドネイティブのモニタリングツールと統合する可能性を提供します:ログ監視、メッセージ追跡とメトリックスモニタリング.
WSO 2 miでは、観測可能性に対処する2つのアプローチがあります.
  • 古典:WSO 2 EI AnalyticsとLog 4 J
  • ネイティブの
  • 雲:Fluentbit、ロキ、ジャガー、プロメテウスとグラファナ
  • このポストでは、Kubernetes環境で雲の自然な可観測性解決の簡単なセットアップを示します.
    そのためには、observability-ei Githubリポジトリで利用可能なヘルムチャートを活用します.このレポは、MIのための古典的で雲のネイティブの観察性の両方を展開するためにヘルムチャートを含みます.
    このポストの基礎として、私たちはEI docsで提供されたドキュメントを使用しました.

    クラウドネイティブの可観測性スタックの設定


    以下のイメージで、WSO 2 docsから取得された、我々が設定する観測可能性の解決策を見ることができます.

    K 8 Sでこれらのツールをインストールするには、上記のセクションで述べたリポジトリからヘルムチャートを使用します.端末では、以下のgitコマンドを使ってリポジトリをチェックアウトできます.
    git clone https://github.com/wso2/observability-ei.git
    
    そうすると、クラウドネイティブディレクトリに行きます.
    cd observability-ei/cloud-native
    
    簡単なインストールを実行するには、ヘルムチャートをインストールする必要があります.YAMLファイル.

    Prometheusサービスポートを更新します


    デフォルトのプロメテウスがサービスポートを80に設定すると、prometheus -> serverの下に設定エントリサービスポートを追加することで8088に変更されます
      ...
      server:
        service:
          type: LoadBalancer
          servicePort: 8088
      ...
    
    私たちはそれを変更しました.なぜなら、私たちは後で80番ポートを別のコンポーネントのために使うからです.今プロメテウスはOKです.Grafanaコンポーネントに移動します.

    グラファナの設定


    Grafanaでは2つの変更を行います.
    サービスポートの更新
    以下のようにGrafana ->サービスの下にあるプロパティポートを使用して、サービスポートを9080に変更します.
      enabled: true
      service:
        type: LoadBalancer
        port: 9080
    
    これはGrafana UIにアクセスするためのポートです.
    更新データを更新
    Grafanaの設定ではDataSourcesの設定があり、そのうちの1つはPrometheusです.プロメテウスのポートを8088に変更したので、以下のようなデータソースのURLをポートに追加する必要があります.
    - name: Prometheus
      type: prometheus
      url: http://{{ .Release.Name }}-prometheus-server:8088
      access: proxy
      isDefault: true
    
    これらの設定でgrafanaは使用可能です.

    LOKIスタックの設定


    LOKIスタック構成については、以下の変更を行います.
    有効フラグをtrueに変更して有効にする
    loki-stack:
      enabled: true
    
    展開ラベルと名前空間
    この例では、ラベルアプリケーションをWSO 2 miと名前空間名にデフォルトに変更します
    ...
    labels:
      app: wso2mi
      release: release
    namespace_name: default
    ...
    
    を有効にする
    このフラグを有効にするには、有効なフラグを設定します.
    promtail:
      enabled: true
    
    それで、私たちは今ジャガーに移動しましょう.

    有効にする


    有効なフラグをtrueに設定することで、メッセージ追跡のためのJaegerを有効にする必要があります.これをすることによって、それはクラスタでJaeger演算子をインストールします
    jaeger:
      enabled: true
    

    可観測性スタックをインストールする


    上記の構成を実行した後、Objectability Edy/Cloudネイティブフォルダ内に次のコマンドを実行して、Kerbernetesクラスタに観測可能スタックをインストールできます.
    helm install wso2-observability . --render-subchart-notes
    
    この後、以下のURLを使用してPrometheus UIにアクセスできます.
    http://localhost:8088/graph
    
    LocalHostを使用しています.なぜなら、デスクトップKubernetesローカルクラスタのDockerで展開しているからです.
    Grafana UIにアクセスできます.
    http://localhost:9080/
    
    使用するユーザ名はadminです.パスワードを取得するには以下のコマンドを実行します.
    kubectl get secret --namespace default wso2-observability-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
    
    さあ、Jaegerのインスタンスをインストールしましょう.

    Jaegerインスタンスのインストール


    前に述べたように、今ではジャガー演算子をインストールし、インスタンスをインストールする必要があります.そのためには、最も単純な展開を使用します.次のように定義されています.
    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: wso2-observability
    spec:
      ingress:
        enabled: true
        annotations:
          kubernetes.io/ingress.class: nginx
    
    次に、以下のコマンドを実行できます.
    kubectl apply -f jaeger-simplest.yaml
    
    ポッドが稼働した後、私たちは、URLを使用して、Jaeger UIにアクセスすることができます.
    http://localhost/search
    
    インクルードを使用しているため、Jegegerインスタンスを作成する前にNGinx Ingressコントローラをインストールする必要があります.
    上記の構成で、我々は現在、使用可能にインストールされ、設定された観測可能性ツールを持っている.以下では、Kerbernetes用のWSO 2 mi展開を設定します.

    マイクロ・インテグレータ


    MI展開のためのPrometheusモニタリングとJaeger観測可能性を可能にするために、配備にいくつかのセッティングを加えるのが必要です.ToMLとKubernetes定義にも.展開から始めましょう.トムール
    展開.モニタリングと追跡のためのTOML変化
    プロメテウスメトリックについては、次のハンドラを追加する必要があります.
    [[synapse_handlers]]
    name="CustomObservabilityHandler"
    class="org.wso2.micro.integrator.observability.metric.handler.MetricHandler"
    
    Jaeger追跡のために、我々はメッセージ追跡とjaeger構成を可能にする必要があります:
    [mediation]
    flow.statistics.capture_all= true
    stat.tracer.collect_payloads= true
    stat.tracer.collect_mediation_properties= true
    
    [opentracing]
    enable = true
    logs = true
    jaeger.sampler.manager_host = "wso2-observability-agent"
    jaeger.sender.agent_host = "wso2-observability-agent"
    
    上記の構成では、WEO 2 miのターゲットサーバとしてJaegerエージェントのK 8 Sサービス名を使用してトレースを送信します.
    Kubernetes環境で動作するので、この展開を焼く必要があります.Dockerイメージにtomlしたり、k 8 s展開のコンフィギュレーションとしてマウントします.
    展開の設定
    メトリクス監視とFluentBitを使用したログ解析の場合は、配置に次の注釈を追加する必要があります.
    prometheus.io.wso2/scrape: "true"
    prometheus.io.wso2/port: "9201"
    prometheus.io.wso2/path: /metric-service/metrics
    fluentbit.io/parser: wso2
    
    また、PrometheusメトリクスAPIを有効にするには、次のJava Systemプロパティを追加する必要があります.
    - name: JAVA_OPTS  
      value: "-DenablePrometheusApi=true
    
    また、LOKIログ監視で使用するラベルを指定する必要があります.
    ...
    template:
        metadata:
          labels:
            app: wso2mi
            release: release
    ...
    
    これらの構成をK 8 s展開で使用すると、アプリケーションをKubernetesクラスタに展開することもできます.また、配備されたAPI/サービスにもいくつかの要求を行うことができます.

    セットアップの確認


    すべてが適切に設定されている場合は、統合クラスタダッシュボードをチェックすることができます.

    ログパネルでは、どのデータソースとラベルを使用するかを指定する必要があるので、コンテンツを表示してはいけません.そのためには、編集オプションでクリックする必要があります.

  • データソース:ロキ

  • ログラベル:アプリ>WSO 2 MI

  • これらのパネルでプロメテウスとロキとの統合を見ることができます.JAEGERトレースをチェックするには、APIやサービスメトリクスダッシュボードに移動する必要があります.
    応答時間パネルでは、“i”のアイコンがJaegerコンソールへのリンクがあります.それを動作させるには、ダッシュボードの設定でJaeger URLを指定する必要があります.ダッシュボードの設定に行くと、変数のセクションがあります.

    それを更新した後、我々は現在、APIの呼び出しの追跡情報を確認するには、アイコンをクリックすることができます

    結論


    このポストでは、WSO 2マイクロインテグレータのための雲の固有の可観測性解決を設定する簡単な方法を示しました.他のツールと一緒に解決策を監視する方法を持って、すぐに解決のコンポーネントが問題を抱えている識別します.
    このような解決策を活用することによって、WSO 2マイクロインテグレータで開発されたクラウドネイティブアプリケーションを提供、監視、維持することができます.
    私は、これが助けることを望みます!
    次のポストでお会いしましょう.