差分
このページの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/02/26 02:38] (現在) – [pandora_agent_daemon の再起動] 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 software agent is installed. | ||
+ | * All dependencies or software needed to run the plugin must be available or installed in the same machine that runs Pandora | ||
+ | * それぞれのプラグインの実行では、一つまたは複数のモジュールの値を返します。出力は後述する XML フォーマットである必要があります。 | ||
+ | * ローカルマシンのリソースおよび、リモートで他のマシンのリソースの両方にアクセスすることができます。 | ||
+ | * Pandora ソフトウエアエージェントがインストールされている OS でサポートしている、任意のプログラミング言語を利用することができます。 | ||
* プラグインを実行するために必要な依存プログラムは、Pandora ソフトウエアエージェントを実行するのと同じマシンにインストールされている必要があります。 | * プラグインを実行するために必要な依存プログラムは、Pandora ソフトウエアエージェントを実行するのと同じマシンにインストールされている必要があります。 | ||
+ | |||
+ | 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. | ||
このプラグインから返されるモジュール数は、設定したファイルシステムの数に依存し、実行ごとに変更することができます。 | このプラグインから返されるモジュール数は、設定したファイルシステムの数に依存し、実行ごとに変更することができます。 | ||
+ | |||
+ | 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** はプラグインを実行した場合に出力されるエラーを書き込むファイルです。 | + | </ |
- | === 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. | + | '' |
+ | |||
+ | <wrap #ks3_2 /> | ||
+ | |||
+ | ==== pandora_agent_daemon の再起動 ==== | ||
+ | |||
+ | The Software Agent will run the plugins every 5 minutes | ||
ソフトウエアエージェントは 5分ごとにプラグインを実行します。次回の実行まで待てない場合は、コマンドラインからソフトウエアエージェントを再起動します。 | ソフトウエアエージェントは 5分ごとにプラグインを実行します。次回の実行まで待てない場合は、コマンドラインからソフトウエアエージェントを再起動します。 | ||
- | 例: | + | <code bash> |
+ | systemctl restart pandora_agent_daemon | ||
- | / | ||
- | === プラグインのパーミッションの確認 === | + | </ |
- | プラグインおよび利用するファイルは、リード、ライト、実行の**権限を正しく設定する**必要があります。Unix であれば、次のようにします。 | + | |
- | chmod 755 <プラグインファイル> | + | <wrap #ks3_3 /> |
- | === 出力の確認 === | ||
- | エラーを見つける簡単な方法は、コマンドラインで**プラグインを手動実行**することです。注意して**出力結果を確認**してください。例えば、次のように実行します。 | ||
- | < | + | ==== プラグインのパーミッションの確認 ==== |
- | popeye:/ | + | |
- | < | + | The plugin and the files to be used **must have the correct** read, write and execute permissions. |
- | < | + | |
- | < | + | プラグインおよび利用するファイルは、リード、ライト、実行の**権限を正しく設定する**必要があります。Unix であれば、次のようにします。 |
- | <data>< | + | |
- | <description> | + | <code bash> |
- | </ | + | chmod 755 < plugin_path |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | </ | + | |
</ | </ | ||
- | === XMLの確認 === | + | <wrap #ks3_4 /> |
- | 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: // | + | A better way to find the errors is to **run the plugin |
- | - Check the XML document: //xmllint Plugin.xml// | + | |
- | - プラグインの出力を xml ファイルに落とします。: // | + | エラーを見つける簡単な方法は、コマンドラインで**プラグインを手動実行**することです。注意して**出力結果を確認**してください。 |
- | - xml ファイルの書式をチェックします。: //xmllint Plugin.xml// | + | |
- | === デバッグモード === | + | <wrap # |
- | // | + | |
- | ファイル名は、エージェント名と | + | ==== 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 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: | ||