OpenStack 高性能監視ツール: Monasca

OpenStack 高性能監視ツール: Monasca

[[378345]]

導入

Monasca は、IT チームがログ データを分析し、アラートと通知を設定するのに役立つ、マルチテナントの監視サービス ツールです。

OpenStack 環境における監視要件は大規模かつ多様で、非常に複雑です。 Monasca のプロジェクト使命は、マルチテナント、高度にスケーラブル、高性能、フォールト トレラントな Monitoring-as-a-Service ソリューションを提供することです。

Monasca は、オペレーターとテナントの両方がインフラストラクチャとアプリケーションの運用上の洞察を得るために使用できる、高度な監視のためのスケーラブルなプラットフォームを提供します。

Monasca は、高速ログ処理とクエリに REST API を使用します。フローアラームエンジン、通知エンジン、集約エンジンを統合します。

Monasca で実装できるユースケースは非常に多様です。 Monasca は、複数のサービスが複数のリポジトリに分散されるマイクロサービス アーキテクチャに従います。各モジュールは、全体的な監視ソリューションに個別のサービスを提供するように設計されており、オペレーター/顧客のニーズに基づいて展開できます。

  • Rest API インターフェースを使用して、パフォーマンスと履歴データを保存および照会します。 Nagios の NSCA など、特殊なプロトコルと送信方法を使用する他の監視ツールとは異なり、Monasca は HTTP のみを使用します。
  • マルチテナント認証、インジケーターの送信、および認証では、Keystone コンポーネントが使用されます。ストレージ関連テナントID
  • メトリックは、ディメンションと呼ばれる (キー、値) キーを使用して定義されます。
  • システム指標のリアルタイムしきい値とアラート
  • 複合アラーム設定では、サブアラーム式と論理演算子で構成される単純な構文を使用します。
  • 監視エージェントは、組み込みのシステムおよびサービスチェック結果、およびNagiosチェックとStatsdをサポートします。
  • オープンソーステクノロジーを基盤としたオープンソース監視ソリューション

建築

次の図は、Monasca のメトリクス パイプラインと関連するコンポーネントの相互作用の概要を示しています。

コアコンポーネント

  • monasca-agent: Python で記述された監視エージェントで、複数のサブコンポーネントが含まれ、さまざまな CPU 使用量、使用可能なメモリ、nagios プラグイン、statsd、および mysql、rabbitMQ などの多くのサービスをサポートします。
  • monasca-api: 次の概念と領域を対象とした監視用の RESTful API:
    • 指標: 多数のリアルタイム指標の保存とクエリ
    • 統計: 指標の統計を照会する
    • アラーム定義: アラーム定義の追加、削除、確認、変更
    • アラーム: アラーム履歴の照会と削除
    • 通知方法: 通知方法を作成および削除し、アラームのステータスが変更されたときに電子メールでユーザーに直接通知します。monasca API は Python または JAVA で実装できます。
  • manasca-persister: メトリックまたはアラームを送信し (RPC 送信の概念的なコンシューマ)、対応するデータベースにメトリックとアラームを保存するメッセージ キューのコンシューマ
  • monasca-transform: インジケーターの名前と値を変換し、メッセージキューに渡す新しいインジケーターを生成する変換および集約エンジン
  • 異常予測エンジン:現在プロトタイプ段階
  • monasca-thresh: インジケーターを計算し、しきい値を超えたときにメッセージ キューにアラートを送信します。これは、Apache Stormプロジェクト(オープンソースのリアルタイム分散コンピューティングシステム)に基づいています。
  • monasca-notification: メッセージ キューからアラートを受信し、アラート メールの送信などの通知を送信します。通知エンジンは Python に基づいています。
  • monasca-analytics: メッセージ キューからアラートを受信し、異常検出とアラート相関を実行する分析エンジン
  • メッセージキュー: 以前は RabbitMQ をサポートしていましたが、パフォーマンス、スケール、永続性、高可用性の制限により、Kafka に切り替えました。
  • メトリクスとアラームデータベース: Vertica と infuxDB をサポート、Cassandra のサポートは進行中
  • 構成データベース: 構成情報データベース。現在は MySQL を使用していますが、PostgreSQL のサポートは進行中です。
  • python-monascaclient: monasca API を操作するために Python で実装されたコマンドライン クライアント
  • 監視UI: Horizo​​nダッシュボードの視覚化
  • Ceilometer パブリッシャー: Ceilometer のマルチパブリッシャー プラグイン

API に直接リクエストを送信するだけでなく、次のツールを使用して Monasca と対話することもできます。

  • Monasca クライアント: CLI および Python クライアント
  • Horizo​​nプラグイン: このプラグインはHorizo​​nに監視パネルを追加します
  • Grafana アプリ: アラート定義、アラート、通知を表示および構成するための Grafana プラグイン

