検索

3.2. Red Hat OpenShift Container Platform での ServiceTelemetry オブジェクトの作成

download PDF

Red Hat OpenShift Container Platform で ServiceTelemetry オブジェクトを作成します。これにより、Service Telemetry Operator が Service Telemetry Framework (STF) デプロイメントのサポートコンポーネントを作成します。詳細は、「ServiceTelemetry オブジェクトのパラメーター」 を参照してください。

前提条件

手順

  1. STF がホストされている Red Hat OpenShift Container Platform 環境にログインします。
  2. メトリクス配信用のコアコンポーネントを設定する STF をデプロイするには、ServiceTelemetry オブジェクトを作成します。

    $ oc apply -f - <<EOF
    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      alerting:
        alertmanager:
          storage:
            persistent:
              pvcStorageRequest: 20G
            strategy: persistent
        enabled: true
      backends:
        metrics:
          prometheus:
            enabled: true
            scrapeInterval: 30s
            storage:
              persistent:
                pvcStorageRequest: 20G
              retention: 24h
              strategy: persistent
      clouds:
      - metrics:
          collectors:
          - bridge:
              ringBufferCount: 15000
              ringBufferSize: 16384
              verbose: false
            collectorType: collectd
            debugEnabled: false
            subscriptionAddress: collectd/cloud1-telemetry
          - bridge:
              ringBufferCount: 15000
              ringBufferSize: 16384
              verbose: false
            collectorType: ceilometer
            debugEnabled: false
            subscriptionAddress: anycast/ceilometer/cloud1-metering.sample
          - bridge:
              ringBufferCount: 15000
              ringBufferSize: 65535
              verbose: false
            collectorType: sensubility
            debugEnabled: false
            subscriptionAddress: sensubility/cloud1-telemetry
        name: cloud1
      observabilityStrategy: use_redhat
      transports:
        qdr:
          auth: basic
          certificates:
            caCertDuration: 70080h
            endpointCertDuration: 70080h
          enabled: true
          web:
            enabled: false
    EOF

    これらのデフォルトを上書きするには、設定を spec パラメーターに追加します。

  3. Service Telemetry Operator で STF デプロイメントログを表示します。

    $ oc logs --selector name=service-telemetry-operator
    
    ...
    --------------------------- Ansible Task Status Event StdOut  -----------------
    
    PLAY RECAP *********************************************************************
    localhost                  : ok=90   changed=0    unreachable=0    failed=0    skipped=26   rescued=0    ignored=0

検証

  • Pod および各 Pod のステータスを表示し、すべてのワークロードが正常に動作していることを確認するには、以下を実行します。

    $ oc get pods
    
    NAME                                                        READY   STATUS    RESTARTS   AGE
    alertmanager-default-0                                      3/3     Running   0          123m
    default-cloud1-ceil-meter-smartgateway-7dfb95fcb6-bs6jl     3/3     Running   0          122m
    default-cloud1-coll-meter-smartgateway-674d88d8fc-858jk     3/3     Running   0          122m
    default-cloud1-sens-meter-smartgateway-9b869695d-xcssf      3/3     Running   0          122m
    default-interconnect-6cbf65d797-hk7l6                       1/1     Running   0          123m
    interconnect-operator-7bb99c5ff4-l6xc2                      1/1     Running   0          138m
    prometheus-default-0                                        3/3     Running   0          122m
    service-telemetry-operator-7966cf57f-g4tx4                  1/1     Running   0          138m
    smart-gateway-operator-7d557cb7b7-9ppls                     1/1     Running   0          138m

3.2.1. ServiceTelemetry オブジェクトのパラメーター

ServiceTelemetry オブジェクトの次の主要な設定パラメーターを設定して、STF デプロイメントを設定できます。

  • alerting
  • バックエンド
  • clouds
  • graphing
  • highAvailability
  • transports
バックエンドパラメーター

backends パラメーターの値を設定すると、メトリクスとイベントにストレージバックエンドを割り当て、clouds パラメーターで定義されている Smart Gateway を有効にできます。詳細は、「clouds パラメーター」 を参照してください。

Prometheus をメトリクスストレージバックエンドとして、Elasticsearch をイベントストレージバックエンドとして使用できます。Service Telemetry Operator は、Prometheus Operator が Prometheus ワークロードを作成するために監視するカスタムリソースオブジェクトを作成できます。イベントを保存するには、Elasticsearch の外部デプロイメントが必要です。

