差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ja:documentation:pandorafms:technical_reference:06_anexo_agent_plugins [2024/09/01 07:42] – [エージェントプラグインの基本機能] junichi | ja:documentation:pandorafms:technical_reference:06_anexo_agent_plugins [2025/02/26 02:38] (現在) – [pandora_agent_daemon の再起動] junichi | ||
---|---|---|---|
行 8: | 行 8: | ||
===== エージェントプラグインの基本機能 ===== | ===== エージェントプラグインの基本機能 ===== | ||
- | The //agent //plugin **is executed | + | The //agent //plugin **is run by Pandora FMS Software Agent** so it has to have some special features: |
// | // | ||
- | | + | * Each plugin |
- | * It will be possible to access resources local to the machine | + | * It will be possible to access |
* It is possible to use any type of programming language supported by the operating system where the Pandora FMS software agent is installed. | * It is possible to use any type of programming language supported by the operating system where the Pandora FMS software agent is installed. | ||
- | * All the dependencies or software needed to run the plugin must be available or installed in the same machine that runs the Pandora FMS agent. | + | * All dependencies or software needed to run the plugin must be available or installed in the same machine that runs Pandora FMS agent. |
* それぞれのプラグインの実行では、一つまたは複数のモジュールの値を返します。出力は後述する XML フォーマットである必要があります。 | * それぞれのプラグインの実行では、一つまたは複数のモジュールの値を返します。出力は後述する XML フォーマットである必要があります。 | ||
行 22: | 行 22: | ||
* プラグインを実行するために必要な依存プログラムは、Pandora ソフトウエアエージェントを実行するのと同じマシンにインストールされている必要があります。 | * プラグインを実行するために必要な依存プログラムは、Pandora ソフトウエアエージェントを実行するのと同じマシンにインストールされている必要があります。 | ||
- | Agent plugins | + | Agent plugins |
エージェントプラグインは、" | エージェントプラグインは、" | ||
行 42: | 行 42: | ||
===== エージェントプラグイン開発の例 ===== | ===== エージェントプラグイン開発の例 ===== | ||
- | 簡単なプラグインの例を説明します。このエージェントプラグインは、ファイルシステムの利用率を返します。プログラムコードは次の通りです。 | + | 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; | ||
} | } | ||
行 80: | 行 82: | ||
# No filesystems? | # No filesystems? | ||
- | if ($#df < 0) { | + | if ($#df <0) { |
exit 1; | exit 1; | ||
} | } | ||
行 87: | 行 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); | ||
} | } | ||
行 94: | 行 96: | ||
# Remove the trailing % | # Remove the trailing % | ||
- | chop ($use); | + | chop ($use); |
# Print module output | # Print module output | ||
行 106: | 行 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 | ||
行 144: | 行 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. | ||
このプラグインから返されるモジュール数は、設定したファイルシステムの数に依存し、実行ごとに変更することができます。 | このプラグインから返されるモジュール数は、設定したファイルシステムの数に依存し、実行ごとに変更することができます。 | ||
+ | |||
+ | The XML fragment is added to the general XML generated by the software agent and is sent to the Pandora FMS server to be processed by the **Data Server**. | ||
この XML がソフトウエアエージェントが生成する全体の XML に追加され、Pandora サーバへ送信され、**データサーバ** にて処理されます。 | この 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 Software Agent requires a line in this file with the **correct path** of the plugin. | ||
ソフトウエアエージェントでは、プラグインの **正しいパス** がこのファイル内に書かれている必要があります。 | ソフトウエアエージェントでは、プラグインの **正しいパス** がこのファイル内に書かれている必要があります。 | ||
+ | |||
+ | Example: | ||
例: | 例: | ||
- | module_plugin / | + | <file conf / |
+ | module_plugin / | ||
- | **MyMonitor.pl** はエージェントプラグインで、**MyMonitor.conf** は引数として渡される設定ファイルです。また、**MyMonitor.err** はプラグインを実行した場合に出力されるエラーを書き込むファイルです。 | + | </ |
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | <wrap #ks3_2 /> | ||
==== pandora_agent_daemon の再起動 ==== | ==== 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. | + | The Software Agent will run the plugins every 5 minutes |
ソフトウエアエージェントは 5分ごとにプラグインを実行します。次回の実行まで待てない場合は、コマンドラインからソフトウエアエージェントを再起動します。 | ソフトウエアエージェントは 5分ごとにプラグインを実行します。次回の実行まで待てない場合は、コマンドラインからソフトウエアエージェントを再起動します。 | ||
- | 例: | + | <code bash> |
+ | systemctl restart pandora_agent_daemon | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | <wrap #ks3_3 /> | ||
- | / | ||
==== プラグインのパーミッションの確認 ==== | ==== プラグインのパーミッションの確認 ==== | ||
+ | |||
+ | The plugin and the files to be used **must have the correct** read, write and execute permissions. | ||
プラグインおよび利用するファイルは、リード、ライト、実行の**権限を正しく設定する**必要があります。Unix であれば、次のようにします。 | プラグインおよび利用するファイルは、リード、ライト、実行の**権限を正しく設定する**必要があります。Unix であれば、次のようにします。 | ||
- | | + | <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**. |
- | < | + | エラーを見つける簡単な方法は、コマンドラインで**プラグインを手動実行**することです。注意して**出力結果を確認**してください。 |
- | popeye:/ | + | |
- | < | + | <wrap # |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
- | </code> | + | |
==== XMLの確認 ==== | ==== XMLの確認 ==== | ||
- | The XML that prints | + | The XML produced by the plugin **must have a valid XML syntax**. To check you can follow |
- | The XML also **needs to be well formed**. To check if it is, you could follow | + | |
- | プラグインが出力する | + | プラグインによって生成された |
- | XML はまた、**正しく整形されている必要があります**。それを確認するためには、コマンドラインから次の手順を実行します。 | + | |
- | - Create an XML document with the plugin output: | + | - Create an XML document with the plugin output: |
- | - Check the XML document: | + | - Checking |
- | - プラグインの出力を xml ファイルに落とします。: | + | - プラグインの出力を xml ファイルに落とします。: |
- | - xml ファイルの書式をチェックします。: | + | - xml ファイルの書式をチェックします。: |
+ | |||
+ | <wrap # | ||
==== デバッグモード ==== | ==== デバッグモード ==== | ||
- | //pandora_agent.conf// ファイル内で、// | + | You can 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 extension '' | ||
+ | |||
+ | ファイル名は、エージェント名と | ||
+ | |||
+ | <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: | ||