Pandora RMM
RMM とは?
RMM という名前は、Remote Monitoring and Management の頭字語に由来しています。
これは、Pandora FMS Web コンソールからタスクを作成およびスケジュールし、エージェントによってローカルで実行されて、実行された処理とその状態に関する情報を後でサーバに報告できる集中型システムです。これは、Pandora FMS のバージョン 778 から実装されており、その動作に必要なコンポーネントは、サーバとエージェントとともに配布されます。
3つのコンポーネントがあります。
- RMM エージェント:
RMM サーバに接続して新しい処理を探し、それがある場合は実行し、keepalive と data の 2 種類のファイルを送信します。これらのファイルは JSON 形式で、エージェントの名前、ファイルが送信された日付、エージェントが従う間隔、実行ステータスなどの情報が含まれています。
- RMM サーバ:
RMM エージェントによって実行されるスクリプトと、キューに入れられた実行の処理およびスケジュールをホストします。
- RMM Tentacle サービス:
これにより、クライアントと RMM サーバ間の接続が可能になります。設定パラメータには、接続の暗号化に使用されるパスワードと証明書、読み取るファイルのタイプ、アップロード専用またはダウンロード専用にするディレクトリの構成が示されています。デフォルトでは、rmm
、res
、queue
フォルダはダウンロード専用で、data
および keepalive
フォルダはアップロード専用です。
RMM システムを機能させ続けるには、3 つのコンポーネントすべてが適切に機能することが重要です。
要件と設定
前述のとおり、RMM は Pandora FMS バージョン 778 に実装されており、サーバとソフトウェアエージェントでの動作に必要なコンポーネントが含まれています。Pandora FMS サーバには Tentacle も含まれているため、778 での通常のインストールまたはそのバージョンへのアップグレードで使用要件を満たすことができます。これには、エージェントと RMM サーバ間の Tentacle 経由の接続暗号化用の証明書が含まれますが、独自の SSL 証明書 を使用して接続パスワードを変更することもできます。
設定に関しては、次の 2 つの手順で行います。
- PFMS サーバの RMM サーバを有効にする
そのためには、サーバ設定ファイルを変更する必要があります。リモート設定が有効になっている場合は、Web コンソールから、そうでない場合はターミナルから行う必要があります。行 #rmmserver 1
を変更し、コメントを外します。
RMM には、さらに 2 つのパラメータがあります: rmmserver_threads
と rmmdir
。これらにより、RMM サーバの実行スレッド数を選択し、それに応じて RMM エージェントとのデータ交換に使用するマシンのローカルディレクトリを指定できます。このディレクトリは、tentacle_rmm
サービスがエージェントと交換するファイルを管理する場所になります。
変更を保存すると、自動的に適用されるまで待つか、PFMS サーバを手動で再起動 することができます。Web コンソール表示のサーバ一覧で、RMM サーバ が有効かどうかを視覚的に確認できます。
RMM の Tentacle プロセスが有効であることをターミナルレベルで確認することもできます。このプロセスは、RMM サーバ を有効にすると自動的に作成されます。
- RMM エージェントの有効化
RMM エージェントを有効にするには、各エージェントの設定ファイルも変更する必要があります。これは GNU/Linux® エージェントと MS Windows® エージェントの両方で機能することに注意してください。rmm_enabled
行の値を 1
に変更する必要があります。その他のパラメータ:
rmm_interval
: RMM エージェントがキューに入れられた実行処理があるかどうかを確認し、それを実行する頻度を決定します。デフォルトでは 30 秒に設定されています。また、接続ステータスを報告するために .keepalive
ファイルを送信する頻度も示します。
rmm_server
: RMM サーバーの IP アドレスまたは DNS 名を示します。デフォルトでは、この行はコメントアウトされており、ソフトウェアエージェントの server_ip パラメータで指定されたものと同じ DNS アドレスまたは名前を使用します。RMM サーバ がソフトウェアエージェントの PFMS サーバ とは別のマシンにある場合は、ここで別のアドレスまたは名前を指定できます。
rmm_port
: Tentacle 接続に使用するポートを示します。PFMS サーバが使用するポートと同じである必要があります。デフォルトは 41123
です。
rmm_temp
: RMM 実行に関連する一時ファイルのローカルディレクトリを指定します。デフォルトでは、GNU/Linux® エージェントの場合は /tmp
、MS/Windows® エージェントの場合は C:\Program Files\pandora_agent\temp
です。
rmm_extra_opts
: このパラメータは、tentacle_rmm
サービスに接続するための追加オプションを示します。これには、RMM 実行のために Tentacle を介して接続を確立するために必要なパスワードまたはキーなどが含まれます。これはデフォルトで設定されていますが、必要な場合は、サーバーの /etc/tentacle/tentacle_rmm.conf
ファイルの password
パラメータで確認できます。
rmm_debug
: このモードが有効な場合に、ログまたはデバッグエントリが保存されるローカルファイルを示します。デフォルトでは、GNU/Linux® エージェントでは /var/log/pandora/pandora_rmm.debug
、MS/Windows® エージェントでは C:\Program Files\pandora_agent\pandora_rmm.debug
です。
変更を保存したら、次のエージェント間隔を待つか、手動で再起動してください。変更が有効になると、デバイスで pandora_rmm_agent
プロセスが表示されます。
エージェントとRMMサーバ間の通信
前述のように、RMM サーバに接続して実行する処理を検索し、適切なステータスを報告するのはエージェントです。これはすべて、Pandora FMS サーバ のインストールに含まれる証明書による暗号化された接続を使用して、Tentacle を介して行われます。RMM エージェントによって送信されるファイルは、.data
と .keepalive
です。
.data ファイル
.data
' ファイルは、前回の時間間隔でスクリプトが実行された場合にのみサーバに送信されます。このファイルには、.keepalive
' ファイルと同様に、エージェント名 (agent_name
)、接続日、RMM エージェントの時間間隔が含まれますが、実行された処理に関するデータが存在するかどうかが異なります。実行 ID、実行が終了したステップ、数値形式のステータス、出力メッセージ (STDOUT
)、およびエラーメッセージ (STDERR
) が示されます。
{ "agent_name": "4a6d4f8f8d599d57ba3b5b7c1c0bf4450306e720c5c46d9de2ef31daf3984dca", "last_contact": "1731402567", "rmm_interval": "30", "script": [ { "queue_id": "60", "step": "post", "status": 0, "output": "Execution completed successfully\n", "error": "" } ] }
.keepalive ファイル
.keepalive
ファイルは、すべての RMM エージェント間隔で送信され、RMM エージェントが使用可能/接続されていることをサーバに通知します。これらのファイルの内容には、コンソールに事前に登録された対応するエージェントへのリンクを容易にするエージェント名 (agent_name
)、最後の接続日としてファイルが送信された正確な日付を示すタイムスタンプ、およびその時間間隔が含まれます。
{ "agent_name": "4a6d4f8f8d599d57ba3b5b7c1c0bf4450306e720c5c46d9de2ef31daf3984dca", "last_contact": "1731402285", "rmm_interval": "30" }
Webコンソールからの表示と設定
この時点で、エージェントと RMM サーバ間の通信は正常に動作しているはずです。これは、Web コンソールの左側メニューの 管理(Management) → RMM セクションにある RMM エージェント一覧または ヒートマップ(Heatmap) 表示にアクセスして確認できます。
ヒートマップ
エージェントと RMM サーバ 間の接続が成功した場合、ヒートマップ(Heatmap) 表示で各 RMM エージェントに対して異なるボックスが表示され、色または配色と凡例で表され、それらの色に基づいて RMM エージェントの状態を確認できます。
エージェント一覧
エージェント一覧(Agent list) 表示では、RMM エージェントの状態と同じカラーシステムが表示されます。さらに、エージェント名、IP アドレス、オペレーティングシステムとバージョン、説明 (ある場合) などの追加データも表示されます。
スクリプト
この画面では、環境に登録されているすべてのスクリプトと、それらに関する情報が表示され、新しいスクリプトを作成したり、既存のスクリプトを編集したり、削除したりすることができます。
スクリプトを作成するフォームは、スクリプトを編集するフォームと同じです。新しいスクリプト(New script) または既存のスクリプトの名前をクリックすると、スクリプトが開き、作成または編集できるようになります。
各スクリプトには、名前、説明、使用されるまたはサポートされるオペレーティングシステム、およびその OS のバージョンを指定できます。この部分は組織的なもので、RMM エージェントに実行を割り当てる際には制限はありません。
このスクリプトが属するグループを指定する必要があり、その横に 実行前に通知する(Notify before execution) というオプションが表示されます。有効にすると、エージェントはこのスクリプトを実行し、スクリプトが実際に実行される前に 成功(success) ステータスを報告します。これは、 RMM エージェントプロセスが停止し、実行後に実行データを正しく報告できない場合 (たとえば、機器を再起動する場合) に役立ちます。この正しいステータスはキューリストに表示されますが、実際に完了した実行の正しいステータスとは異なる方法で表示されるため、簡単に識別できます。ステータス列には、白い縞模様または線が入った緑色のボックスが表示されます。
次の 入力(Inputs) セクションでは、実行を作成するときにスクリプトをさらにカスタマイズできます。入力の追加(Add input) をクリックすると、名前を付けたり、文字列(string) と リソース(resource) の間でタイプを選択したり、この入力に関するヒントやヘルプを指定したり、この入力に含まれるマクロ値 (自動的に入力されます) を指定したりできるようになります。
文字列(string) 型と リソース(resource) 型の違いは、文字列型の入力では、実行を作成するときに、この入力の値を手動で指定でき、その名前が示すように、テキストまたは文字列になることです。
サービスを再起動するスクリプトが文字列入力を使用する場合、実行ごとに異なるサービスを指定するだけで、このスクリプトを複数のサービスに使用できます。リソース入力を使用すると、実行ごとにスクリプトが使用するリソースを選択できます。これを行うには、後で説明するように、事前にリソースをアップロードする必要があります。
スクリプトの作成には入力は必要ありません。
入力が設定されたら、次のステップはスクリプト自体を設定することです。スクリプトには 3 つの種類があります。
- 事前条件スクリプト(Precondition script).
- スクリプト(Script).
- 事後スクリプト(Post script).
これら 3 つのタイプのうち、中央にあるスクリプト設定のみが必須です。
設定構造は、3 つのタイプすべてで同じです。パラメータ(Parameters) フィールドで、入力(Inputs) セクションに表示されるマクロ名を指定することにより、各スクリプトが使用するパラメータを指定できます。インタープリタ(Interpreter) セクションでは、スクリプトの実行に使用するコマンドインタープリタを指定します。Bash、Python、Perl などを使用できますが、エージェント環境にインストールされ、使用可能になっている必要があることを常に考慮してください。
ファイル拡張子(File extension) にはスクリプトファイルの拡張子が示され、最後に コード(Code) セクションにスクリプトコード自体が入力されます。ファイル拡張子は MS Windows® システムでは特に重要です。適切な拡張子を指定しないと、スクリプトが正しく実行されないためです。
スクリプトを設定したら、編集の場合は 設定の更新(Update configuration) をクリックして更新し、新しいスクリプトを作成した場合は 設定の保存(Save configuration) をクリックします。
リソース
この画面には、後で実行時に使用できるアップロードされたリソースが表示されます。デフォルトでは、この画面には何も表示されませんが、独自のリソースを追加する必要があります。
ファイルはエクスプローラーから選択し、ファイル選択(Select a file) をクリックして、リソースの一意の識別子として機能する 短い名前(short name) を指定する必要があります。既存の 短い名前(short name) を使用してリソースをアップロードする場合、以前のリソースを更新するかどうかを尋ねられます。
これらのリソースは、keepalive
および data
フォルダと同様に、サーバ設定ファイルで res
という名前で指定された RMM ディレクトリに保存されます。
Web コンソールでは次のように表示されます。
これらのリソースを個別に、または一括で削除するオプションもあります。入力タイプが リソース(Resource) に設定されている場合、これらのリソースは スクリプト の入力として使用できます。
エージェント詳細
キュー(Queues) および スケジュール(Schedules) 表示を正しく表示するには、何らかのエージェントに実行を追加する必要があります。そうしないと、コンテンツが表示されません。
これを行うには、エージェント一覧(Agent list) または ヒートマップ(Heatmap) から、選択したエージェントの名前をクリックして、そのエージェントの エージェント詳細(Agent details) 表示にアクセスできます。実行が作成されていない場合のデフォルト表示:
エージェントに実行を追加するには、新しい実行(New execution) をクリックするだけで、実行作成フォームが開きます。
ここでは、最初のドロップダウンリストを使用して、オペレーティングシステム (組織データ) に応じてフィルター処理できます。次に、スクリプト(Scripts) ドロップダウンリストを使用して、作成する実行で使用するスクリプトを選択できます。
その後、実行の名前とプログラミングの種類が示される場合があります。
- 1 回のみ(Only once): 実行がすぐにキューに追加されるため、作成後すぐに、また RMM エージェントがサーバで実行処理を読み取るとすぐに実行されます。これらは キュー(Queues) 画面に表示されます。\
- スケジュール(Schedule): 実行が行われるタイミングを cron 形式で選択するためのドロップダウンが表示されます。指定された時間が経過するまで、このタイプの実行は キュー(Queues) 画面には表示されませんが、スケジュール(Schedules) 画面からは常に表示され、編集できます。
選択したスクリプトに応じて、その入力(ある場合)が表示されます。文字列(String) の場合は、必要に応じてテキストを入力でき、リソースの場合は、環境にアップロードされた RMM リソースのリストが表示されます。
さらに、入力を設定して ヒント(Tip) フィールドに値を入力すると、ヘルプメッセージが表示されます。
実行の設定が完了したら、確認(Confirm) をクリックして保存します。エージェント詳細(Agent details) 画面にリストされます。
実行はタスク名とスクリプトごとに自動的にグループ化されるため、異なる時間に同じ名前とスクリプトの実行があった場合、その実行履歴はマージされ、テーブルの アクション(Actions) 列に表示される 実行履歴(Execution history) ボタンをクリックすると表示されます。
スケジュールされた実行については、下の表に表示され、連続した実行は、Cron セクションに示された時間が経過したときにのみ表示されます。
キュー
この画面では、環境内でのすべての連続実行と、それらを識別するのに役立つ一連のデータが表示されます。
表示されるデータを制限するために、フリー検索(Free search) (タスク名、エージェント、スクリプト、ステップ、出力、エラー の列で検索) や スクリプト、ステータス、最後のキュー、ステップ によるフィルターなど、さまざまなフィルターが役立ちます。
さらに、テーブルには実行の詳細を開いたり、キューから削除したりするためのアクションがあります。まだ実行されていない場合は、将来の実行が抑制されます。実行されている場合は、RMM エージェント実行のリストとキュー表示の両方から削除されます。
スケジュール
スケジュールされた実行を表示するには:
フィルターを使用して、エージェント、スクリプト、または指定された cron スケジュールで検索できます。タスクを編集したり削除したりすることもできます。