メトリクスのストレージバックエンドとしての Prometheus の有効化

Prometheus をメトリクスのストレージバックエンドとして有効にするには、ServiceTelemetry オブジェクトを設定する必要があります。

手順

  1. ServiceTelemetry オブジェクトを編集します。

    $ oc edit stf default
  2. backends.metrics.prometheus.enabled パラメーターの値を true に設定します。

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      [...]
      backends:
        metrics:
          prometheus:
            enabled: true
Prometheus に永続ストレージの設定

backends.metrics.prometheus.storage.persistent で追加のパラメーターを設定すると、Prometheus のストレージクラスやボリュームサイズなどの永続的ストレージオプションを設定できます。

storageClass パラメーターを使用して、バックエンドストレージクラスを定義します。このパラメーターを設定しない場合、Service Telemetry Operator は Red Hat OpenShift Container Platform クラスターのデフォルトのストレージクラスを使用します。

pvcStorageRequest パラメーターを使用して、ストレージ要求に必要な最小ボリュームサイズを定義します。デフォルトでは、Service Telemetry Operator は 20G (20 ギガバイト) のボリュームサイズを要求します。

手順

  1. 利用可能なストレージクラスをリスト表示します。

    $ oc get storageclasses
    NAME                 PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    csi-manila-ceph      manila.csi.openstack.org   Delete          Immediate              false                  20h
    standard (default)   kubernetes.io/cinder       Delete          WaitForFirstConsumer   true                   20h
    standard-csi         cinder.csi.openstack.org   Delete          WaitForFirstConsumer   true                   20h
  2. ServiceTelemetry オブジェクトを編集します。

    $ oc edit stf default
  3. backends.metrics.prometheus.enabled パラメーターの値を truebackends.metrics.prometheus.storage.strategy の値を persistent に設定します。

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      [...]
      backends:
        metrics:
          prometheus:
            enabled: true
            storage:
              strategy: persistent
              persistent:
                storageClass: standard-csi
                pvcStorageRequest: 50G
Elasticsearch のイベントのストレージバックエンドとしての有効化
注記

STF の以前のバージョンでは、コミュニティーがサポートする Elastic Cloud on Kubernetes Operator (ECK) の Elasticsearch オブジェクトが管理されていました。Elasticsearch 管理機能は、STF 1.5.3 で非推奨になりました。引き続き ECK を使用してデプロイおよび管理する既存の Elasticsearch インスタンスに転送することもできますが、Elasticsearch オブジェクトの作成を管理することはできません。STF デプロイメントをアップグレードすると、既存の Elasticsearch オブジェクトとデプロイメントは残りますが、STF によって管理されなくなります。

STF で Elasticsearch を使用する際の詳細は、Red Hat ナレッジベースの記事 Using Service Telemetry Framework with Elasticsearch を参照してください。

ストレージバックエンドとして Elasticsearch にイベントを転送できるようにするには、ServiceTelemetry オブジェクトを設定する必要があります。

手順

  1. ServiceTelemetry オブジェクトを編集します。

    $ oc edit stf default
  2. backends.events.elasticsearch.enabled パラメーターの値を true に設定し、関連する Elasticsearch インスタンスを使用して hostUrl を設定します。

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      [...]
      backends:
        events:
          elasticsearch:
            enabled: true
            forwarding:
              hostUrl: https://external-elastic-http.domain:9200
              tlsServerName: ""
              tlsSecretName: elasticsearch-es-cert
              userSecretName: elasticsearch-es-elastic-user
              useBasicAuth: true
              useTls: true
  3. userSecretName パラメーターで指定されたシークレットを作成して、basic auth の認証情報を保存します。

    $ oc create secret generic elasticsearch-es-elastic-user --from-literal=elastic='<PASSWORD>'
  4. CA 証明書を EXTERNAL-ES-CA.pem という名前のファイルにコピーし、tlsSecretName パラメーターで指定されたシークレットを作成して STF で使用できるようにします。

    $ cat EXTERNAL-ES-CA.pem
    -----BEGIN CERTIFICATE-----
    [...]
    -----END CERTIFICATE-----
    
    $ oc create secret generic elasticsearch-es-cert --from-file=ca.crt=EXTERNAL-ES-CA.pem
