第4章 Service Telemetry Framework 向けの Red Hat OpenStack Platform ディレクターの設定
メトリクス、イベント、またはその両方のコレクション、および Service Telemetry Framework (STF) ストレージドメインに送信するには、Red Hat OpenStack Platform (RHOSP) オーバークラウドを設定して、データ収集とトランスポートを有効にする必要があります。
STF は単一クラウドと複数のクラウドの両方をサポートすることができます。RHOSP と STF のデフォルトの設定は、単一のクラウドのインストールのために設定されています。
- デフォルトの設定での単一の RHOSP オーバークラウドの展開については、「ディレクターを使用した Service Telemetry Framework 用の Red Hat OpenStack Platform オーバークラウドのデプロイ」を参照してください。
- RHOSP のインストールと設定 STF を複数のクラウドで計画するには、「複数のクラウドの設定」を参照してください。
RHOSP のオーバークラウド導入の一環として、お客様の環境で追加の機能を設定する必要がある場合があります。
- データコレクターサービスを無効にするには、次を参照してください。「Service Telemetry Framework で使用される Red Hat OpenStack Platform サービスの無効化」
4.1. ディレクターを使用した Service Telemetry Framework 用の Red Hat OpenStack Platform オーバークラウドのデプロイ
ディレクターを使用する Red Hat OpenStack Platform (RHOSP) オーバークラウドのデプロイメントの一環として、データコレクターおよびデータトランスポートを Service Telemetry Framework (STF) に設定する必要があります。
関連情報
- Director を使用した OpenStack クラウドのデプロイの詳細は、Director のインストールと使用法 を参照してください。
- AMQ Interconnect でデータを収集するには、the amqp1 plug-in を参照してください。
4.1.1. AMQ Interconnect ルートアドレスの取得
Service Telemetry Framework (STF) 向けに Red Hat OpenStack Platform (RHOSP) オーバークラウドを設定する場合に、STF 接続ファイルに AMQ Interconnect ルートアドレスを指定する必要があります。
手順
- STF がホストされている Red Hat OpenShift Container Platform 環境にログインします。
service-telemetryプロジェクトに変更します。$ oc project service-telemetry
AMQ インターコネクトのルートアドレスを取得します。
$ oc get routes -ogo-template='{{ range .items }}{{printf "%s\n" .spec.host }}{{ end }}' | grep "\-5671" default-interconnect-5671-service-telemetry.apps.infra.watch
4.1.2. STF の基本設定の作成
Service Telemetry Framework (STF) と互換性があるデータ収集とトランスポートを提供するようにベースパラメーターを設定するには、デフォルトのデータ収集値を定義するファイルを作成する必要があります。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 /home/stackディレクトリーにenable-stf.yamlという名前の設定ファイルを作成します。重要EventPipelinePublishersおよびPipelinePublishersを空のリストに設定すると、Gnocchi や Panko などの RHOSP Telemetry コンポーネントにイベントやメトリクスデータを渡すことはありません。追加のパイプラインにデータを送信する必要がある場合、ExtraConfigで指定する30秒の Ceilometer ポーリング間隔により、RHOSP テレメトリーコンポーネントが過負荷になる可能性があります。間隔を300などの大きな値に増やす必要があります。その場合、STF でのテレメトリー解像度が低くなります。
enable-stf.yaml
parameter_defaults:
# only send to STF, not other publishers
EventPipelinePublishers: []
PipelinePublishers: []
# manage the polling and pipeline configuration files for Ceilometer agents
ManagePolling: true
ManagePipeline: true
# enable Ceilometer metrics and events
CeilometerQdrPublishMetrics: true
CeilometerQdrPublishEvents: true
# enable collection of API status
CollectdEnableSensubility: true
CollectdSensubilityTransport: amqp1
# enable collection of containerized service metrics
CollectdEnableLibpodstats: true
# set collectd overrides for higher telemetry resolution and extra plugins
# to load
CollectdConnectionType: amqp1
CollectdAmqpInterval: 5
CollectdDefaultPollingInterval: 5
CollectdExtraPlugins:
- vmem
# set standard prefixes for where metrics and events are published to QDR
MetricsQdrAddresses:
- prefix: 'collectd'
distribution: multicast
- prefix: 'anycast/ceilometer'
distribution: multicast
ExtraConfig:
ceilometer::agent::polling::polling_interval: 30
ceilometer::agent::polling::polling_meters:
- cpu
- disk.*
- ip.*
- image.*
- memory
- memory.*
- network.services.vpn.*
- network.services.firewall.*
- perf.*
- port
- port.*
- switch
- switch.*
- storage.*
- volume.*
# to avoid filling the memory buffers if disconnected from the message bus
# note: this may need an adjustment if there are many metrics to be sent.
collectd::plugin::amqp1::send_queue_limit: 5000
# receive extra information about virtual memory
collectd::plugin::vmem::verbose: true
# provide name and uuid in addition to hostname for better correlation
# to ceilometer data
collectd::plugin::virt::hostname_format: "name uuid hostname"
# provide the human-friendly name of the virtual instance
collectd::plugin::virt::plugin_instance_format: metadata
# set memcached collectd plugin to report its metrics by hostname
# rather than host IP, ensuring metrics in the dashboard remain uniform
collectd::plugin::memcached::instances:
local:
host: "%{hiera('fqdn_canonical')}"
port: 11211
4.1.3. オーバークラウドの STF 接続の設定
Service Telemetry Framework (STF) 接続を設定するには、オーバークラウド用の AMQ Interconnect の接続設定など、ファイルを STF デプロイメントに対して作成する必要があります。イベントの収集と STF への保存を有効にし、オーバークラウドを展開します。デフォルト設定は、デフォルトのメッセージバストピックを使用して単一のクラウドインスタンスに対して指定されます。複数のクラウドのデプロイメントの設定については、「複数のクラウドの設定」 を参照してください。
前提条件
- AMQ インターコネクトのルートアドレスを取得します。詳細は、「AMQ Interconnect ルートアドレスの取得」 を参照してください。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 -
/home/stackディレクトリーにstf-connectors.yamlという設定ファイルを作成します。 stf-connectors.yamlファイルで、オーバークラウド上の AMQ Interconnect を STF デプロイメントに接続するようにMetricsQdrConnectorsアドレスを設定します。このファイルの Sensubility、Ceilometer、および collectd のトピックアドレスを、STF のデフォルトに一致するように設定します。トピックおよびクラウド設定のカスタマイズに関する詳細は、「複数のクラウドの設定」 を参照してください。stf-connectors.yaml
resource_registry: OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/collectd-container-puppet.yaml parameter_defaults: MetricsQdrConnectors: - host: default-interconnect-5671-service-telemetry.apps.infra.watch port: 443 role: edge verifyHostname: false sslProfile: sslProfile MetricsQdrSSLProfiles: - name: sslProfile CeilometerQdrEventsConfig: driver: amqp topic: cloud1-event CeilometerQdrMetricsConfig: driver: amqp topic: cloud1-metering CollectdAmqpInstances: cloud1-notify: notify: true format: JSON presettle: false cloud1-telemetry: format: JSON presettle: false CollectdSensubilityResultsChannel: sensubility/cloud1-telemetry-
複数のクラウドデプロイメント用に
collectd-write-qdr.yaml環境ファイルを含めないため、resource_registry設定は collectd サービスを直接ロードします。 -
hostパラメーターを、「AMQ Interconnect ルートアドレスの取得」 で取得した値に置き換えます。 -
MetricsQdrConnectorsのhostサブパラメーターを、「AMQ Interconnect ルートアドレスの取得」 で取得した値に置き換えます。 -
CeilometerQdrEventsConfigのトピック値を設定して、Ceilometer イベントのトピックを定義します。値は、cloud1-eventなどのクラウドの一意のトピック識別子です。 -
CeilometerQdrMetricsConfig.topicのtopic値を設定して、Ceilometer メトリックのトピックを定義します。値は、cloud1-meteringなどのクラウドの一意のトピック識別子です。 -
CollectdAmqpInstancesサブパラメーターを設定して、collectd イベントのトピックを定義します。セクション名は、cloud1-notifyなどのクラウドの一意のトピック識別子です。 -
CollectdAmqpInstancesサブパラメーターを設定して、collectd メトリックのトピックを定義します。セクション名は、cloud1-telemetryなどのクラウドの一意のトピック識別子です。 -
CollectdSensubilityResultsChannelを設定して、collectd-sensubility イベントのトピックを定義します。値は、sensubility/cloud1-telemetryなどのクラウドの一意のトピック識別子です。
-
複数のクラウドデプロイメント用に
collectd および Ceilometer のトピックを定義すると、指定した値は、Smart Gateway クライアントがメッセージをリッスンするために使用する完全なトピックに置き換えられます。
Ceilometer トピック値はトピックアドレス anycast/ceilometer/<TOPIC>.sample に置き換えられ、collectd トピック値はトピックアドレス collectd/<TOPIC> に置き換えられます。sensubility の値は完全なトピックパスであり、トピック値からトピックアドレスへの転置はありません。
完全なトピックアドレスを参照する ServiceTelemetry オブジェクトのクラウド設定の例については、「clouds パラメーター」 を参照してください。
4.1.4. オーバークラウドのデプロイ
必要な環境ファイルでオーバークラウドをデプロイまたは更新すると、データが収集されて、Service Telemetry Framework (STF) に送信されます。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 stackrcアンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
データコレクションと AMQ Interconnect 環境ファイルを他の環境ファイルとともにスタックに追加し、オーバークラウドをデプロイします。
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/metrics/ceilometer-write-qdr.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/metrics/qdr-edge-only.yaml \ -e /home/stack/enable-stf.yaml \ -e /home/stack/stf-connectors.yaml
-
ceilometer-write-qdr.yamlファイルを含めて、Ceilometer テレメトリーとイベントが STF に送信されるようにします。 -
qdr-edge-only.yamlファイルを含めて、メッセージバスが有効になり、STF メッセージバスルーターに接続されていることを確認します。 -
デフォルトが正しく設定されていることを確認するには、
enable-stf.yaml環境ファイルを組み込みます。 -
STF への接続を定義するための
stf-connectors.yaml環境ファイルを含めます。
-
4.1.5. クライアント側のインストールの検証
Service Telemetry Framework (STF) ストレージドメインからデータ収集を検証するには、配信されたデータに対してデータソースをクエリーします。Red Hat OpenStack Platform (RHOSP) デプロイメントの個別ノードを検証するには、SSH を使用してコンソールに接続します。
一部のテレメトリーデータは、RHOSP にアクティブなワークロードがある場合にのみ利用可能です。
手順
- オーバークラウドノード (例: controller-0) にログインします。
metrics_qdrとコレクションエージェントコンテナーがノード上で実行されていることを確認します。$ sudo podman container inspect --format '{{.State.Status}}' metrics_qdr collectd ceilometer_agent_notification ceilometer_agent_central running running running running注記コンピュートノードで次のコマンドを使用します。
$ sudo podman container inspect --format '{{.State.Status}}' metrics_qdr collectd ceilometer_agent_computeAMQ Interconnect が実行されている内部ネットワークアドレスを返します (ポート
5666でリッスンする172.17.1.44など)。$ sudo podman exec -it metrics_qdr cat /etc/qpid-dispatch/qdrouterd.conf listener { host: 172.17.1.44 port: 5666 authenticatePeer: no saslMechanisms: ANONYMOUS }ローカルの AMQ インターコネクトへの接続のリストを返します。
$ sudo podman exec -it metrics_qdr qdstat --bus=172.17.1.44:5666 --connections Connections id host container role dir security authentication tenant ============================================================================================================================================================================================================================================================================================ 1 default-interconnect-5671-service-telemetry.apps.infra.watch:443 default-interconnect-7458fd4d69-bgzfb edge out TLSv1.2(DHE-RSA-AES256-GCM-SHA384) anonymous-user 12 172.17.1.44:60290 openstack.org/om/container/controller-0/ceilometer-agent-notification/25/5c02cee550f143ec9ea030db5cccba14 normal in no-security no-auth 16 172.17.1.44:36408 metrics normal in no-security anonymous-user 899 172.17.1.44:39500 10a2e99d-1b8a-4329-b48c-4335e5f75c84 normal in no-security no-auth
接続は 4 つあります。
- STF へのアウトバウンド接続
- ceilometer からのインバウンド接続
- collectd からのインバウンド接続
qdstatクライアントからの受信接続STF の送信接続は
MetricsQdrConnectorsホストパラメーターに提供され、STF ストレージドメインのルートとなります。他のホストは、この AMQ インターコネクトへのクライアント接続の内部ネットワークアドレスです。
メッセージが配信されていることを確認するには、リンクを一覧表示して メッセージ配信の
deliv列に_edgeアドレスを表示します。$ sudo podman exec -it metrics_qdr qdstat --bus=172.17.1.44:5666 --links Router Links type dir conn id id peer class addr phs cap pri undel unsett deliv presett psdrop acc rej rel mod delay rate =========================================================================================================================================================== endpoint out 1 5 local _edge 250 0 0 0 2979926 0 0 0 0 2979926 0 0 0 endpoint in 1 6 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint in 1 7 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint out 1 8 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint in 1 9 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint out 1 10 250 0 0 0 911 911 0 0 0 0 0 911 0 endpoint in 1 11 250 0 0 0 0 911 0 0 0 0 0 0 0 endpoint out 12 32 local temp.lSY6Mcicol4J2Kp 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint in 16 41 250 0 0 0 2979924 0 0 0 0 2979924 0 0 0 endpoint in 912 1834 mobile $management 0 250 0 0 0 1 0 0 1 0 0 0 0 0 endpoint out 912 1835 local temp.9Ok2resI9tmt+CT 250 0 0 0 0 0 0 0 0 0 0 0 0
RHOSP ノードから STF へのアドレスを一覧表示するには、Red Hat OpenShift Container Platform に接続して AMQ Interconnect Pod 名を取得し、接続を一覧表示します。利用可能な AMQ Interconnect Pod を一覧表示します。
$ oc get pods -l application=default-interconnect NAME READY STATUS RESTARTS AGE default-interconnect-7458fd4d69-bgzfb 1/1 Running 0 6d21h
Pod に接続し、既知の接続を一覧表示します。この例では、RHOSP ノードから接続
id22、23、および 24 の 3 つのedge接続があります。$ oc exec -it default-interconnect-7458fd4d69-bgzfb -- qdstat --connections 2020-04-21 18:25:47.243852 UTC default-interconnect-7458fd4d69-bgzfb Connections id host container role dir security authentication tenant last dlv uptime =============================================================================================================================================================================================== 5 10.129.0.110:48498 bridge-3f5 edge in no-security anonymous-user 000:00:00:02 000:17:36:29 6 10.129.0.111:43254 rcv[default-cloud1-ceil-meter-smartgateway-58f885c76d-xmxwn] edge in no-security anonymous-user 000:00:00:02 000:17:36:20 7 10.130.0.109:50518 rcv[default-cloud1-coll-event-smartgateway-58fbbd4485-rl9bd] normal in no-security anonymous-user - 000:17:36:11 8 10.130.0.110:33802 rcv[default-cloud1-ceil-event-smartgateway-6cfb65478c-g5q82] normal in no-security anonymous-user 000:01:26:18 000:17:36:05 22 10.128.0.1:51948 Router.ceph-0.redhat.local edge in TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) anonymous-user 000:00:00:03 000:22:08:43 23 10.128.0.1:51950 Router.compute-0.redhat.local edge in TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) anonymous-user 000:00:00:03 000:22:08:43 24 10.128.0.1:52082 Router.controller-0.redhat.local edge in TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) anonymous-user 000:00:00:00 000:22:08:34 27 127.0.0.1:42202 c2f541c1-4c97-4b37-a189-a396c08fb079 normal in no-security no-auth 000:00:00:00 000:00:00:00
ネットワークによって配信されるメッセージ数を表示するには、各アドレスを
oc execコマンドで使用します。$ oc exec -it default-interconnect-7458fd4d69-bgzfb -- qdstat --address 2020-04-21 18:20:10.293258 UTC default-interconnect-7458fd4d69-bgzfb Router Addresses class addr phs distrib pri local remote in out thru fallback ========================================================================================================================== mobile anycast/ceilometer/event.sample 0 balanced - 1 0 970 970 0 0 mobile anycast/ceilometer/metering.sample 0 balanced - 1 0 2,344,833 2,344,833 0 0 mobile collectd/notify 0 multicast - 1 0 70 70 0 0 mobile collectd/telemetry 0 multicast - 1 0 216,128,890 216,128,890 0 0