ライブラリ:

  • monasca-common: Monasca コンポーネントで使用される共通コード
  • monasca-statsd: インストルメント化されたアプリケーションからメトリックを送信するための StatsD 互換ライブラリ

Grafana 統合:

  • monasca-grafana-datasource: Grafana 用のマルチテナント Monasca データ ソース
  • grafana: Keystone認証を追加したGrafana 4.1.2のフォークバージョン

サードパーティのテクノロジーとツール

Monasca はさまざまなサードパーティのテクノロジーを使用します。

  • 内部処理とミドルウェア
    • Apache Kafka (http://kafka.apache.org): Zookeeper 調整に基づく分散型、パーティション化、マルチレプリカ、マルチサブスクライバーの分散ログ システムです (MQ システムとしても使用できます)。一般的に、Web/nginx ログ、アクセス ログ、メッセージ サービスなどに使用できます。
    • Apache Storm (http://storm.incubator.apache.org/): Apache Storm は、無料のオープン ソース分散リアルタイム コンピューティング システムです。 Storm は無限のデータ ストリームを簡単かつ確実に処理してリアルタイム処理を可能にし、Hadoop はバッチ処理を実行できます。
    • ZooKeeper (http://zookeeper.apache.org/): Kafka と Storm で使用
    • Apache Spark: Monasca Transform の集計エンジンとして使用
  • データベースを構成します。
    • MySQL: 構成データベースとして MySQL をサポート
    • PostgreSQL: Hibernate と SQLAlchemy を介した Config データベースの POSTgres サポート
  • Vagrant(http://www.vagrantup.com/): Vagrant は、業界標準のテクノロジに基づいて構築され、一貫したワークフローによって制御される、簡単に構成可能で、繰り返し使用でき、移植可能な作業環境を提供し、生産性と柔軟性を最大限に高めます。
  • Dropwizard: Dropwizard は、Java エコシステムの安定した成熟したライブラリをシンプルで軽量なパッケージにまとめたもので、ユーザーが作業に集中できるようにします。 Dropwizard は、複雑な構成、アプリケーション メトリック、ログ記録、運用ツールなどをすぐに使用できるサポートを提供するため、ユーザーとチームは最短時間で高品質の Web サービスをリリースできます。
  • 時系列データベース:
    • InfluxDB(http://influxdb.com/): 外部依存関係のないオープンソースの分散時系列データベース。メトリクスデータベースはInfluxDBをサポートします
    • Vertica (http://www.vertica.com): 高いスケーラビリティを備えた商用のエンタープライズ クラスの SQL 分析データベース。組み込みの自動高可用性機能を提供し、データベース内分析と大量データの圧縮および保存に優れています。最大 1 TB のデータを時間制限なしで保存できる Vertica の無料コミュニティ バージョンは、https://my.vertica.com/community/ でご利用いただけます。 Vertricaはもはや一般的には使用されていませんが、Metricsデータベースによってサポートされています。
    • Cassandra (https://cassandra.apache.org): MestricsデータベースはCassandraをサポートしています

インストール

手動インストール

monasca のすべてのコンポーネントは、OpenStack コントローラー ノードなどの 1 つのノードにインストールすることも、複数のノードにデプロイすることもできます。この記事では、関連付けられたフローティング IP を持つ OpenStack クラスターに作成された新しい VM に monasca-api をインストールします。 Monasca-agent がコントローラー ノードにインストールされました。エージェント ノードは、フローティング IP を介してメトリックを API ノードに公開します。これらは同じサブネット内にあります。

必要なパッケージとツールをインストールする

  1. apt-get install -y git
  2. apt-get install openjdk-7-jre-headless python-pip python-dev

mysql データベースをインストールします。openstack コントローラー ノードに monasca-api がインストールされている場合は、インストールをスキップして、openstack サービスに既にインストールされている msyql を使用できます。

  1. apt-get install -y mysql-server

monasca データベース スキーマを作成し、mon.sql をここからダウンロードします (https://raw.githubusercontent.com/stackforge/cookbook-monasca-schema/master/files/default/mysql/mon.sql)

  1. mysql -uroot -ppassword < mon_mysql.sql

Zookeeper をインストールします。Zookeeper をインストールして再起動します。私は localhost インターフェイスを使用しており、Zookeeper は 1 つしかないため、デフォルトの構成ファイルでは構成は必要ありません。

  1. apt-get install -y zookeeper zookeeperd zookeeper-bin
  2. サービス Zookeeper の再起動

Kafka をインストールして設定する

  1. http://apache.mirrors.tds.net/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgz を取得します。
  2. mv kafka_2.9.2-0.8.1.1.tgz /opt
  3. cd /opt
  4. tar zxf kafka_2.9.2-0.8.1.1.tgz
  5. kafka_2.9.2-0.8.1.1 を /opt/kafka にコピーします。
  6. kafka のコンフィギュレーション

Kafka システム ユーザーを作成します。 Kafka サービスはこのユーザーとして起動されます。

  1. ユーザー追加kafka -U -r

/etc/init/kafka.conf に kafka 起動スクリプトを作成し、次の内容を /etc/init/kafka.conf にコピーして保存します。

  1. 説明「カフカ」  
  2.  
  3. ランレベル [2345]開始
  4. ランレベル [!2345]停止
  5.   
  6. 復活
  7.  
  8. 制限なしファイル 32768 32768
  9.  
  10. # このボックスZookeeperが動作している場合は、時間を置いてください 正常に起動する
  11. 起動前スクリプト
  12. [ -e /etc/init.d/zookeeper ] の場合;それから 
  13. /etc/init.d/zookeeper を再起動
  14. フィ
  15. スクリプト終了
  16.  
  17. #事前起動タスクはrootとして実行する必要があるため、setuid/setgidではなくsudo使用されます。
  18. sudo -Hu kafka -g kafkaを実行します。KAFKA_HEAP_OPTS= "-Xmx1G -Xms1G" JMX_PORT=9997 /opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties

Kafka を構成するには、vim /etc/kafka/server.properties を実行し、以下が構成されていることを確認します。

  1. ホスト名=ローカルホスト
  2. 宣伝されたホスト名=ローカルホスト
  3. log.dirs=/var/kafka

Kafkaログディレクトリを作成する

  1. mkdir /var/kafka
  2. mkdir /var/log/kafka
  3. chown -R kafka。カフカ
  4. chown -R kafka。カフカログ

Kafkaサービスを開始する

  1. サービス kafka 開始

次のステップはKafkaトピックを作成することです

  1. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 64 --topic metrics  
  2. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic イベント 
  3. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic raw-events  
  4. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic 変換されたイベント 
  5. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic ストリーム定義 
  6. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic transform-definitions  
  7. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic アラーム状態遷移 
  8. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic アラーム通知 
  9. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic stream-notifications  
  10. /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic retry-notifications  

InfluxDB をインストールして設定する

  1. curl -sL https://repos.influxdata.com/influxdb.key | apt-キー 追加-
  2. echo "deb https://repos.influxdata.com/ubuntu 信頼できる安定版" > /etc/apt/sources.list.d/influxdb.list
  3. apt-getアップデート 
  4. apt-get インストール -y apt-transport-https
  5. apt-get install -y influxdb
  6.  
  7. サービス influxdb 開始

influxdb データベース、ユーザー、パスワード、保持ポリシーを作成し、パスワードを変更します。

  1. 流入
  2. 作成する データベースモニター
  3. 作成する ユーザーmonasca  パスワード  「チュン」  
  4. 保持ポリシーpersister_all月曜日作成、期間90日、レプリケーション1、デフォルト 
  5. 出口

Stormのインストールと設定

  1. http://apache.mirrors.tds.net/storm/apache-storm-0.9.6/apache-storm-0.9.6.tar.gz を取得します。
  2. /opt/storm にディレクトリを作成します。
  3. cp apache-storm-0.9.6.tar.gz /opt/storm/
  4. cd /opt/storm/
  5. tar xzf apache-storm-0.9.6.tar.gz
  6. ln -s /opt/storm/apache-storm-0.9.6 /opt/storm/現在の 
  7.  
  8. ユーザー追加ストーム -U -r
  9. mkdir /var/storm
  10. mkdir /var/log/storm
  11. chown -R 嵐。 /var/storm/
  12. chown -R 嵐。 /var/log/storm/

storm.yaml を修正します。vim current/storm/conf/storm.yaml

  1. ### ベース
  2. java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"  
  3. 嵐。ローカル.dir: "/var/storm"  
  4.  
  5. ### 動物園の飼育員。*
  6. storm.zookeeper.servers:
  7. - 「ローカルホスト」  
  8. storm.zookeeper.ポート: 2181
  9. storm.zookeeper.再試行間隔: 5000
  10. storm.zookeeper.再試行回数: 29
  11. storm.zookeeper.root: "/storm"  
  12. storm.zookeeper.セッションタイムアウト: 30000
  13.  
  14. ### supervisor.* 設定はノードスーパーバイザーです
  15. スーパーバイザー.スロット.ポート:
  16. - 6701
  17. - 6702
  18. - 6703
  19. - 6704
  20. スーパーバイザー.childopts: "-Xmx1024m"  
  21.  
  22. ### worker.* 設定はタスクワーカーです
  23. ワーカー.childopts: "-Xmx1280m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote"  
  24.  
  25. ### nimbus.* 設定はマスターです
  26. nimbus.host: "localhost"  
  27. nimbus.thrift.port: 6627
  28. mbus.childopts: "-Xmx1024m"  
  29.  
  30. ### ui.* 設定はマスターです
  31. ホスト: 127.0.0.1
  32. ポート: 8078
  33. ui.childopts: "-Xmx768m"  
  34.  
  35. ### drpc.* 設定
  36.  
  37. ### transactional.* 構成
  38. トランザクション.zookeeper.servers:
  39. - 「ローカルホスト」  
  40. トランザクション.zookeeper.ポート: 2181
  41. transactional.zookeeper.root: "/storm-transactional"  
  42.  
  43. ### topology.* 構成は特定の実行ストームです
  44. トポロジー.acker.executors: 1
  45. トポロジー.デバッグ: false  
  46.  
  47. ログビューアポート: 8077
  48. ログビューア.childopts: "-Xmx128m"  

ストームスーパーバイザの起動スクリプトを作成します。vim /etc/init/storm-supervisor.conf

  1. # Storm Supervisor起動スクリプト
  2.  
  3. 説明「Storm Supervisor デーモン」  
  4. ランレベル [2345]開始
  5.  
  6. コンソールログ
  7. 復活
  8.  
  9. キルタイムアウト 240
  10. リスポーン制限 25 5
  11.  
  12. 嵐の予感
  13. セトゥイドストーム
  14. chdir /opt/storm/現在の 
  15. exec /opt/storm/現在の/bin/storm スーパーバイザ

Storm Nimbus 起動スクリプトを作成します。 vim /etc/init/storm-nimbus.conf

  1. #ストーム・ニンバス起動スクリプト
  2.  
  3. 説明「Storm Nimbus デーモン」  
  4. ランレベル [2345]開始
  5.  
  6. コンソールログ
  7. 復活
  8.  
  9. キルタイムアウト 240
  10. リスポーン制限 25 5
  11.  
  12. 嵐の予感
  13. セトゥイドストーム
  14. chdir /opt/storm/現在の 
  15. exec /opt/storm/現在の/bin/storm nimbus

スーパーバイザーとニンバスを起動する

  1. サービス ストーム スーパーバイザの開始
  2. サービス ストームニンバス 開始

monasca-api pythonパッケージをインストールする

一部の Monasca コンポーネントは Python コードと Java コードの両方を提供しますが、私は主にデプロイメントに Python コードを選択します。

  1. pip インストール monasca-common
  2. pip インストール gunicorn
  3. pip install greenlet #両方必要
  4. pip install eventlet #イベントレットワーカーの場合
  5. pip install gevent # gevent ワーカー
  6. pip で monasca-api をインストールします
  7. pip で influxdb をインストールします

vim /etc/monasca/api-config.iniで、ホストを自分のIPアドレスに変更します。

  1. [デフォルト]
  2. 名前= monasca_api
  3.    
  4. [パイプライン:メイン]
  5. #メトリック メッセージを検証できるように、パイプラインバリデーターを追加します
  6. パイプライン = 認証キーストーンコンテキスト API
  7.    
  8. [アプリ:api]
  9. paste.app_factory = monasca_api.api.server:launch
  10.    
  11. [フィルター:認証]
  12. paste.filter_factory = keystonemiddleware.auth_token:filter_factory
  13.    
  14. [フィルター:キーストーンコンテキスト]
  15. paste.filter_factory = monasca_api.middleware.keystone_context_filter:filter_factory
  16.    
  17. [サーバー:メイン]
  18. 使用 = egg:gunicorn#main
  19. ホスト = 192.168.2.23
  20. ポート = 8082
  21. 労働者 = 1
  22. proc_name = monasca_api

vim /etc/monasca/api-config.confで以下の内容を変更します。

  1. [デフォルト]
  2. # ログ記録、サーバーを実行するユーザーに権限があることを確認してください
  3. #ディレクトリ書き込みます
  4. ログファイル = monasca-api.log
  5. log_dir = /var/log/monasca/api/
  6. デバッグ = False  
  7. 地域 = リージョン1
  8. [安全]
  9. # APIへのフルアクセスが許可されるロール。
  10. default_authorized_roles = admin、 user 、domainuser、domainadmin、monasca -user  
  11.  
  12. # 許可されている役割  APIPOST メトリックのみを送信します。この役割は、 Monasca エージェントによって使用されます。
  13. エージェント承認ロール = 管理者
  14.  
  15. # 許可されている役割  APIからメトリックを取得するだけです
  16. 読み取り専用権限のあるロール = 管理者
  17.  
  18. # 別のテナント代わってAPIにアクセスすることが許可されているロール
  19. #たとえば、別のテナントが「委任」ロールメンバーである場合、サービスはそのテナントメトリックを POST できます
  20. delegate_authorized_roles = 管理者
  21.  
  22. [カフカ]
  23. # kafkaサーバーへのエンドポイント
  24. uri = ローカルホスト:9092
  25.  
  26. [influxdb]
  27. # Influxdbデータベースの場合のみ必要 バックエンド使用されます
  28. # InfluxDB サービスIP アドレス。
  29. ip_address = ローカルホスト
  30.  
  31. # InfluxDB サービスがリッスンしているポート番号
  32. ポート = 8086
  33.  
  34. #認証使用するユーザー名
  35. ユーザー= モナスカ
  36.  
  37. #パスワード 認証する
  38. パスワード= tyun
  39.  
  40. #名前  InfluxDBデータベース 使用する
  41. データベース名 = mon
  42.  
  43. [データベース]
  44. url = "mysql+pymysql://monasca:tyun@127.0.0.1/mon"  
  45.  
  46.  
  47. [keystone_authtoken]
  48. アイデンティティURI = http://192.168.1.11:35357
  49. 認証URI = http://192.168.1.11:5000
  50. 管理者パスワード = tyun
  51. admin_user = モナスカ
  52. admin_tenant_name = サービス
  53. カファイル =
  54. 証明書ファイル=
  55. キーファイル =
  56. 安全でない = 

[mysql] セクションをコメントアウトし、残りはデフォルトのままにします。

monascaシステムユーザーを作成し、ディレクトリに入ります

  1. ユーザー追加モナスカ -U -r
  2. mkdir /var/log/monasca
  3. mkdir /var/log/monasca/api
  4. chown -R モナスカ。 /var/log/モナスカ/

OpenStack コントローラー ノードで、monasca ユーザーのパスワードを作成し、テナント サービスで monasca ユーザーに管理者ロールを割り当てます。

  1. オープンスタックユーザー 作成する  --domain デフォルト --password tyun monasca  
  2. OpenStack ロールの追加  --プロジェクト サービス --ユーザー monasca 管理者 
  3.  
  4. オープンスタックサービスの作成  --name monasca --description "Monasca監視サービス" 監視 
  5.  
  6. エンドポイントを作成する
  7. OpenStack エンドポイントの作成  --region RegionOne モナスカ パブリック http://192.168.1.143:8082/v2.0  
  8. OpenStack エンドポイントの作成  --region RegionOne モナスカ内部 http://192.168.1.143:8082/v2.0  
  9. OpenStack エンドポイントの作成  --region RegionOne モナスカ管理者 http://192.168.1.143:8082/v2.0  

192.168.1.143 は私の API 仮想マシン アドレスのフローティング IP です。これを自分の IP に変更してください。

monasca api 起動スクリプト vim /etc/init/monasca-api.conf を作成します。

  1. # Monasca API起動スクリプト
  2.  
  3. 説明「Monasca API Python アプリ」  
  4. ランレベル [2345]開始
  5.  
  6. コンソールログ
  7. 復活
  8.  
  9. セギッドモナスカ
  10. セトゥイド モナスカ
  11. /usr/ local /bin/gunicorn -n monasca-api -k eventlet を実行します--worker-connections=2000 --backlog=1000 --paste /etc/monasca/api-config.ini  

monasca-persisterをインストールする

monasca-persister起動スクリプトを作成する

vim /etc/init/monasca-persister.conf

  1. # Monasca Persister起動スクリプト
  2.  
  3. 説明「Monasca Persister Python アプリ」  
  4. ランレベル [2345]開始
  5.  
  6. コンソールログ
  7. 復活
  8.  
  9. セギッドモナスカ
  10. セトゥイド モナスカ
  11. /usr/bin/java -Dfile.encoding=UTF-8 -cp /opt/monasca/monasca-persister.jar monasca.persister.PersisterApplication サーバー /etc/monasca/persister-config.yml を実行します

monasca-persisterを起動する

  1. サービス monasca-persister の開始

monasca-notificatoinをインストールする

  1. pip インストール--upgrade monasca-notification  
  2. apt-get で sendmail をインストール

notification.yamlを/etc/monasca/にコピーし、起動スクリプトvim /etc/init/monasca-notification.confを作成します。

  1. # monasca_notification起動スクリプト
  2.  
  3. 説明「Monasca 通知デーモン」  
  4. ランレベル [2345]開始
  5.  
  6. コンソールログ
  7. 復活
  8.  
  9. セギッドモナスカ
  10. セトゥイド モナスカ
  11. /usr/bin/python /usr/ local /bin/monasca-notification を実行します

通知サービスを開始する

  1. サービス モナスカ通知開始

monasca-threshをインストールします。monasca-threshを/etc/init.d/にコピーします。monasca-thresh.jarを/opt/monasca-thresh/にコピーします。thresh-config.ymlを/etc/monasca /にコピーし、ホストとデータベースの情報を変更します。monasca-threshを起動します。

  1. サービス monasca-thresh 開始

monasca-agentをインストールする

openstack コントローラー ノードに monasca-agent をインストールして、openstack サービス プロセスを監視できるようにします。

  1. sudo pip インストール--upgrade monasca-agent  

monasca-agent を設定し、ユーザー ドメイン ID とプロジェクト ドメイン ID をデフォルト値に変更します。

  1. monasca-setup -u monasca -p tyun --user_domain_id e25e0413a70c41449d2ccc2578deb1e4 --project_domain_id e25e0413a70c41449d2ccc2578deb1e4 --user monasca \  
  2. --project_name サービス -s 監視 --keystone_url http://192.168.1.11:35357/v3 --monasca_url http://192.168.1.143:8082/v2.0 --config_dir /etc/monasca/agent --log_dir /var/log/monasca/agent --overwrite  

認証スクリプト admin-rc.sh をロードし、monasca metric-list を実行します。

DevStackのインストール

Monasca DevStack を実行するには、少なくとも 10GB の RAM を搭載したホストが必要です。

Devstack のインストールと実行の手順については、こちらをご覧ください。

  1. https://docs.openstack.org/devstack/latest/

DevStack で Monasca を実行するには、次の 3 つの手順に従います。

DevStack リポジトリをクローンします。

  1. git クローン https://git.openstack.org/openstack-dev/devstack

devstack ディレクトリのルートにある DevStack local.conf ファイルに以下を追加します。 local.conf が存在しない場合は、作成する必要があります。

  1. # DEVSTACK LOCAL .CONF コンテンツの開始
  2.  
  3. [[ローカル|localrc ]]
  4. DATABASE_PASSWORD=シークレットデータベース
  5. RABBIT_PASSWORD=秘密のラビット
  6. ADMIN_PASSWORD=秘密の管理者
  7. SERVICE_PASSWORD=シークレットサービス
  8. サービストークン=111222333444
  9.  
  10. ログファイル=$DEST/logs/stack.sh.log
  11. LOGDIR=$DEST/ログ
  12. LOG_COLOR = 
  13.  
  14. # 次の2つの変数は実装JavaPythonの間で切り替えることを可能にします
  15. # Monasca APIMonasca Persisterこれらの変数 設定する
  16. デフォルト   Monasca APIMonasca Persisterの両方Python 実装をインストールします
  17.  
  18. # Monasca APIJavaまたはPythonを選択するには、次の 2 行のいずれかコメントを解除します。
  19. MONASCA_API_IMPLEMENTATION_LANG = ${MONASCA_API_IMPLEMENTATION_LANG:-java}
  20. # MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python}
  21.  
  22. # Monasca PesisterJavaまたはPythonを選択するには、次の 2 行コメントを解除します。
  23. MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java}
  24. # MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python}
  25.  
  26. # InfluxDBまたはVerticaのいずれかを選択するには、次の 2 行のいずれかコメントを解除します。
  27. デフォルト  「influxdb」  メトリックDBとして選択
  28. MONASCA_METRICS_DB = ${MONASCA_METRICS_DB:-influxdb}
  29. # MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
  30.  
  31. # この行はすべて有効になります モナスカ
  32. enable_plugin monasca-api https://git.openstack.org/openstack/monasca-api
  33.  
  34. #END DEVSTACKローカル.CONF コンテンツ

devstack ディレクトリのルートから「./stack.sh」を実行します。

最小限の OpenStack コンポーネントで Monasca を実行する場合は、local.conf ファイルに次の 2 行を追加します。

  1. すべてのサービスを無効にする
  2. enable_service ウサギのMySQLキー 

Tempestテストもインストールしたい場合は、tempestを追加します。

  1. enable_service ウサギ mysqlキーテンペスト

Horizo​​nとMonasca UIを有効にするには、horizo​​nを追加します

  1. enable_service ウサギ mysqlキーホライゾン テンペスト

Vagrantの使用

Vagrant を使用すると、Vagrantfile を使用して Devstack と Monasca を実行する VM をデプロイできます。 Vagrant をインストールしたら、../monasca-api/devstack ディレクトリで vagrant up コマンドを実行するだけです。

devstack インストールでローカル コード リポジトリを使用するには、ローカル リポジトリのマスター ブランチに変更をコミットし、使用するローカル リポジトリに対応する構成ファイル内の変数 file://my/local/repo/location を変更します。 monasca-api リポジトリのローカル インスタンスを使用するには、enable_plugin monasca-api https://git.openstack.org/openstack/monasca-api を enable_plugin monasca-api file://my/repo/is/here に変更します。これら 2 つの設定は、devstack VM を再構築した場合にのみ有効になります。

1. Vagrantを使用してVerticaをメトリクスDBとして有効にする

Monasca は、メトリックとアラーム ステータス履歴を保存するために InfluxDB と Vertica の両方の使用をサポートしています。デフォルトでは、InfluxDB は DevStack 環境で有効になっています。

Vertica は、Hewlett Packard Enterprise の商用データベースです。無料の Community Edition (CE) インストーラーをダウンロードできます。 Vertica を有効にするには、次の手順を実行します。

  • Vertica Debian インストーラー (https://my.vertica.com/download/vertica/community-edition/) を登録してダウンロードし、ホーム ディレクトリに配置します。残念ながら、DevStack インストーラーには自動的に使用できる URL がないため、これを別途ダウンロードし、インストーラーの実行時に見つけられる場所に配置する必要があります。インストーラーは、この場所がホーム ディレクトリであると想定します。 Vagrant を使用する場合、通常、ホーム ディレクトリは VM 内に「/vagrant_home」としてマウントされます。
  • 次のように、local.conf の MONASCA_METRICS_DB 変数を変更して、Vertica サポートを構成します。

MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}

2. PostgreSQLまたはMySQLを使用する

Monasca は PostgreSQL と MySQL の使用をサポートしているため、この devstack プラグインも同様にサポートします。 postgresql または mysql を有効にします。

MySQL を使用して環境を設定するには、以下を使用します。

  1. 有効化サービスMySQL

あるいは、PostgreSQL の場合は以下を使用します。

  1. postgresql のサービスを有効にする

3. ORMサポートを使用する

ORM サポートは、MONASCA_DATABASE_USE_ORM 変数を介して制御できます。ただし、PostgreSQL(データベースバックエンドとも呼ばれる)が有効になっている場合は、ORMサポートが強制されます。

postgresql のサービスを有効にする

4. Apacheミラーの強化

何らかの理由で APACHE_MIRROR を使用できない場合は、次の方法で強制できます。

  1. APACHE_MIRROR=http://www-us.apache.org/dist/

5. WSGIを使用する

Monasca-api は、uwsgi と gunicorn を使用して Apache でデプロイできます。デフォルトでは、monasca-api は uwsgi で実行されます。 Gunicorn を使用する場合は、devstack/local.conf に以下が含まれていることを確認してください。

  1. MONASCA_API_USE_MOD_WSGI= False  

使用

モナスカダッシュボード

Monasca ダッシュボード プラグインをインストールすると、Web コンソールを通じて対応する監視とアラームを表示および管理できるようになります。

オペレーション コンソールの [監視] タブで、[監視ダッシュボードの起動] をクリックします。これにより、管理ノード上で実行されている専用の OpenStack Horizo​​n ポータルが開きます。

このパネルでは、次のことができます。

  • サービスアラームを表示するには、OpenStack サービス名をクリックします。
  • サーバー名をクリックすると、関連付けられているデバイスのアラートが表示されます。

監視情報は 2 つのデータベース (Vertica/influxdb と mysql) に保存されます。監視データをバックアップする場合、両方のデータベースが同時にバックアップされます。見る

  • 監視メトリックは Vertica に 7 日間保存されます。
  • 構成設定は MySQL に保存されます。
  • 監視ノード上のサービスが高負荷(例:15 個の制御ネットワークと 200 個のコンピューティング ノード)で停止した場合、メッセージ キューは約 6 時間でクリアされ始めます。

監視情報を表示

オペレーション コンソールで、メイン メニューから [監視ダッシュボード] を選択して監視 UI を開きます。

監視ダッシュボードの起動をクリックします。

管理アプライアンスの OpenStack Horizo​​n の監視ダッシュボードが開きます。

初期インストール時にオペレーション コンソールに設定したユーザー名とパスワードを使用してログインします。

アラートを表示します。画面上で結果をフィルタリングできます。

  • 左側のナビゲーションで [アラーム] をクリックすると、アラームが設定されているすべてのサービスとデバイスが表示されます。
  • 各行の右側にある [アクション] メニューで、[グラフ メトリック] をクリックしてアラートの詳細を表示したり、アラート履歴とアラート定義を表示したりできます。このアラートのグラフの上部にメトリック名も表示されます。
  • サービスアラートを表示するには、OpenStack サービス名をクリックします。
  • サーバー名をクリックすると、デバイスに関するアラートが表示されます。

左側のナビゲーションで「アラーム定義」をクリックすると、有効なアラームの種類を表示および編集できます。

注意: デフォルトのアラート定義を変更または削除しないでください。ただし、新しいアラート定義を追加することはできます。

アラートの名前、表現、その他の詳細を変更できます。

受信するアラートが多すぎるか少なすぎる場合は、アラートしきい値を上げたり下げたりすることを検討してください。

アラート式の記述に関する情報。

オプション: ダッシュボードをクリックします。

OpenStack ダッシュボード (Grafana) が開きます。このダッシュボードから、OpenStack サービスの健全性と、各ノードの CPU およびデータベースの使用状況をグラフで確認できます。

  • グラフのタイトル (CPU など) をクリックし、[編集] をクリックします。
  • 機能を変更して、グラフ内の他の種類の情報を表示します。

オプション: Monasca Health をクリックします。

Monasca サービス ダッシュボードが開きます。このダッシュボードでは、Monasca サービスの健全性をグラフで確認できます。

要約する

Monasca は、Openstack のサービスとしての監視コンポーネントです。現在、コミュニティ内およびインターネット上の情報は比較的少ないです。この記事では著者の実践を通してMonascaのインストール、設定、使用方法を記録します。

Monasca は、IAAS から PAAS までを実現できる、拡張性に優れた高性能な監視システムです。そのアーキテクチャにより、大規模なクラスターと高負荷の監視を簡単に処理できます。私たちは徐々に、シーロメーター+ニョッキ+アオドの組み合わせをやめて、モナスカに目を向けるようになりました。現在、当社ではクラウド ホストとクラウド ネットワークだけでなく、Kubernetes クラスター、データベース クラスター、オブジェクト ストレージ、および Openstack クラスター内のその他の PAAS ソフトウェアも監視しています。

参考記事:

https://docs.openstack.org/monasca-api/latest/

https://wiki.openstack.org/wiki/Monasca

<<:  知っておくべきクラウドネイティブツール13選

>>:  Kingdeeのエコシステムはデジタルトレンドを切り開き、企業のデジタル変革を確実にします

推薦する

SEO初心者がスパイダートラップの前で敵の状況を制御する方法

人生にはいたるところに罠がありますが、SEO 最適化では罠はなおさら避けられません。ここで話題にして...

ハイブリッドクラウドとマルチクラウドの違いは何ですか?

クラウド コンピューティングは、企業の IT に新たなビジネス価値とエンドユーザーの利便性をもたらす...

明らかに:コンバージョン率を向上させるコンテキストマーケティング

商品詳細ページは、取引の成立を直接左右する重要な要素の 1 つです。商品詳細で消費者の心をつかむには...

Tianyi Cloud は主要な AI 製品をリリースしようとしています。今回はどの業界に力を入れるのでしょうか?

5G技術の成熟と大規模構築は、人工知能と産業の統合的な発展を促進しています。将来、人工知能はどの業界...

モバイルアプリ: ユーザーのプライバシーと商業的利益の戦い

テンセントテクノロジーニュース(秦島)北京時間8月4日、海外メディアの報道によると、ますます多くの企...

個人ウェブサイト構築経験 ウェブサイト運営に関する様々なトピック

最近ウェブサイトを構築しました。今年2月初旬から6月中旬まで、ウェブサイトのデータのパフォーマンスは...

イベントマーケティングにビデオを活用する:オンラインマーケティング業界で大成功を収めたSKYCCの秘密

オンライン マーケティングやイベント マーケティングには、コストがかかったり、長い時間がかかったりす...

ローカル移動ウェブサイトの最適化の詳細例

検索エンジンのアルゴリズムが継続的に更新されているため、SEO は以前よりも難しくなり、時間がかかる...

Pacificrack: 5 月の特別 VPS、年間 9.89 ドル、KVM/1G メモリ/15g SSD/3T トラフィック、PayPal/Alipay

Pacificrack は、5 つの VPS のプロモーションを開始しました。そのうち 3 つの特別...

JVM 内部キャッシュを選択するにはどうすればいいですか?あなたの疑問に答える記事

[[332941]] JVMの内部キャッシュとは何ですかネイティブJava HashMap のチェー...

JD.comとTaobaoはダブル12期間中に差別化されたプロモーションを模索:小規模な販売業者が主役に

ダブル11のプロモーション戦争の煙はまだ消えておらず、JD.com、Taobaoなどは12月のプロモ...

中小企業のブランド構築方法

ブランドとは何ですか?企業にとって、ブランドは無形の資産であり、消費者の心の中に残る企業の印象です。...

ネットセレブのヒットの法則:老年、中年、若者の3世代

著者 | 蘇 琦編集者 | 金 宇凡「私の名前はディン・ジェンです。そしてこれは私のポニーのパールで...

地域装飾ネットワーク運営促進と利益分配

近年の同国の厳しい不動産取り締まりにより、不動産取引量は大幅に減少し、1か月間で取引がゼロとなった物...

クラウド管理サービスであるAWS OrganizationsがAWS中国で利用可能に

最近、AWS 中国 (寧夏) リージョン (Western Cloud Data が運営) と AW...