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空の
specパラメーターを使用してServiceTelemetryオブジェクトを作成すると、STF デプロイメントに以下のデフォルト値が設定されます。apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: alerting: alertmanager: receivers: snmpTraps: alertOidLabel: oid community: public enabled: false port: 162 retries: 5 target: 192.168.24.254 timeout: 1 trapDefaultOid: 1.3.6.1.4.1.50495.15.1.2.1 trapDefaultSeverity: '' trapOidPrefix: 1.3.6.1.4.1.50495.15 storage: persistent: pvcStorageRequest: 20G strategy: persistent enabled: true backends: events: elasticsearch: certificates: caCertDuration: 70080h endpointCertDuration: 70080h storage: persistent: pvcStorageRequest: 20Gi strategy: persistent enabled: false version: 7.16.1 logs: loki: storage: objectStorageSecret: test storageClass: standard enabled: false flavor: 1x.extra-small replicationFactor: 1 metrics: prometheus: storage: persistent: pvcStorageRequest: 20G retention: 24h strategy: persistent enabled: true scrapeInterval: 10s clouds: - events: collectors: - bridge: ringBufferCount: 15000 ringBufferSize: 16384 verbose: false collectorType: collectd debugEnabled: false subscriptionAddress: collectd/cloud1-notify - bridge: ringBufferCount: 15000 ringBufferSize: 16384 verbose: false collectorType: ceilometer debugEnabled: false subscriptionAddress: anycast/ceilometer/cloud1-event.sample 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: 16384 verbose: false collectorType: sensubility debugEnabled: false subscriptionAddress: sensubility/cloud1-telemetry name: cloud1 graphing: grafana: adminPassword: secret adminUser: root disableSignoutMenu: false ingressEnabled: false enabled: false highAvailability: enabled: false transports: qdr: certificates: caCertDuration: 70080h endpointCertDuration: 70080h web: enabled: false enabled: true observabilityStrategy: use_communityこれらのデフォルトを上書きするには、設定を
specパラメーターに追加します。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 のステータスを表示し、すべてのワークロードが正常に動作していることを確認するには、以下を実行します。
注記backends.events.elasticsearch.enabledをtrue設定した場合、通知スマートゲートウェイは Elasticsearch を開始するまでの時間のためにErrorとCrashLoopBackOffエラーメッセージを報告します。$ oc get pods NAME READY STATUS RESTARTS AGE alertmanager-default-0 3/3 Running 0 4m7s default-cloud1-ceil-meter-smartgateway-669c6cdcf9-xvdvx 3/3 Running 0 3m46s default-cloud1-coll-meter-smartgateway-585855c59d-858rf 3/3 Running 0 3m46s default-cloud1-sens-meter-smartgateway-6f8dffb645-hhgkw 3/3 Running 0 3m46s default-interconnect-6994ff546-fx7jn 1/1 Running 0 4m18s elastic-operator-9f44cdf6c-csvjq 1/1 Running 0 19m interconnect-operator-646bfc886c-gx55n 1/1 Running 0 25m prometheus-default-0 3/3 Running 0 3m33s prometheus-operator-54d644d8d7-wzdlh 1/1 Running 0 20m service-telemetry-operator-54f6f7b6d-nfhwx 1/1 Running 0 18m smart-gateway-operator-9bbd7c56c-76w67 1/1 Running 0 18m
3.2.1. ServiceTelemetry オブジェクトのパラメーター
ServiceTelemetry オブジェクトは、以下の主要な設定パラメーターで設定されます。
-
alerting -
バックエンド -
clouds -
graphing -
highAvailability -
transports
これらの設定パラメーターをそれぞれ設定し、STF デプロイメントで異なる機能を提供できます。
バックエンドパラメーター
backends パラメーターを使用して、メトリクスおよびイベントの保存に使用できるストレージバックエンドを制御し、clouds パラメーターで定義されている Smart Gateway の有効化を制御します。詳細は、「clouds パラメーター」 を参照してください。
Prometheus をメトリクスストレージバックエンドとして、Elasticsearch をイベントストレージバックエンドとして使用できます。Service Telemetry Operator を使用して、Prometheus Operator および Elastic Cloud on Kubernetes Operator が Prometheus および Elasticsearch ワークロードを作成するために監視する他のカスタムリソースオブジェクトを作成できます。
メトリクスのストレージバックエンドとしての Prometheus の有効化
Prometheus をメトリクスのストレージバックエンドとして有効にするには、ServiceTelemetry オブジェクトを設定する必要があります。
手順
Service Telemetryオブジェクトを編集します。$ oc edit stf default
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 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
Service Telemetryオブジェクトを編集します。$ oc edit stf default
backends.metrics.prometheus.enabled パラメーターの値を
trueに設定し、backends.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 のイベントのストレージバックエンドとしての有効化
Elasticsearch をイベントのストレージバックエンドとして有効にするには、ServiceTelemetry オブジェクトを設定する必要があります。
手順
Service Telemetryオブジェクトを編集します。$ oc edit stf default
backends.events.elasticsearch.enabled パラメーターの値を
trueに設定します。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
Service Telemetryオブジェクトを編集します。$ oc edit stf default
backends.events.elasticsearch.enabled パラメーターの値を
trueに設定し、backends.events.elasticsearch.storage.strategy の値をpersistentに設定します。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: 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 パラメーターの各項目はクラウドインスタンスを表します。クラウドインスタンスは、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 トランスポートが有効です。