SystemLinkサーバとクライアント間の接続の内部動作

更新しました Apr 18, 2024

使用製品

ソフトウェア

  • SystemLink Server
  • SystemLink Client

問題

  • SystemLinkサーバとクライアント間の接続プロセスがどのようなものかを知りたいです。
  • SystemLinkサーバとクライアント間の接続にはどのポートが使用されますか?
  • SystemLinkサーバとクライアントの間の理想的な接続プロセスが何であるかを知りたいです。

解決策

接続プロセスでは、TCPポート4505および4506経由でSaltが使用されるため、SystemLinkクライアント上でSalt-minionが実行され、SystemLinkサーバ上でSalt-Masterが実行されます。正常な接続プロセスは次のように実行されます。
  1. SystemLinkクライアントソフトウェアはクライアントシステムにインストールされます。
    • クライアントが Windowsまたはリアルタイム(RT)ターゲットの場合、インストールプロセスが変わります。
    • ユーザは、WindowsのSystemLinkクライアントアプリケーションに、またはRTターゲットの場合はNI MAXを介して、SystemLinkサーバアドレス(優先ホスト名、ホスト名、または IP アドレス)を入力します。
 
  1. クライアントコンピュータ上のSalt-minionサービスは、入力されたサーバアドレスへの接続を試行します。
    • このサービスは、SystemLinkクライアントアプリケーションによって自動的にインストールされます。
    • データ暗号化のための一意のpublic_keyを自動的に作成します。
    • このクライアント システム用に一意のminionID (GUID)を自動的に作成します。
    • ポート4505およびポート4506でサーバへのTCP接続を開きます。
    • これらのTCP接続は持続し、通信に何度も使用されます。
    • TCPポート4506でサーバにpublic_keyとminionIDを定期的に送信しようとします。
 
  1. SystemLinkサーバはクライアントからpublic_keyとminionIDを取得します。
    • リアルタイムターゲットの場合、WindowsのSystemLinkクライアントダイアログまたはNI MAXのSystemLink設定フィールドには、接続済みのステータスが表示されます。
    • この時点で、SystemLinkクライアントのminionIDが、SystemLink Server Web UIのシステム管理>> システム]>> 保留中のシステムタブに表示されます。
    • この段階では、SystemLinkサーバはまだSystemLinkクライアントにSalt jobを送信できません。
    • DOSでsalt-keyを実行すると、このSystemLinkクライアントのminionIDがUnaccepted Keysに表示されます。
    • このSystemLinkクライアントのminionIDを使用してSalt-master test.pingを実行すると、 Falseが返されます。
 
  1. SystemLink Serverユーザーは、保留中のSystemLinkクライアントを承認します。このためには、そのクライアント (minionIDで識別される)のシステム管理>> システム>> 保留中のシステムタブにある承認ボタンを押します。
    • SystemLinkサーバは、そのSystemLinkクライアントのノードライセンスをチェックアウトします (利用可能な場合)。
    • そのSystemLinkクライアントのminionIDとpublic_key は、SystemLink Serverに保存されるようになった状態です。
    • DOSでsalt-keyを実行すると、このSystemLinkクライアントのminionIDがAccepted Keysに表示されます。
    • このSystemLinkクライアントのminionIDを使用してSalt-master test.pingを実行すると、 Trueが返されます。
 
  1. SystemLink Serverは、このSystemLinkクライアント上で実行される更新ジョブをスケジュールします。
    • Salt-masterは、接続の確立を通知するイベントを発行します。
    • SystemsManagement Serviceはそのイベントに反応します。
      • このSystemLinkクライアントのシステムページヘッダーを接続済みに更新します。
      • TCPポート4505でこのSystemLinkクライアントに更新ジョブを送信します。
    • 更新ジョブはSystemLinkクライアントコンピュータ上で実行され、次のことが行われます。
      • サーバから送信されたHTTPS Web証明書を登録します。
      • サーバから送信されたURLを格納します。
      • サーバから送信されたこのクライアントシステムのApiKeyを保存します。
      • grains dictionaryと呼ばれる、すべてのクライアント情報 (ホスト名、ネットワーク構成、シリアル番号、インストールされているソフトウェア、構成されたフィードなど) を収集します。
      • SystemLinkクライアントのgrains dictionaryをSystemLinkサーバに送り返します。
 
  1. SystemLink サーバは、クライアントシステムのgrains dictionaryを受信します。
    • TCPポート4506でクライアントからgrains dictionaryを受信します。
    • grains dictionaryからのすべてのSystemLinkクライアント情報を保存します。
    • 受信したSystemLink クライアント情報をすべてのシステムテーブルとページに表示します。
    • このSystemLinkクライアントのシステムテーブルの接続状態接続済みとして表示します。
 
  1. SystemLinkクライアントは、すべての(後続の)データをHTTP(S)接続経由でサーバに送信します。
    • 保存されたホストアドレス、ApiKey、Web証明書を使用してHTTP(S)経由で接続します。
    • タグ、ファイル、テスト結果などを、saltや TCPではなくHTTP(S)経由でのみ送信します。
    • SystemLinkクライアントのヘルスタグの更新をチェックすることで、これが機能していることを確認できます。
    • ヘルスタグは5 分ごとに更新されるため、最初は待つ必要があります。
    • これを表示するには、システムテーブルにカスタム列を作成すると便利です。

追加情報

クライアントとサーバ間の接続にはさまざまなステータスがあります。これは、ステータスが表す内容の簡単な概要です。
  • クライアントがSaltを介してサーバに接続すると、SystemLinkクライアントダイアログに接続済みと表示されます。
  • クライアントの保存されたHTTP(s)情報が失敗すると、SystemLinkクライアントダイアログに部分的に接続されましたと表示されます。
  • クライアントが承認されアクティブ化されると、SystemLink Server システム ページのヘッダーに接続済みと表示されます。
    • SystemLink Serverのシステム ページには、サーバが穀物辞書情報を受信したことがある場合にその情報が表示されます。
  • 最後の更新ジョブが成功した場合、SystemLink Serverシステムテーブルのステータス列に接続済みと表示されます。
サーバとクライアント間の接続の設定で問題が発生した場合は、SystemLinkクライアント接続の問題のトラブルシューティングを参照してください。