ja:documentation:08_technical_reference:05_anexo_server_plugins_development

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
ja:documentation:08_technical_reference:05_anexo_server_plugins_development [2021/06/17 13:40] – 作成 junichija:documentation:08_technical_reference:05_anexo_server_plugins_development [2022/12/02 06:09] – [ヘッダー/定義] junichi
行 7: 行 7:
  
 ==== サーバプラグインの基本機能 ==== ==== サーバプラグインの基本機能 ====
 +
 +{{  :wiki:pfms-servers-plugins.png?500x350  |サーバ(Servers) -> プラグイン(Plugins)}}
 +
 サーバプラグインは、Pandora FMS プラグインサーバにより実行されるため、次に示す特別な機能を備えている必要があります。 サーバプラグインは、Pandora FMS プラグインサーバにより実行されるため、次に示す特別な機能を備えている必要があります。
  
行 16: 行 19:
  
   * プラグインの実行に必要な依存ソフトウエアは、Pandora サーバを実行するのと同一のマシンにインストールされている必要があります。   * プラグインの実行に必要な依存ソフトウエアは、Pandora サーバを実行するのと同一のマシンにインストールされている必要があります。
 +
 +You may find more information about monitoring with remote server plugins [[:en:documentation:03_monitoring:03_remote_monitoring#monitoring_with_server_remote_plugins|here]]. There you will find simple exambles and how the modules and agents they contain work. In this article server plugin creation is analyzed in depth.
 +
 +リモートサーバプラグインを使った監視に関する詳細は、[[:ja:documentation:03_monitoring:03_remote_monitoring#monitoring_with_server_remote_plugins|こちら]]を確認してください。そこには、簡単な例と、モジュールとエージェントがどのように機能するかが記載されています。 この記事では、サーバプラグインの作成について詳しく示します。 
  
 ==== サーバプラグイン開発 ==== ==== サーバプラグイン開発 ====
行 121: 行 128:
 ==== プラグインの手動登録 ==== ==== プラグインの手動登録 ====
  
-{{ wiki:Registro_manual_plugin.png?750 }}+{{  :wiki:pfms-server-plugins-manual_plugin_registration_1.png  }}
  
  
行 137: 行 144:
  
 プラグインの実行時間制限です。 この時間内に応答がない場合は、モジュールを不明として処理し、その値は更新されません。 プラグインを使用してモニタリングを実装する場合、これは非常に重要な要素です。そのため、プラグインの実行にかかる時間がこの数値より大きいと値を取得できません。この値は、プラグインとして使用されるスクリプトや実行ファイルが値を返すまでにかかる時間よりも常に大きくなければなりません。 何も設定しない場合は、plugin_timeout の設定値が使われます。 プラグインの実行時間制限です。 この時間内に応答がない場合は、モジュールを不明として処理し、その値は更新されません。 プラグインを使用してモニタリングを実装する場合、これは非常に重要な要素です。そのため、プラグインの実行にかかる時間がこの数値より大きいと値を取得できません。この値は、プラグインとして使用されるスクリプトや実行ファイルが値を返すまでにかかる時間よりも常に大きくなければなりません。 何も設定しない場合は、plugin_timeout の設定値が使われます。
 +
 +{{  :wiki:pfms-server-plugins-manual_plugin_registration_2.png  }}
  
   * **プラグインコマンド(Plug-in command)**   * **プラグインコマンド(Plug-in command)**
行 147: 行 156:
  
 コマンドのパラメータ文字列で、コマンドの引数としてしていするものです。パラメータフィールドには、_field1_ _field2_ ... _fieldN_ といったマクロが使えます。 コマンドのパラメータ文字列で、コマンドの引数としてしていするものです。パラメータフィールドには、_field1_ _field2_ ... _fieldN_ といったマクロが使えます。
 +
 +{{  :wiki:pfms-server-plugins-manual_plugin_registration_3.png  }}
  
   * **パラメータマクロ(Parameters macros)**   * **パラメータマクロ(Parameters macros)**
行 152: 行 163:
 プラグインパラメータフィールドで使うマクロを追加することができます。このマクロは、モジュール設定の通常のテキストフィールドとして表示されます。 プラグインパラメータフィールドで使うマクロを追加することができます。このマクロは、モジュール設定の通常のテキストフィールドとして表示されます。
  
 +==== プラグインマクロ ====
 +
 +Conside the **DNS Plugin** installed by default in Pandora FMS server.
 +
 +Pandora FMS サーバにデフォルトでインストールされている **DNSプラグイン** について考えてみます。 
 +
 +{{  :wiki:pfms-plugins-registered-dns-plugin.png?700  }}
 +
 +Said plugin, [[:en:documentation:03_monitoring:03_remote_monitoring#example_3_-_dns_server_remote_plug_in|among other uses]], allows for a web domain and its corresponding IP to be checked by a DNS server.
 +
 +[[:ja:documentation:03_monitoring:03_remote_monitoring#例3dns_サーバリモートプラグイン|このプラグイン]]を使用すると、Webドメインとそれに対応する IP を DNS サーバでチェックできます。 
 +
 +  * ''-i '': Known domain IP address.
 +  * ''-d '': Corresponding web domain.
 +  * ''-s '': DNS server for checking. Knowing these three parameters, proceed to [[:en:documentation:08_technical_reference:05_anexo_server_plugins_development#plugin_manual_registration|manually register]] a new plugin, add the name“New DNS Plugin” and in the description copy the previous summary and **in addition**  indicate that it is necessary for the Module to retrive a false value (0) or true (1) for monitoring. This type of data is also known as boolean and in Pandora FMS it is called ''generic_proc ''.
 +In the section **Macro parameters **add three macro fields **field1**, **field2**  and **field3**.
 +
 +  * ''-i '': 既知のドメインの IP アドレス。
 +  * ''-d '': 対応する Web ドメイン。
 +  * ''-s '': チェックする DNS サーバ。
 +
 +これらの3つのパラメータで、新しいプラグインの[[:ja:documentation:08_technical_reference:05_anexo_server_plugins_development#プラグインの手動登録|手動登録]]に進み、"New DNS Plugin"
 +という名前で、説明に前の概要をコピーします。**さらに** 監視のためにモジュールが false(0) または true(1) を取得する必要があることを示します。 このタイプのデータはブール値とも呼ばれ、Pandora FMS では ''generic_proc'' と呼ばれます。
 +セクション **マクロパラメータ(Macro parameters)** に、3つのマクロフィールド **field1**, **field2** および **field3** を追加します。 
 +
 +For ''_field1_''  add the description according to the ''-i''  parameter and so on for parameters ''-d ''  and ''-s ''. Leave the values by **default**  empty, type in in the **Help **of each one of them the text you wish.
 +
 +'' _field1_'' では、パラメーター ''-i'' に関する説明を追加します。同様に、''-d'' および ''-s'' の説明を追加します。 **デフォルト(default)** の値を空のままにし、それぞれの **ヘルプ(Help)** に必要なテキストを入力します。 
 +
 +In the text box **Plugin command**  type in:
 +
 +テキストボックスに **プラグインコマンド** を入力します。
 +<code>
 +
 +/usr/share/pandora_server/util/plugin/dns_plugin.sh
 +
 +</code>
 +
 +In the **Plugin parameters**  text box, type in:
 +
 +**プラグインパラメータ(Plugin parameters)** ボックスに入力します。
 +
 +<code>
 +-i _field1_ -d _field2_ -s _field3_
 +
 +</code>
 +
 +[[http://dokuwiki.pandorafms.com/dokuwiki/_detail/es/documentation/08_technical_reference/pfms-servers-plugins-command-parameters.png?id=es:documentation:08_technical_reference:05_anexo_server_plugins_development|{{http://dokuwiki.pandorafms.com/dokuwiki/_media/es/documentation/08_technical_reference/pfms-servers-plugins-command-parameters.png?nolink&600}}]]
 +
 +<WRAP center round box 60%> \\ When this plugin is used within the module, the **DNS Plugin**  will be executed replacing each of the fields by the parameters written on the Module. \\ </WRAP>
 +
 +<WRAP center round box 60%> \\ このプラグインをモジュールで利用する際には、それぞれのフィールドはモジュールのパラメータに置き換えられ **DNS Plugin** が実行されます。 \\ </WRAP>
 +
 +<code>
 +
 +/usr/share/pandora_server/util/plugin/dns_plugin.sh -i _field1_ -d _field2_ -s _fiel
 +
 +</code>
 +
 +=== 動作 ===
 +
 +Macros work like **_field1_**, **_field2_**, (…), **_fieldN**_, but they host special values both from the Modules and the Agents those Modules contain.
 +
 +マクロは **_field1_**, **_field2_**, (…), **_fieldN_** のように機能しますが、モジュールとそれらのモジュールを含むエージェント両方からの特別な値を利用します。 
 +
 +Going back to the example of the previous section where the default values of the **_fieldN_** were left blank. Edit it for the default value of ''_field2_'' and add the macro ''_module_''.
 +
 +**_fieldN_** のデフォルト値が空白のままになっている前の章の例に戻ります。''_field2_'' のデフォルト値を編集し、マクロ ''_module_'' を追加します。 
 +
 +<WRAP center round important 60%>\\
 +If any module or component is using that server plugin, a lock icon that cannot be updated will appear.\\
 +</WRAP>
 +
 +<WRAP center round important 60%>\\
 +モジュールまたはコンポーネントがそのサーバプラグインを使用している場合、更新できないロックアイコンが表示されます。\\
 +</WRAP>
 +
 +The ''_module_'' macro returns the Module the plugin uses and will be added to the user or policy when said Module is created. To verify this, create a new Agent called "DNS verify" and a new Module through the option **Create a new plugin server module**:
 +
 +''_module_'' マクロは、プラグインが使用するモジュールを返し、そのモジュールが作成されるときにユーザまたはポリシーに追加されます。 これを確認するには、"DNS verify" と呼ばれる新しいエージェントを作成し、 **プラグインサーバモジュールの新規作成(Create a new plugin server module)** オプションを使用して新しいモジュールを作成します。 
 +
 +{{  :es:documentation:08_technical_reference:pfms-resources-manage_agents-modules-create_new_plugin_server_module.png?700  }}\\
 +Once you are again in the new Module editing form, in **Plugin** select the "New DNS Plugin" list and the ''_module_'' macro will appear like this:
 +
 +{{  :ja:documentation:08_technical_reference:pfms-resources-manage_agents-modules-create_new_plugin_server_module.png?700  }}\\
 +新しいモジュールの編集フォームで、**プラグイン**で "New DNS Plugin" をリストから選択すると、''_module_'' マクロが次のように表示されます。 
 +
 +{{:wiki:pfms-resources-manage_agents-modules-create_new_plugin_server_module_2.png?750}}Rememeber to add that the type of data to be collected must be "Generic boolean" **and for the name of the new Module, just add the web domain whose IP address you are going to verify with a specified DNS server****.** Save it and check it works.
 +
 +{{:wiki:pfms-resources-manage_agents-modules-create_new_plugin_server_module_2.png?750}}
 +
 +収集するデータのタイプは "Generic boolean" である必要があることを忘れないでください。また、 **新しいモジュールの名前、指定した DNS サーバで IP アドレスを確認する Web ドメインを追加します。** 保存して機能することを確認します。 
 +
 +The advantage of this method is that it will have both Modules and Web domains you need to check and they are easily identified in different components (Dashboards, reports, etc.) through its name.
 +
 +この方法の良い点は、モジュールとしてチェックする必要のある Web ドメインがあり、名前によってさまざまなコンポーネント(ダッシュボード、レポートなど)で簡単に識別できることです。 
 +
 +=== マクロ一覧 ===
 +
 +  * ''_agent_''  : Agent alias to be used in the macro. If no alias is assigned, the name of the agent will be used.
 +  * ''_agentalias_''  : Agent alias to be used in the macro.
 +  * ''_agentdescription_''  : Description of the agent to be used in the macro.
 +  * ''_agentstatus_''  : Current status of the Agent when used in the macro.
 +  * ''_agentgroup_''  : Name of the Agent group to be used in the macro.
 +  * ''_agentname_''  : Name of the Agent to be used in the macro (see also ''_agente_''  > ).
 +  * ''_address_''  : Agent adress to be used in the macro.
 +  * ''_module_''  : Name of the Module to be used in the macro.
 +  * ''_modulegroup_''  : Name of the Module group to be used in the macro.
 +  * ''_moduledescription_''  : Description of the module to be used in the macro.
 +  * ''_modulestatus_''  : Status of the module to be used in the macro.
 +  * ''_moduletags_''  : URL associated to the module tags.
 +  * ''_id_module_''  : ID of the module to be used in the macro.
 +  * ''_id_agente_''  : ID of the agent to be used in the macro, useful for building the URL of access to Pandora FMS console.
 +  * ''_id_group''  : ID of the agent group to be used for the macro.
 +  * ''_interval_''  : Interval of the modules execution to be used for the macro.
 +  * ''_target_ip_''  : Target IP address of the module to be used for the macro.
 +  * ''_target_port_''  : Target port of the module to be used for the macro.
 +  * ''_policy_''  : Name of the policy the module belongs to (if it applies).
 +  * ''_plugin_parameters_''  : Plugin parameters of the module to be used in the macro.
 +  * ''_email_tag_''  : Email inboxes associated to the module tags.
 +  * ''_phone_tag_''  : Phone numbers associated to the module tags.
 +  * ''_name_tag_''  : Name of the tags associated to the module for the macro.
 +
 +  * ''_agent_''  : エージェントの別名。別名が割り当てられていない場合は、エージェント名が使用されます。 
 +  * ''_agentalias_''  : エージェントの別名。
 +  * ''_agentdescription_''  : エージェントの説明。
 +  * ''_agentstatus_''  : エージェントの現在の状態。
 +  * ''_agentgroup_''  : エージェントグループ名。
 +  * ''_agentname_''  : エージェント名。(''_agent_'' も参照してください)
 +  * ''_address_''  : エージェントのアドレス。
 +  * ''_module_''  : モジュール名。
 +  * ''_modulegroup_''  : モジュールグループ名。
 +  * ''_moduledescription_''  : モジュールの説明。
 +  * ''_modulestatus_''  : モジュールの状態。
 +  * ''_moduletags_''  : モジュールタグに関連付けられた URL。
 +  * ''_id_module_''  : モジュールの ID。
 +  * ''_id_agente_''  : エージェントの ID。Pandora FMS コンソールへアクセスする URL を生成するのに便利です。
 +  * ''_id_group''  : エージェントグループの ID。
 +  * ''_interval_''  : モジュールの実行間隔。
 +  * ''_target_ip_''  : モジュールのターゲット IP。
 +  * ''_target_port_''  : モジュールのターゲットポート番号。
 +  * ''_policy_''  : モジュールが所属するポリシー名。(適用される場合)
 +  * ''_plugin_parameters_''  : モジュールのプラグインパラメータ。
 +  * ''_email_tag_''  : モジュールタグに関連付けられた Email。
 +  * ''_phone_tag_''  : モジュールタグに関連付けられた電話番号。
 +  * ''_name_tag_''  : モジュールに関連付けられたタグ名。
 ==== PSPZ パッケージ ==== ==== PSPZ パッケージ ====
 === Pandora サーバプラグイン Zip ファイル (.pspz) === === Pandora サーバプラグイン Zip ファイル (.pspz) ===
行 167: 行 324:
 === plugin_definition.ini の構造 === === plugin_definition.ini の構造 ===
 == ヘッダー/定義 == == ヘッダー/定義 ==
-これがオプションセクションを持つ標準的なINIファイルです。 + 
-最初のセクションは最も重要で、セクション名は"plugin_definition"固定です。 +This is a [[https://en.wikipedia.org/wiki/INI_file|classic INI file]] with optional sections. The first section, the most important, is a fixed name section called ''plugin_definition'', and this is an example: 
-以下に例を示します。+ 
 +これがオプションセクションを持つ[[https://en.wikipedia.org/wiki/INI_file|標準的なINIファイル]]です。最初のセクションは最も重要で、セクション名は ''plugin_definition'' 固定です。以下に例を示します。
  
 <code> <code>
行 200: 行 358:
  
 == モジュール定義 / ネットワークコンポーネント == == モジュール定義 / ネットワークコンポーネント ==
-これは動的セクション(セクション名に増加する数値を持つ)として定義され、必要な数だけ作成することができます。ここで定義したモジュール数と同じ値、前のセクションの**total_modules_provided**に設する必要があります。 + 
-もし4個のモジュールがある場合、セクション名はmodule1, module2, module3module4+<WRAP center round important 60%>\\ 
 +Define the same number of modules as those defined in ''total_modules_provided'' from the previous section.\\ 
 +</WRAP> 
 + 
 +<WRAP center round important 60%>\\ 
 +前のセクションの ''total_modules_provided'' で定義したものと同じ数のモジュールを定義します。 \\ 
 +</WRAP> 
 + 
 +If you have for example four modules, the names of those sections must be: ''module1'', ''module2'', ''module3'' and ''module4''
 + 
 +もし4個のモジュールがある場合、セクション名は ''module1''''module2''''module3'' および ''module4''ければいけせん
  
 以下にモジュール定義の例を示します。 以下にモジュール定義の例を示します。
行 332: 行 500:
 </code> </code>
  
-===== 古い PSPZ (Pandora バージョン 4のアップグレード =====+===== 古い PSPZ のアップグレード ===== 
 + 
 +From Pandora FMS version 4, some PSPZ prior to parameter dynamic field creation for plugins and had fixed parameters, **will not work in new versions**. 
 + 
 +Pandora FMS バージョン 4 までサーバプラグインの動的パラメータが無い、パラメータが静的な以前の PSPZ は、 **新しいバージョンの pandora では動作しません。** 
 + 
 +To migrate them, execute them with the appropriate credentials and after carrying out the upgrading process, the following: 
 + 
 +それらを移行するには、適切な権限でアップグレードプロセスを実行した後、次の手順を実行します。  
 + 
 +<code>/usr/share/pandora_server/util/pandora_migrate_plugins.pl <dbname> <dbhost> <dbuser> <dbpass> 
 + 
 + 
 +</code>
  
-サーバプラグインの動的パラメータが無い、パラメータが静的な以前の PSPZ は、新しいバージョンの pandora では動作しません。これを修正する手順は以下にあります。+Find more information about major and minor version update in [[https://prewebs.pandorafms.com/manual/en/documentation/02_installation/02_annex_upgrade|this link]].
  
-[[:ja:documentation:02_installation:02_anexo_upgrade#.E3.83.97.E3.83.A9.E3.82.B0.E3.82.A4.E3.83.B3|以前のバージョンからのアップグレード → メジャーバージョンのアップデート → バージョン 4.x から 5.0 へのアップデート → プラグイン]]+メジャーおよびマイナーバージョンのアップデートに関する詳細は、[[:ja:documentation:02_installation:02_anexo_upgrade|こちら]]を参照してください。