3.2. Red Hat OpenShift Container Platform での ServiceTelemetry オブジェクトの作成
Red Hat OpenShift Container Platform で ServiceTelemetry
オブジェクトを作成します。これにより、Service Telemetry Operator が Service Telemetry Framework (STF) デプロイメントのサポートコンポーネントを作成します。詳細は、「ServiceTelemetry オブジェクトのパラメーター」 を参照してください。
前提条件
- STF とサポート Operator をデプロイしている。詳細は、「Service Telemetry Framework の Red Hat OpenShift Container Platform 環境へのデプロイ」 を参照してください。
- Cluster Observability Operator をインストールして、メトリクスの保存を許可している。詳細は、「Cluster Observability Operator のデプロイ」 を参照してください。
- 証明書管理のために cert-manager for Red Hat OpenShift をインストールしている。詳細は、「cert-manager for Red Hat OpenShift のデプロイ」 を参照してください。
手順
- STF がホストされている Red Hat OpenShift Container Platform 環境にログインします。
メトリクス配信用のコアコンポーネントを設定する 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
パラメーターに追加します。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
オブジェクトを設定する必要があります。
手順
ServiceTelemetry
オブジェクトを編集します。$ 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 OpenShift 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
オブジェクトを編集します。$ 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 のイベントのストレージバックエンドとしての有効化
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
オブジェクトを設定する必要があります。
手順
ServiceTelemetry
オブジェクトを編集します。$ oc edit stf default
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
userSecretName
パラメーターで指定されたシークレットを作成して、basicauth
の認証情報を保存します。$ oc create secret generic elasticsearch-es-elastic-user --from-literal=elastic='<PASSWORD>'
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
イベントです。各データタイプは、コレクターのリスト、メッセージバスサブスクリプションアドレス、およびデバッグを有効にするパラメーターで構成されます。メトリクスに使用できるコレクターは、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 パラメーター
STF 高可用性 (HA) モードは非推奨であり、実稼働環境ではサポートされていません。Red Hat OpenShift Container Platform は高可用性プラットフォームであるため、HA モードを有効にすると問題が発生し、STF でのデバッグが複雑になる可能性があります。
highAvailability
パラメーターを設定して STF コンポーネントの複数のコピーをインスタンス化し、失敗したか再スケジュールされたコンポーネントの回復時間を短縮します。デフォルトで、highAvailability
は無効になっています。詳細は、「高可用性」 を参照してください。
transports パラメーター
transports
パラメーターを設定して、STF デプロイメントのメッセージバスを有効にします。現在サポートされているトランスポートは AMQ Interconnect のみです。デフォルトでは、qdr
トランスポートが有効です。