高可用性システムの監視
ThingWorx HA 構成は多数のコンポーネントから成ります。そのすべてを監視することは複雑であり、最良事例としては管理ツールを使用して管理者のタスクを軽減できます。
一般的な監視情報
ThingWorx HA 構成では各サーバーで以下の判定基準を監視することをお勧めします。
• 各マシンまたはプロセスの CPU 利用率
• メモリ使用率
• ハードディスク領域
• 開いているポート
環境下の各コンポーネントに、監視するその他の判定基準があります。コンポーネントの判定基準の詳細については、以下のセクションを参照してください。
ZooKeeper
ZooKeeper の監視方法については以下を参照してください。
ZooKeeper は 2 つの方法による監視をサポートしています
1. 4 文字の決まった単語を指定してそのコマンドポートへの呼び出しを行います。
2. JMX
デフォルトのコンフィギュレーションでは、ZooKeeper は以下のポートで通信します。
• ポート 2181 - クライアント接続に使用
• ポート 2888 - フォロワーハートビートメッセージに使用
• ポート 3888 - リーダー選出時にその他の ZooKeeper ノードとの通信に使用
Pgpool-II
デフォルトでは、Pgpool-II はウォッチドッグメッセージをポート 9000 で伝達し、ハートビートをポート 9694 で伝達します。
ウォッチドッグを使用した Pgpool-II は、ファイルの場所 /usr/sbin/pgpool にある pgpool という名前の 1 つのプロセスとして動作します。以下のコマンドを使用して、プロセスのステータスをチェックできます。
ps -elf | grep pgpool
Pgpool-II が動作していることを示す、プロセスのリストが返されます。
発生したイベントやエラーが syslog に記録されています。
以下のメッセージは、ウォッチドッグを使用した Pgpool-II が正常に開始したことを示しています。
...
wd_init: start watchdog
pgpool-II successfully started. version x.x.x (...)
find_primary_node: primary node id is 0
...
PostgreSQL
PostgreSQL には統計コレクターと呼ばれる監視用のサブシステムが含まれており、これは postgresql.conf ファイルで設定されています。詳細については、
http://www.postgresql.org/docs/current/static/monitoring-stats.html を参照してください。PostgreSQL 監視オプションの詳細については、
https://wiki.postgresql.org/wiki/Monitoring を参照してください。
デフォルトでは、PostgreSQL はポート 5432 でデータベース接続を受け付けます。
Ubuntu 環境では、PostgreSQL は postgresql という名前のサービス上で実行します。
PostgreSQL はそのログを /var/log/postgresql/postgresql-10.x-main.log ファイルに保管します。システムが動作していることを確認するには、以下のメッセージがログに記録されている必要があります。
...
(...) LOG: database system is ready to accept connections
...
HAProxy
HAProxy には組み込みのステータス Web ページがあり、haproxy.cfg ファイルにコンフィギュレーション設定を追加し、ブラウザで設定済みのポートに移動することで、このページにアクセスできます。デフォルトのコンフィギュレーションでは、ポート 1936 で HAProxy ステータスページに移動できます。
HAProxy ポートの使用はユーザーの環境でのコンフィギュレーションによって異なりますが、HAProxy と ThingWorx のコンフィギュレーションの例ではポート 8080 が使用されています。SSL 環境では、ポート 8443 を許可するように設定されている必要があります。デフォルト設定のコンフィギュレーションファイルを使用している場合、HAProxy ステータスページはポート 1936 で通信します。
HAProxy は haproxy という名前のサービス上で実行します。
HAProxy はサービス詳細のログを /var/log/syslog に記録します。/var/log/haproxy.log にも HAProxy 独自のログがあり、起動時またはランタイム中に HAProxy で問題が発生した場合にはここにエラーが書き込まれます。
Ignite
ThingWorx 9.6 以降では、Ignite 2.16 がサポートされています。
Ignite 判定基準レポートは、以下のカテゴリについて JMX および Prometheus で使用できます。
• キャッシュ
• パーティションマップ交換
• 計算ジョブ
• スレッドプール
• 通信 IO
• 検出 IO
判定基準レポートを有効にするには、次のコンフィギュレーションを有効にします。
|
コンフィギュレーション
|
タイプ
|
デフォルト値
|
有効な値
|
|
default-enable-metrics
|
BOOLEAN
|
false
|
• true
• false
|
選択済みのキャッシュレポートは、ignite のコンフィギュレーションでサポートされています。
例
"cache" : {
"ignite" : {
"caches" : {
"thing_propertyValueCache" : {
"enable-metrics" : true
}
}
}
}
• Ignite 判定基準は、JMX を使用して MBean オブジェクトおよび MBean 属性として公開され、JConsole などのビジュアリゼーションツールで視覚化できます。
• これらの判定基準は、Prometheus と Grafana におけるビジュアリゼーションでも使用できます。
Prometheus で使用可能な判定基準にアクセスするには、以下の構文を使用します。
• キャッシュ - ignite_<name_of_the_cache>_<metric_name>
• PME (パーティションマップ交換) - ignite_pme_<metric_name>
• 計算ジョブ - ignite_jobs_<metrics_name>
• 通信 - ignite_communication_<metrics_name>
• 検出 - ignite_discovery_<metrics_name>
• クラスタ - ignite_cluster_<metric_name>
• スレッドプール - ignite_threadpools_<metric_name>