監視ツール設定ガイド
OpenStack のロギングおよび監視ツールについてのガイド
概要
第1章 はじめに リンクのコピーリンクがクリップボードにコピーされました!
監視ツールは、オペレーターが OpenStack 環境を維持管理するのに役立つオプションのツールセットです。これらのツールは、以下の機能を果たします。
- 集中ロギング: OpenStack 環境の全コンポーネントからのログを 1 つの場所に収集することができます。すべてのノードとサービスにわたって問題を特定することができます。また、オプションで Red Hat にログデータをエクスポートして、問題を診断するサポートを受けることもできます。
- 可用性監視: OpenStack 環境内の全コンポーネントを監視して、いずれかのコンポーネントが現在停止中または機能していない状態かどうかを判断します。また、問題が特定された時にシステムが警告を送信するように設定することも可能です。
第2章 アーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
監視ツールは、クライアントが Red Hat OpenStack Platform オーバークラウドノードにデプロイされる、クライアント/サーバーモデルを使用します。Fluentd サービスがクライアント側の集中ロギング (CL) を提供し、Sensu クライアントサービスがクライアント側の可用性監視 (AM) を提供します。
2.1. 集中ロギング リンクのコピーリンクがクリップボードにコピーされました!
集中ロギングにより、OpenStack 環境全体にわたるログを一箇所で確認することができます。これらのログは、syslog や audit ログファイルなどのオペレーティングシステム、RabbitMQ や MariaDB などのインフラストラクチャーコンポーネント、Identity や Compute などの OpenStack サービスから収集されます。
集中ロギングのツールチェーンは、以下のような複数のコンポーネントで構成されます。
- ログ収集エージェント (Fluentd)
- ログリレー/トランスフォーマー (Fluentd)
- データストア (Elasticsearch)
- API/プレゼンテーション層 (Kibana)
director は、集中ロギング向けのサーバー側のコンポーネントはデプロイしません。Red Hat では、ログアグリゲーターとして実行するプラグインを使用する Elasticsearch データベース、Kibana、Fluentd などのサーバー側のコンポーネントはサポートしていません。
以下の図は、集中ロギングのコンポーネントとそれらの対話を示しています。
青で示した項目は Red Hat のサポート対象コンポーネントです。
図2.1 集中ロギングのハイレベルアーキテクチャー
図2.2 Red Hat OpenStack Platform の単一ノードデプロイメント
図2.3 Red Hat OpenStack Platform の HA デプロイメント
2.2. 可用性監視 リンクのコピーリンクがクリップボードにコピーされました!
可用性監視により、OpenStack 環境全体にわたる全コンポーネントのハイレベルな機能性を一元的に監視することができます。
可用性監視のツールチェーンは、以下を含む複数のコンポーネントで構成されます。
- 監視エージェント (Sensu クライアント)
- 監視リレー/プロキシー (RabbitMQ)
- 監視コントローラー/サーバー (Sensu サーバー)
- API/プレゼンテーション層 (Uchiwa)
director はサーバー側の可用性監視のコンポーネントはデプロイしません。Red Hat では、Uchiwa、Sensu Server、Sensu API + RabbitMQ、監視ノードを実行する Redis インスタンスなどのサーバー側のコンポーネントはサポートしていません。
以下の図は、可用性監視のコンポーネントとそれらの対話を示しています。
青で示した項目は Red Hat のサポート対象コンポーネントです。
図2.4 可用性監視のハイレベルアーキテクチャー
図2.5 Red Hat OpenStack Platform の単一ノードデプロイメント
図2.6 Red Hat OpenStack Platform の HA デプロイメント
第3章 クライアント側のツールのインストール リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドをデプロイする前には、各クライアントに適用する構成の設定を決定する必要があります。director の Heat テンプレートコレクションからサンプルの環境ファイルをコピーし、お使いの環境に合わせて変更します。
3.1. 集中ロギングクライアントパラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
Fluentd の構成設定には、/usr/share/openstack-tripleo-heat-templates/environments/logging-environment.yaml をコピーし、ご使用の環境に応じてファイルを変更します。以下に例を示します。
簡易設定
SSL の設定例
-
LoggingServers: Fluentd ログメッセージを受信する宛先システム -
LoggingUsesSSL: ログメッセージの転送時にsecure_forwardが使用されるかどうかを判断する設定。 -
LoggingSharedKey:secure_forwardが使用する共有シークレット -
LoggingSSLCertificate: PEM エンコードされた SSL CA 証明書の内容
3.2. 可用性監視クライアントパラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
Sensu クライアントの構成設定には、/usr/share/openstack-tripleo-heat-templates/environments/monitoring-environment.yaml をコピーし、ご使用の環境に応じてファイルを変更します。以下に例を示します。
-
MonitoringRabbit: これらのパラメーターは、監視サーバーで実行する RabbitMQ インスタンスに Sensu クライアントサービスを接続します。 -
MonitoringRabbitUseSSL: RabbitMQ クライアント向けに SSL を有効化します。以下のパラメーターで秘密鍵または証明書チェーンが指定されていない場合には、SSL トランスポートを使用します。 -
MonitoringRabbitSSLPrivateKey: 秘密鍵ファイルへのパスを定義します。または、そのファイルのコンテンツを含めることができます。 -
MonitoringRabbitSSLCertChain: 使用するプライベート SSL 証明書チェーンを定義します。 -
SensuClientCustomConfig: Sensu クライアントの追加設定を指定します。ユーザー名/パスワード、auth_url、テナント、リージョンを含む OpenStack の認証情報を定義します。
3.3. オーバークラウドノードへの操作ツールのインストール リンクのコピーリンクがクリップボードにコピーされました!
openstack overcloud deploy コマンドで変更した YAML ファイルを指定して、Sensu クライアントと Fluentd ツールを全オーバークラウドノードにインストールします。以下に例を示します。
openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e network-environment.yaml -e ~/templates/monitoring-environment.yaml -e ~/templates/logging-environment.yaml --control-scale 3 --compute-scale 1 --ntp-server 192.168.122.10
$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e network-environment.yaml -e ~/templates/monitoring-environment.yaml -e ~/templates/logging-environment.yaml --control-scale 3 --compute-scale 1 --ntp-server 192.168.122.10
3.4. フィルターと変換ロギングデータ リンクのコピーリンクがクリップボードにコピーされました!
環境ファイルで LoggingDefaultFilters パラメーターを設定することにより、Fluentd に送信されるイベントをフィルタリングして変換することができます。たとえば、record_transformer の種別を指定すると、受信イベントを変更することができます。
その結果、Kibana が受信するデータは、設定に応じて変換されます。
第4章 OpenStack Platform の監視 リンクのコピーリンクがクリップボードにコピーされました!
Sensu のスタックインフラストラクチャーについては、https://docs.sensu.io/sensu-core/1.7/overview/architecture/ の Sensu のドキュメントを参照してください。
Red Hat は、osops-tools-monitoring-oschecks パッケージで、check スクリプトのセットを提供しています。check スクリプトの大半は、OpenStack コンポーネントへの API 接続のみをチェックします。ただし、特定のスクリプトは、OpenStack Compute (nova)、OpenStack Block Storage (cinder)、OpenStack Image (glance)、OpenStack Networking (neutron) を対象とする追加の OpenStack リソースのテストも実行します。たとえば、OpenStack Identity (keystone) API check は、keystone の実行時に以下の結果を返します。
OK: Got a token, Keystone API is working.
OK: Got a token, Keystone API is working.
第5章 Sensu クライアントインストールの検証 リンクのコピーリンクがクリップボードにコピーされました!
各オーバークラウドノードで
sensu-clientのステータスを確認します。podman ps | grep sensu-client
# podman ps | grep sensu-clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
エラーログ (
/var/log/containers/sensu/sensu-client.log) で問題があるかどうかを確認します。 -
各オーバークラウドノードに、監視サーバーの IP アドレスを設定する
/var/lib/config-data/puppet-generated/sensu/etc/sensu/conf.d/rabbitmq.jsonファイルがあることを確認します。
第6章 ノードの状態の確認 リンクのコピーリンクがクリップボードにコピーされました!
Uchiwa ダッシュボードがデプロイされている場合には、そのダッシュボードを Sensu サーバーと共に使用して、ノードの状態を確認することができます。
Uchiwa ダッシュボードにログインして、
Data Centerタブをクリックし、データセンターが稼働中であることを確認します。http://<SERVER_IP_ADDRESS>/uchiwa
http://<SERVER_IP_ADDRESS>/uchiwaCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
全オーバークラウドノードが
Connectedの状態であることを確認します。 - オーバークラウドノードの 1 台を適時に再起動し、そのノードのステータスを Uchiwa ダッシュボードで確認します。再起動の完了後には、ノードが Sensu サーバーに正常に再接続されて check の実行を開始するかどうかを確認します。
第7章 OpenStack サービスの状態の確認 リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、openstack-ceilometer-central サービスの監視をテストします。
openstack-ceilometer-centralサービスが実行中であることを確認します。docker ps -a | grep ceilometer
docker ps -a | grep ceilometerCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Uchiwa ダッシュボードに接続して、正常な
ceilometercheck があり、ceilometerJSON ファイルで定義されているとおりに実行されていることを確認します。