4.5.2. Smart Gateway の導入
各クラウドの各データ収集タイプに Smart Gateway をデプロイする必要があります。1 つは collectd メトリクス用、もう 1 つは collectd イベント用、もう 1 つは Ceilometer イベントに 1 つです。各 Smart Gateway は、対応するクラウドに定義された AMQP アドレスをリッスンするように設定します。
STF を初めてデプロイする際は、1 つのクラウドに対する初期の Smart Gateway を定義する Smart Gateway マニフェストが作成されます。複数のクラウドサポートに Smart Gateway をデプロイする場合には、メトリクスおよび各クラウドのイベントデータを処理するデータ収集タイプごとに、複数の Smart Gateway をデプロイします。初期 Smart Gateway は、追加の Smart Gateway を作成するためのテンプレートとして機能し、データストアへの接続に必要な情報も作成します。
手順
- Red Hat OpenShift Container Platform にログインします。
service-telemetry
namespace に切り替えます。oc project service-telemetry
追加の Smart Gateways のテンプレートとして、最初にデプロイされた Smart Gateways を使用します。
oc get smartgateways
コマンドを使用して、現在デプロイされている Smart Gateway を一覧表示します。たとえば、metricsEnabled: true
およびeventsEnabled: true
で STF をデプロイした場合、以下の Smart Gateways が出力に表示されます。$ oc get smartgateways NAME AGE stf-default-ceilometer-notification 14d stf-default-collectd-notification 14d stf-default-collectd-telemetry 14d
各 Smart Gateway のマニフェストを取得して、コンテンツを一時ファイルに保存します。このファイルは後で変更し、これを使用して新しい Smart Gateways を作成できます。
truncate --size 0 /tmp/cloud1-smartgateways.yaml && \ for sg in $(oc get smartgateways -oname) do echo "---" >> /tmp/cloud1-smartgateways.yaml oc get ${sg} -oyaml --export >> /tmp/cloud1-smartgateways.yaml done
-
/tmp/cloud1-smartgateways.yaml
ファイルの Smart Gateway マニフェストを変更します。metadata.name
およびspec.amqpUrl
フィールドを調整し、スキーマからクラウド識別子を追加します。詳細は、「「AMQP アドレスプレフィックスの計画」」を参照してください。Smart Gateway マニフェストのサンプルを表示するには、<<example-manifests_advanced-features[] を参照してください。 新しい Smart Gateways をデプロイします。
oc apply -f /tmp/cloud1-smartgateways.yaml
各 Smart Gateway が起動していることを確認します。この作業は、Smart Gateway の台数によっては数分かかることがあります。
oc get po -l app=smart-gateway
4.5.2.1. マニフェストの例
以下の例の内容は、デプロイメントのファイルの内容とは異なる場合があります。デプロイメントのマニフェストをコピーします。
各 Smart Gateway の name
および amqpUrl
パラメーターが、クラウドに使用する名前と一致していることを確認します。詳細は、「「AMQP アドレスプレフィックスの計画」」を参照してください。
出力には、OCP に読み込むマニフェストから削除できる追加の メタデータ
パラメーターが含まれる場合があります。
apiVersion: smartgateway.infra.watch/v2alpha1 kind: SmartGateway metadata: name: stf-default-ceilometer-notification-cloud1 1 spec: amqpDataSource: ceilometer amqpUrl: stf-default-interconnect.service-telemetry.svc.cluster.local:5672/anycast/ceilometer/cloud1-event.sample 2 debug: false elasticPass: fkzfhghw...... elasticUrl: https://elasticsearch-es-http.service-telemetry.svc.cluster.local:9200 elasticUser: elastic resetIndex: false serviceType: events size: 1 tlsCaCert: /config/certs/ca.crt tlsClientCert: /config/certs/tls.crt tlsClientKey: /config/certs/tls.key tlsServerName: elasticsearch-es-http.service-telemetry.svc.cluster.local useBasicAuth: true useTls: true --- apiVersion: smartgateway.infra.watch/v2alpha1 kind: SmartGateway metadata: name: stf-default-collectd-notification-cloud1 3 spec: amqpDataSource: collectd amqpUrl: stf-default-interconnect.service-telemetry.svc.cluster.local:5672/collectd/cloud1-notify 4 debug: false elasticPass: fkzfhghw...... elasticUrl: https://elasticsearch-es-http.service-telemetry.svc.cluster.local:9200 elasticUser: elastic resetIndex: false serviceType: events size: 1 tlsCaCert: /config/certs/ca.crt tlsClientCert: /config/certs/tls.crt tlsClientKey: /config/certs/tls.key tlsServerName: elasticsearch-es-http.service-telemetry.svc.cluster.local useBasicAuth: true useTls: true --- apiVersion: smartgateway.infra.watch/v2alpha1 kind: SmartGateway metadata: name: stf-default-collectd-telemetry-cloud1 5 spec: amqpUrl: stf-default-interconnect.service-telemetry.svc.cluster.local:5672/collectd/cloud1-telemetry 6 debug: false prefetch: 15000 serviceType: metrics size: 1 useTimestamp: true