ジョブマネージャとの通信について
Kompira デーモンとKompira ジョブマネージャを別々のサーバにインストールし構成した場合、どのようなプロトコルやポートが使用されるのかご教示頂けますでしょうか。
-
正式なコメント
KompiraデーモンとKompiraジョブマネージャ間は、RabbitMQというメッセージングミドルウェアを介して通信を行っております。プロトコルはAMQPで、ポート番号は5672となります。
コメントアクション -
フィックスポイントの高橋です。
こちらはKompiraエンジン(本体)からKompiraジョブマネージャに対して
TCPの5672ポートで接続しにいくという理解で良いでしょうか。上記とは逆方向でして、KompiraジョブマネージャからKompiraエンジン方向への接続となります。
もう少し詳細には、Kompiraエンジンと同一ノードにRabbitMQというAMQPのサーバが動作しており、KompiraエンジンもKompiraジョブマネージャも、5672番ポートで待ち受けているそのAMQPサーバに接続したうえで(そこを経由して)通信する、という構造になります。
送信元は1025以降の任意のポート、送信先は5672の固定ポートに接続しにいき、
逆方向に対しては特別なセッションを張らず、上記セッション内でデータのやり取りを
行うという理解で合っていますでしょうか。はい、こちらは上記ご認識のとおりとなります。
参考になさってみてください。
-
通常 Kompira をインストールすると、同一ノード上で以下のサービスが動作しています(一部省略しています)。
- kompirad (Kompiraエンジン): フロントエンドなどからの指示を受けて、ジョブフローを実際に実行するサービス
- kompira_jobmngrd (Kompiraジョブマネージャ): ジョブフローでのリモートジョブ実行などに伴い、リモートサーバへのログイン・コマンド実行などを担うサービス
- rabbitmq-server (RabbitMQ): AMQP で kompirad ⇔ kompira_jobmngrd 間などのメッセージングを担うサービス
- postgresql (PostgreSQL): Kompiraオブジェクトを格納するデータベースを担うサービス
- httpd (Apache): ブラウザアクセスを処理するフロントエンドのサービス
このとき、kompirad および kompira_jobmngrd が rabbitmq-server に対して TCP で接続しにいきます。rabbitmq-server はそれらのサービス間のメッセージを中継しているとお考え下さい。
kompira_jobmngrd については単独で別ノードにインストールすることが可能ですが、その際は、kompira_jobmngrd から kompirad をインストールしたノード上の rabbitmq-server に対して TCP 接続することになります。
ちなみに、kompira_sendevt でのメッセージ送信(監視システムからのアラート送信など)も、同様に kompira_sendevt から rabbitmq-server に対する TCP 接続となります。
-
ご返信ありがとうございます。
# お礼遅くなり申し訳ありません。
ご回答頂いた内容についてもう少し教えてください。kompira_jobmngrd については単独で別ノードにインストールすることが可能ですが、その際は、
kompira_jobmngrd から kompirad をインストールしたノード上の rabbitmq-server に対して
TCP 接続することになります。
上記のように、KompiradとKompira_jobmngrdを別々のノードにインストールする構成では、
以下の接続イメージで認識合っていますでしょうか。
その際、ノードBで実行されたジョブフローにリモートサーバに対するコマンド命令があった場合は、
rabbitmg-serverにメッセージを連携し、ノードAはメッセージがキューイングされたことを検知し、
rabbitmg-serverからメッセージを取得しリモートサーバに対してリモートコマンドを実行する。
ということでしょうか。
-------------------------------------------------------------------------------------
|ノードA:kompira_jobmngrd(リモートコマンド実行するサービス) |
-------------------------------------------------------------------------------------
↓ 接続先:TCP 5672
-------------------------------------------------------------------------------------
|ノードB:rabbitmg-server(メッセージングサービス) |
| ↑ 接続先:TCP5672 ※内部的な接続 |
|ノードB:kompirad(ジョブフローを実行するサービス) |
-------------------------------------------------------------------------------------
サインインしてコメントを残してください。
コメント
15件のコメント