clouds パラメーター

clouds パラメーターを設定して、デプロイされる Smart Gateway オブジェクトを定義し、監視対象のクラウド環境に STF のインスタンスに接続するためのインターフェイスを提供します。サポートするバックエンドが利用可能な場合は、デフォルトのクラウド設定のメトリクスおよびイベント Smart Gateway が作成されます。デフォルトで、Service Telemetry Operator は cloud1 の Smart Gateway を作成します。

クラウドオブジェクトのリストを作成して、定義されたクラウドに作成される Smart Gateway を制御できます。各クラウドはデータタイプとコレクターで構成されます。データタイプは metrics または events イベントです。各データタイプは、コレクターのリスト、メッセージバスサブスクリプションアドレス、およびデバッグを有効にするパラメーターで構成されます。メトリクスに使用できるコレクターは、collectdceilometer、および sensubility です。イベントで利用可能なコレクターは collectd および ceilometer です。これらのコレクターのサブスクリプションアドレスは、クラウド、データタイプ、コレクターの組み合わせごとに一意であることを確認してください。

デフォルトの cloud1 設定は、特定のクラウドインスタンスの collectd、Ceilometer、および Sensubility データコレクターのメトリクスおよびイベントのサブスクリプションおよびデータストレージを提供する以下の ServiceTelemetry オブジェクトによって表されます。

apiVersion: infra.watch/v1beta1
kind: ServiceTelemetry
metadata:
  name: default
  namespace: service-telemetry
spec:
  clouds:
    - name: cloud1
      metrics:
        collectors:
          - collectorType: collectd
            subscriptionAddress: collectd/cloud1-telemetry
          - collectorType: ceilometer
            subscriptionAddress: anycast/ceilometer/cloud1-metering.sample
          - collectorType: sensubility
            subscriptionAddress: sensubility/cloud1-telemetry
            debugEnabled: false
      events:
        collectors:
          - collectorType: collectd
            subscriptionAddress: collectd/cloud1-notify
          - collectorType: ceilometer
            subscriptionAddress: anycast/ceilometer/cloud1-event.sample

clouds パラメーターの各項目はクラウドインスタンスを表します。クラウドインスタンスは、namemetrics、および events の 3 つの最上位のパラメーターで構成されます。metrics および events パラメーターは、対象のデータタイプのストレージに対応するバックエンドを表します。collectors パラメーターは、2 つの必須パラメーター collectorTypesubscriptionAddress で構成されるオブジェクトのリストを指定し、これらは Smart Gateway のインスタンスを表します。collectorType パラメーターは、collectd、Ceilometer、または Sensubility のいずれかによって収集されるデータを指定します。subscriptionAddress パラメーターは、Smart Gateway がサブスクライブする AMQ Interconnect アドレスを提供します。

collectors パラメーター内でオプションのブール値パラメーター debugEnabled を使用して、実行中の Smart Gateway Pod で追加のコンソールのデバッグを有効にすることができます。

関連情報

alerting パラメーター

alerting パラメーターを設定して、Alertmanager インスタンスとストレージバックエンドを作成します。デフォルトでは alerting は有効になっています。詳細は、「Service Telemetry Framework でのアラート」 を参照してください。

graphing パラメーター

graphing パラメーターを設定して、Grafana インスタンスを作成します。デフォルトでは、graphing は無効になっています。詳細は、「Service Telemetry Framework でのダッシュボード」 を参照してください。

highAvailability パラメーター
警告

STF 高可用性 (HA) モードは非推奨であり、実稼働環境ではサポートされていません。Red Hat OpenShift Container Platform は高可用性プラットフォームであるため、HA モードを有効にすると問題が発生し、STF でのデバッグが複雑になる可能性があります。

highAvailability パラメーターを設定して STF コンポーネントの複数のコピーをインスタンス化し、失敗したか再スケジュールされたコンポーネントの回復時間を短縮します。デフォルトで、highAvailability は無効になっています。詳細は、「高可用性」 を参照してください。

transports パラメーター

transports パラメーターを設定して、STF デプロイメントのメッセージバスを有効にします。現在サポートされているトランスポートは AMQ Interconnect のみです。デフォルトでは、qdr トランスポートが有効です。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.