差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| ja:documentation:pandorafms:technical_reference:06_anexo_agent_plugins [2024/05/23 05:44] – [pandora_agent_daemon の再起動] junichi | ja:documentation:pandorafms:technical_reference:06_anexo_agent_plugins [2025/07/19 07:37] (現在) – [デバッグモード] junichi | ||
|---|---|---|---|
| 行 4: | 行 4: | ||
| [[ja: | [[ja: | ||
| - | ===== エージェントプラグイン開発 ===== | + | <wrap #ks1 /> |
| - | ==== エージェントプラグインの基本機能 ==== | + | ===== エージェントプラグインの基本機能 ===== |
| - | エージェントプラグインは、**Pandora FMS ソフトウエアエージェントで実行され**、いくつかの特別な機能があります。 | + | |
| - | | + | The //agent // |
| - | * ローカルマシンのリソースおよび、リモートで他のマシンのリソースの両方にアクセスすることができます。 | + | //エージェント// |
| - | | + | * Each plugin execution may return one or more modules with their corresponding values. The output must be in [[# |
| + | * It will be possible to access local machine resources local or remote machine resources. | ||
| + | * It is possible to use any type of programming language supported by the operating system where the Pandora FMS EndPoint is installed. | ||
| + | * All dependencies or software needed to run the plugin must be available or installed in the same machine that runs Pandora | ||
| - | * プラグインを実行するために必要な依存プログラムは、Pandora | + | |
| + | * ローカルマシンのリソースおよび、リモートで他のマシンのリソースの両方にアクセスすることができます。 | ||
| + | * Pandora FMS エンドポイントがインストールされている OS でサポートしている、任意のプログラミング言語を利用することができます。 | ||
| + | | ||
| + | |||
| + | Agent plugins may perform a kind of recon task since the plugin may return several modules in one run and the number may change between different runs. | ||
| エージェントプラグインは、" | エージェントプラグインは、" | ||
| - | <WRAP center round important | + | <WRAP center round important |
| - | UNIX および | + | |
| + | On UNIX and GNU/Linux the result of the plugin execution must be '' | ||
| </ | </ | ||
| - | ==== エージェントプラグイン開発の例 ==== | + | <WRAP center round important 90%> |
| - | 簡単なプラグインの例を説明します。このエージェントプラグインは、ファイルシステムの利用率を返します。プログラムコードは次の通りです。 | + | |
| - | < | + | UNIX および GNU/Linux では、プラグインの終了ステータスは '' |
| + | |||
| + | </ | ||
| + | |||
| + | <wrap #ks2 /> | ||
| + | |||
| + | ===== エージェントプラグイン開発の例 ===== | ||
| + | |||
| + | This agent plugin returns the percentage of system // | ||
| + | |||
| + | このエージェントプラグインは、ファイルシステムの利用率を返します。 | ||
| + | |||
| + | < | ||
| # | # | ||
| - | + | ||
| use strict; | use strict; | ||
| sub usage() { | sub usage() { | ||
| - | print " | + | print " |
| print " | print " | ||
| print " | print " | ||
| } | } | ||
| - | + | ||
| - | # Retrieve information from all filesystems | + | # Retrieve information from all filesystem |
| my $all_filesystems = 0; | my $all_filesystems = 0; | ||
| # Check command line parameters | # Check command line parameters | ||
| - | if ($#ARGV < 0) { | + | if ($#ARGV <0) { |
| $all_filesystems = 1; | $all_filesystems = 1; | ||
| } | } | ||
| 行 62: | 行 82: | ||
| # No filesystems? | # No filesystems? | ||
| - | if ($#df < 0) { | + | if ($#df <0) { |
| exit 1; | exit 1; | ||
| } | } | ||
| 行 69: | 行 89: | ||
| foreach my $row (@df) { | foreach my $row (@df) { | ||
| my @columns = split (' ', $row); | my @columns = split (' ', $row); | ||
| - | exit 1 if ($#columns < 4); | + | exit 1 if ($#columns <4); |
| $filesystems{$columns[0]} = $columns[4] if (defined ($filesystems{$columns[0]}) || $all_filesystems == 1); | $filesystems{$columns[0]} = $columns[4] if (defined ($filesystems{$columns[0]}) || $all_filesystems == 1); | ||
| } | } | ||
| 行 76: | 行 96: | ||
| # Remove the trailing % | # Remove the trailing % | ||
| - | chop ($use); | + | chop ($use); |
| # Print module output | # Print module output | ||
| 行 88: | 行 108: | ||
| exit 0; | exit 0; | ||
| + | |||
| </ | </ | ||
| + | |||
| + | An important part of the code is the '' | ||
| コードの重要部分は、利用方法を表示する関数です。 | コードの重要部分は、利用方法を表示する関数です。 | ||
| - | < | + | < |
| sub usage() { | sub usage() { | ||
| - | print " | + | print " |
| print " | print " | ||
| print " | print " | ||
| } | } | ||
| + | |||
| </ | </ | ||
| - | この関数では、プラグインのバージョンと利用方法を説明します。これはとても重要で、パラメータ無しや | + | This function describes the version and how to use plugin, it is very important and must always be shown when executing plugin without any parameter or with a '' |
| - | < | + | この関数では、プラグインのバージョンと利用方法を説明します。これはとても重要で、パラメータ無しや '' |
| + | |||
| + | < | ||
| if ($ARGV[0] eq " | if ($ARGV[0] eq " | ||
| usage(); | usage(); | ||
| exit(0); | exit(0); | ||
| } | } | ||
| + | |||
| </ | </ | ||
| + | Regarding the values returned by the plugin it can be observed that once the data of the following files have been collected, a part of XML is created and printed by the standard output for each of them, this task is performed in the following lines: | ||
| プラグインから返される値としては、ファイルシステムから一回データが収集されることがわかると思います。データを含めた XML の書式を生成し標準出力に出力します。この処理は次の部分で行われています。 | プラグインから返される値としては、ファイルシステムから一回データが収集されることがわかると思います。データを含めた XML の書式を生成し標準出力に出力します。この処理は次の部分で行われています。 | ||
| - | < | + | < |
| while (my ($filesystem, | while (my ($filesystem, | ||
| # Remove the trailing % | # Remove the trailing % | ||
| - | chop ($use); | + | chop ($use); |
| # Print module output | # Print module output | ||
| 行 126: | 行 154: | ||
| print "</ | print "</ | ||
| } | } | ||
| + | |||
| </ | </ | ||
| + | |||
| + | The result returned by this plugin could be: | ||
| このプラグインの出力結果は、次のようになります。 | このプラグインの出力結果は、次のようになります。 | ||
| - | < | + | < |
| < | < | ||
| - | < | + | |
| - | < | + | < |
| - | < | + | < |
| - | < | + | < |
| </ | </ | ||
| < | < | ||
| - | < | + | |
| - | < | + | < |
| - | < | + | < |
| - | < | + | < |
| </ | </ | ||
| < | < | ||
| - | < | + | |
| - | < | + | < |
| - | < | + | < |
| - | < | + | < |
| </ | </ | ||
| + | |||
| </ | </ | ||
| + | The number of modules returned by this plugin depends on the number of configured filesystems and may change between executions. | ||
| このプラグインから返されるモジュール数は、設定したファイルシステムの数に依存し、実行ごとに変更することができます。 | このプラグインから返されるモジュール数は、設定したファイルシステムの数に依存し、実行ごとに変更することができます。 | ||
| - | この XML がソフトウエアエージェントが生成する全体の XML に追加され、Pandora サーバへ送信され、**データサーバ** にて処理されます。 | + | The XML fragment is added to the general XML generated by the EndPoint and is sent to Pandora FMS server to be processed by the **Data Server**. |
| + | |||
| + | この XML がエンドポイントが生成する全体の XML に追加され、Pandora | ||
| + | |||
| + | <wrap #ks4 /> | ||
| + | |||
| + | ===== トラブルシューティング ===== | ||
| + | |||
| + | If Pandora FMS does not recognize the agent plugin, does not get the expected information or the agent simply does not work, here are several things you should take into account. | ||
| - | ==== トラブルシューティング ==== | ||
| Pandora FMS がエージェントプラグインを認識できないと、期待した値が取得できなかったりエージェントが動作しません。その場合の確認ポイントを以下に示します。 | Pandora FMS がエージェントプラグインを認識できないと、期待した値が取得できなかったりエージェントが動作しません。その場合の確認ポイントを以下に示します。 | ||
| - | === pandora_agent.conf のドキュメント確認 | + | <wrap #ks3_1 /> |
| - | ソフトウエアエージェントでは、プラグインの **正しいパス** がこのファイル内に書かれている必要があります。 | + | |
| + | ==== pandora_agent.conf の修正 ==== | ||
| + | |||
| + | The EndPoint requires a line in this file with the **correct path** | ||
| + | |||
| + | エンドポイントでは、プラグインの **正しいパス** がこのファイル内に書かれている必要があります。 | ||
| + | |||
| + | Example: | ||
| 例: | 例: | ||
| - | module_plugin / | + | <file conf / |
| + | module_plugin / | ||
| - | **MyMonitor.pl** はエージェントプラグインで、**MyMonitor.conf** は引数として渡される設定ファイルです。また、**MyMonitor.err** はプラグインを実行した場合に出力されるエラーを書き込むファイルです。 | + | </ |
| - | === pandora_agent_daemon の再起動 === | + | '' |
| - | The Software Agent will run the plugins every five minutes. For those people who can not wait, it is possible to restart the Software Agent from the command line. | + | '' |
| - | ソフトウエアエージェントは 5分ごとにプラグインを実行します。次回の実行まで待てない場合は、コマンドラインからソフトウエアエージェントを再起動します。 | + | <wrap #ks3_2 /> |
| - | 例: | + | ==== pandora_agent_daemon の再起動 ==== |
| - | / | + | The EndPoint will run the plugins every 5 minutes and it is possible to restart |
| - | === プラグインのパーミッションの確認 === | + | エンドポイントは 5分ごとにプラグインを実行します。次回の実行まで待てない場合は、コマンドラインからエンドポイントを再起動します。 |
| - | プラグインおよび利用するファイルは、リード、ライト、実行の**権限を正しく設定する**必要があります。Unix であれば、次のようにします。 | + | |
| - | chmod 755 <プラグインファイル> | + | <code bash> |
| + | systemctl restart pandora_agent_daemon | ||
| - | === 出力の確認 === | ||
| - | エラーを見つける簡単な方法は、コマンドラインで**プラグインを手動実行**することです。注意して**出力結果を確認**してください。例えば、次のように実行します。 | ||
| - | < | ||
| - | popeye:/ | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| </ | </ | ||
| - | === XMLの確認 === | + | <wrap #ks3_3 /> |
| - | The XML that prints the plugin **must have valid XML syntax**. | ||
| - | The XML also **needs to be well formed**. To check if it is, you could follow this steps from the command line: | ||
| - | プラグインが出力する XML は、**正しい XML の書式である必要があります**。 | + | ==== プラグインのパーミッションの確認 |
| - | XML はまた、**正しく整形されている必要があります**。それを確認するためには、コマンドラインから次の手順を実行します。 | + | |
| - | - Create an XML document with the plugin output: // | + | The plugin and the files to be used **must have the correct** read, write and execute permissions. |
| - | - Check the XML document: //xmllint Plugin.xml// | + | |
| - | - プラグインの出力を xml ファイルに落とします。: // | + | プラグインおよび利用するファイルは、リード、ライト、実行の**権限を正しく設定する**必要があります。Unix であれば、次のようにします。 |
| - | - xml ファイルの書式をチェックします。: //xmllint Plugin.xml// | + | |
| - | === デバッグモード === | + | <code bash> |
| - | // | + | chmod 755 < plugin_path > |
| - | ファイル名は、エージェント名と | + | </ |
| + | |||
| + | <wrap #ks3_4 /> | ||
| + | |||
| + | |||
| + | ==== 出力の確認 ==== | ||
| + | |||
| + | A better way to find the errors is to **run the plugin manually** in command line. **The result or output of the execution should be carefully checked**. | ||
| + | |||
| + | エラーを見つける簡単な方法は、コマンドラインで**プラグインを手動実行**することです。注意して**出力結果を確認**してください。 | ||
| + | |||
| + | <wrap #ks3_5 /> | ||
| + | |||
| + | ==== XMLの確認 ==== | ||
| + | |||
| + | The XML produced by the plugin **must have a valid XML syntax**. To check you can follow these two steps from the command line (you must have '' | ||
| + | |||
| + | プラグインによって生成された XML は、**正しい XML 構文である必要があります**。確認するには、コマンドラインから次の 2 つの手順を実行します ('' | ||
| + | |||
| + | - Create an XML document with the plugin output: '' | ||
| + | - Checking the XML document: '' | ||
| + | |||
| + | - プラグインの出力を xml ファイルに落とします。: | ||
| + | - xml ファイルの書式をチェックします。: | ||
| + | |||
| + | <wrap #ks3_6 /> | ||
| + | |||
| + | ==== デバッグモード ==== | ||
| + | |||
| + | You may activate the development mode by changing the value of the debug tag in the '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | The name of the document will be the name of the agent with the '' | ||
| + | |||
| + | ファイル名は、エージェント名と | ||
| + | |||
| + | <WRAP center round tip 90%> | ||
| + | |||
| + | When you enable Debug mode, the agent runs only once and then exits. | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP center round tip 90%> | ||
| - | <WRAP center round tip 60%> | ||
| デバッグモードを有効にすると、エージェントは 1回の実行で終了します。 | デバッグモードを有効にすると、エージェントは 1回の実行で終了します。 | ||
| + | |||
| </ | </ | ||
| - | === フォーラム === | + | <wrap #ks3_7 /> |
| - | それでもまだうまくいかない場合は、我々の [[http://www.openideas.info/smf/ | + | |
| + | ==== フォーラム | ||
| + | |||
| + | If after all the error persists, [[https:// | ||
| + | |||
| + | それでもまだうまくいかない場合は、我々の [[https://pandorafms.com/community/ | ||
| [[ja: | [[ja: | ||