3.2. Red Hat OpenShift Container Platform での ServiceTelemetry オブジェクトの作成
Red Hat OpenShift Container Platform で ServiceTelemetry
オブジェクトを作成します。これにより、Service Telemetry Operator が Service Telemetry Framework (STF) デプロイメントのサポートコンポーネントを作成します。詳細は、「ServiceTelemetry オブジェクトのパラメーター」 を参照してください。
手順
デフォルト値を使用して STF をデプロイする
ServiceTelemetry
オブジェクトを作成するには、空のspec
パラメーターでServiceTelemetry
オブジェクトを作成します。$ oc apply -f - <<EOF apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: {} EOF
デフォルト値を上書きするには、上書きするパラメーターを定義します。この例では、
enabled
をtrue
に設定して ElasticSearch を有効にします。$ oc apply -f - <<EOF apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: backends: events: elasticsearch: enabled: true EOF
空の
spec
パラメーターを使用してServiceTelemetry
オブジェクトを作成すると、STF デプロイメントに以下のデフォルト値が設定されます。apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default spec: alerting: alertmanager: storage: persistent: pvcStorageRequest: 20G storageSelector: {} receivers: snmpTraps: enabled: false target: 192.168.24.254 strategy: persistent enabled: true backends: events: elasticsearch: enabled: false storage: persistent: pvcStorageRequest: 20Gi storageSelector: {} strategy: persistent metrics: prometheus: enabled: true scrapeInterval: 10s storage: persistent: pvcStorageRequest: 20G storageSelector: {} retention: 24h strategy: persistent graphing: enabled: false grafana: adminPassword: secret adminUser: root disableSignoutMenu: false ingressEnabled: false baseImage: docker.io/grafana/grafana:8.1.2 highAvailability: enabled: false transports: qdr: enabled: true web: enabled: false clouds: - name: cloud1 metrics: collectors: - collectorType: collectd subscriptionAddress: collectd/telemetry debugEnabled: false - collectorType: ceilometer subscriptionAddress: anycast/ceilometer/metering.sample debugEnabled: false - collectorType: sensubility subscriptionAddress: sensubility/telemetry debugEnabled: false events: collectors: - collectorType: collectd subscriptionAddress: collectd/notify debugEnabled: false - collectorType: ceilometer subscriptionAddress: anycast/ceilometer/event.sample debugEnabled: false
これらのデフォルトを上書きするには、設定を
spec
パラメーターに追加します。Service Telemetry Operator で STF デプロイメントログを表示します。
$ oc logs --selector name=service-telemetry-operator ... --------------------------- Ansible Task Status Event StdOut ----------------- PLAY RECAP ********************************************************************* localhost : ok=57 changed=0 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0
検証
Pod および各 Pod のステータスを表示し、すべてのワークロードが正常に動作していることを確認するには、以下を実行します。
注記backends.events.elasticsearch.enabled
をtrue
設定した場合、通知スマートゲートウェイは ElasticSearch を開始するまでの時間のためにError
とCrashLoopBackOff
エラーメッセージを報告します。$ oc get pods NAME READY STATUS RESTARTS AGE alertmanager-default-0 2/2 Running 0 17m default-cloud1-ceil-meter-smartgateway-6484b98b68-vd48z 2/2 Running 0 17m default-cloud1-coll-meter-smartgateway-799f687658-4gxpn 2/2 Running 0 17m default-cloud1-sens-meter-smartgateway-c7f4f7fc8-c57b4 2/2 Running 0 17m default-interconnect-54658f5d4-pzrpt 1/1 Running 0 17m elastic-operator-66b7bc49c4-sxkc2 1/1 Running 0 52m interconnect-operator-69df6b9cb6-7hhp9 1/1 Running 0 50m prometheus-default-0 2/2 Running 1 17m prometheus-operator-6458b74d86-wbdqp 1/1 Running 0 51m service-telemetry-operator-864646787c-hd9pm 1/1 Running 0 51m smart-gateway-operator-79778cf548-mz5z7 1/1 Running 0 51m
3.2.1. ServiceTelemetry オブジェクトのパラメーター
ServiceTelemetry
オブジェクトは、以下の主要な設定パラメーターで設定されます。
-
alerting
-
バックエンド
-
clouds
-
graphing
-
highAvailability
-
transports
これらの設定パラメーターをそれぞれ設定し、STF デプロイメントで異なる機能を提供できます。
servicetelemetry.infra.watch/v1alpha1
のサポートは STF 1.3 から削除されました。
バックエンドパラメーター
backends
パラメーターを使用して、メトリクスおよびイベントの保存に使用できるストレージバックエンドを制御し、clouds
パラメーターで定義されている Smart Gateway の有効化を制御します。詳細は、「clouds パラメーター」 を参照してください。
現時点で、Prometheus をメトリクスストレージバックエンドとして、ElasticSearch をイベントストレージバックエンドとして使用できます。
メトリクスのストレージバックエンドとしての Prometheus の有効化
Prometheus をメトリクスのストレージバックエンドとして有効にするには、ServiceTelemetry
オブジェクトを設定する必要があります。
手順
ServiceTelemetry
オブジェクトを設定します。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 Open Shift Container Platform クラスターのデフォルトのストレージクラスを使用します。
pvcStorageRequest
パラメーターを使用して、ストレージ要求を満たすために必要な最小のボリュームサイズを定義します。ボリュームが静的に定義されている場合は、要求されたよりも大きなボリュームサイズが使用される可能性があります。デフォルトでは、Service Telemetry Operator は 20G
(20 ギガバイト) のボリュームサイズを要求します。
手順
利用可能なストレージクラスを一覧表示します。
$ 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
ServiceTelemetry
オブジェクトを設定します。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 のイベントのストレージバックエンドとしての有効化
ElasticSearch をイベントのストレージバックエンドとして有効にするには、ServiceTelemetry
オブジェクトを設定する必要があります。
手順
ServiceTelemetry
オブジェクトを設定します。apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: backends: events: elasticsearch: enabled: true
ElasticSearch のための永続的なストレージの設定
backends.events.elasticsearch.storage.persistent
に定義されている追加のパラメーターを使用して、ストレージクラスやボリュームサイズなど、ElasticSearch の永続的なストレージオプションを設定します。
storageClass
を使用して、バックエンドのストレージクラスを定義します。このパラメーターを設定しない場合、Service Telemetry Operator は Red Hat Open Shift Container Platform クラスターのデフォルトのストレージクラスを使用します。
pvcStorageRequest
パラメーターを使用して、ストレージ要求を満たすために必要な最小のボリュームサイズを定義します。ボリュームが静的に定義されている場合は、要求されたよりも大きなボリュームサイズが使用される可能性があります。デフォルトでは、Service Telemetry Operator は 20Gi
(20 ギビバイト) のボリュームサイズを要求します。
手順
利用可能なストレージクラスを一覧表示します。
$ 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
ServiceTelemetry
オブジェクトを設定します。apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: backends: events: elasticsearch: enabled: true version: 7.16.1 storage: strategy: persistent persistent: storageClass: standard-csi pvcStorageRequest: 50G
clouds パラメーター
clouds
パラメーターを使用して、デプロイされる Smart Gateway オブジェクトを提議し、STF のインスタンスに接続する、複数の監視対象のクラウド環境にインターフェイスを提供されます。サポートするバックエンドが利用可能な場合に、デフォルトのクラウド設定のメトリクスおよびイベント Smart Gateway が作成されます。デフォルトで、Service Telemetry Operator は cloud1
の Smart Gateway を作成します。
クラウドオブジェクトの一覧を作成して、定義されたクラウドに作成される Smart Gateway を制御できます。各クラウドはデータタイプとコレクターで設定されます。データタイプは metrics
または events
イベントです。各データタイプは、コレクターの一覧、メッセージバスサブスクリプションアドレス、およびデバッグを有効にするパラメーターで設定されます。メトリックに使用できるコレクターは、collectd
、ceilometer
、および sensubility
です。イベントで利用可能なコレクターは collectd
および ceilometer
です。これらのコレクターのサブスクリプションアドレスは、クラウド、データタイプ、コレクターの組み合わせごとに一意であることを確認してください。
デフォルトの cloud1
設定は、特定のクラウドインスタンスの collectd、Ceilometer、および Sensubility データコレクターのメトリクスおよびイベントのサブスクリプションおよびデータストレージを提供する以下の ServiceTelemetry
オブジェクトによって表されます。
apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: stf-default namespace: service-telemetry spec: clouds: - name: cloud1 metrics: collectors: - collectorType: collectd subscriptionAddress: collectd/telemetry - collectorType: ceilometer subscriptionAddress: anycast/ceilometer/metering.sample - collectorType: sensubility subscriptionAddress: sensubility/telemetry debugEnabled: false events: collectors: - collectorType: collectd subscriptionAddress: collectd/notify - collectorType: ceilometer subscriptionAddress: anycast/ceilometer/event.sample
clouds
パラメーターの各項目はクラウドインスタンスを表します。クラウドインスタンスは、name
、metrics
、および events
の 3 つの最上位のパラメーターで設定されます。metrics
および events
パラメーターは、対象のデータタイプのストレージに対応するバックエンドを表します。collectors
パラメーターは、2 つの必須パラメーター collectorType
と subscriptionAddress
で設定されるオブジェクトの一覧を指定し、これらは Smart Gateway のインスタンスを表します。collectorType
パラメーターは、collectd、Ceilometer、または Sensubility のいずれかによって収集されるデータを指定します。subscriptionAddress
パラメーターは、Smart Gateway がサブスクライブする AMQ Interconnect アドレスを提供します。
collectors
パラメーター内でオプションのブール値パラメーター debugEnabled
を使用して、実行中の Smart Gateway Pod で追加のコンソールのデバッグを有効にすることができます。
関連情報
- デフォルトの Smart Gateway の削除に関する詳細は、「デフォルトの Smart Gateway を削除」 を参照してください。
- 複数のクラウドを設定する方法は、「複数のクラウドの設定」 を参照してください。
alerting パラメーター
alerting
パラメーターを使用して、Alertmanager インスタンスの作成とストレージバックエンドの設定を制御します。デフォルトでは alerting
は有効になっています。詳細は、「Service Telemetry Framework でのアラート」 を参照してください。
graphing パラメーター
graphing
パラメーターを使用して Grafana インスタンスの作成を制御します。デフォルトでは、graphing
は無効になっています。詳細は、「Service Telemetry Framework でのダッシュボード」 を参照してください。
highAvailability パラメーター
highAvailability
パラメーターを使用して複数の STF コンポーネントコピーのインスタンス化を制御し、失敗または再スケジュールされたコンポーネントの復旧時間を短縮します。デフォルトで、highAvailability
は無効になっています。詳細は、「高可用性」 を参照してください。
transports パラメーター
STF デプロイメントに対するメッセージバスの有効化を制御するには、transports
パラメーターを使用します。現在サポートされているトランスポートは AMQ Interconnect のみです。デフォルトでは、qdr
トランスポートが有効です。