| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン |
| ja:documentation:pandorafms:technical_reference:02_annex_externalapi [2025/07/21 07:33] – [get locate_agent] junichi | ja:documentation:pandorafms:technical_reference:02_annex_externalapi [2025/11/29 05:47] (現在) – [アクセス元による] junichi |
|---|
| * <wrap :en>**Users**</wrap>: For [[en:documentation:pandorafms:management_and_operation:11_managing_and_administration#ks1_1|manage PFMS users]]. | * <wrap :en>**Users**</wrap>: For [[en:documentation:pandorafms:management_and_operation:11_managing_and_administration#ks1_1|manage PFMS users]]. |
| * <wrap :en>**PandoraITSM**</wrap>: To manage the [[en:documentation:pandorafms:management_and_operation:04_inventory|inventory]] provided by [[en:documentation:10_pandora_itsm:20_pandora_itsm_pandorafms|Pandora ITSM]] to PFMS. | * <wrap :en>**PandoraITSM**</wrap>: To manage the [[en:documentation:pandorafms:management_and_operation:04_inventory|inventory]] provided by [[en:documentation:10_pandora_itsm:20_pandora_itsm_pandorafms|Pandora ITSM]] to PFMS. |
| | * <wrap :en>**API Endpoints of SIEM (Security Information and Event Management)**</wrap>: To execute [[:en:documentation:pandorafms:cybersecurity:21_siem|actions and configurations in SIEM]]. |
| | * <wrap :en>**MONITORING API Endpoints for add data modules**</wrap>: Starting with version 785, new endpoint for [[#ks1_8|adding module data to Pandora FMS]]. |
| |
| * <wrap :ja>**認証(Authentication)**</wrap>: API アクセス トークンを管理します (最初のトークンは常に [[#ks1_3|Web コンソール経由で]] 生成します)。 | * <wrap :ja>**認証(Authentication)**</wrap>: API アクセス トークンを管理します (最初のトークンは常に [[#ks1_3|Web コンソール経由で]] 生成します)。 |
| * <wrap :ja>**ユーザ(Users)**</wrap>: [[ja:documentation:pandorafms:management_and_operation:11_managing_and_administration#ks1_1|PFMS ユーザを管理します]]。 | * <wrap :ja>**ユーザ(Users)**</wrap>: [[ja:documentation:pandorafms:management_and_operation:11_managing_and_administration#ks1_1|PFMS ユーザを管理します]]。 |
| * <wrap :en>**PandoraITSM**</wrap>: [[en:documentation:10_pandora_itsm:20_pandora_itsm_pandorafms|Pandora ITSM]] によって PFMS に提供される [[ja:documentation:pandorafms:management_and_operation:04_inventory|インベントリ]] を管理します。 | * <wrap :en>**PandoraITSM**</wrap>: [[en:documentation:10_pandora_itsm:20_pandora_itsm_pandorafms|Pandora ITSM]] によって PFMS に提供される [[ja:documentation:pandorafms:management_and_operation:04_inventory|インベントリ]] を管理します。 |
| | * <wrap :ja>**SIEM (セキュリティ情報イベント管理) の API エンドポイント**</wrap>: [[:ja:documentation:pandorafms:cybersecurity:21_siem|SIEM のアクションと設定]] を実行します。 |
| | * <wrap :ja>**データモジュール追加用の監視 API エンドポイント**</wrap>: バージョン 785 以降、[[#ks1_8|Pandora FMS にモジュールデータを追加]] するための新しいエンドポイントが追加されました。 |
| |
| <wrap #ks1_5 /> | <wrap #ks1_5 /> |
| <WRAP center round info 90%> | <WRAP center round info 90%> |
| |
| Through the [[#ks1_4|web interface]] you can generate and copy the necessary codes, with their parameters and mandatory fields, of all the commands of this PFMS API 2.0. See [[#ks1_6|schemas]] for more details. | Through the [[#ks1_4|web interface]] you can generate and copy the necessary codes, with their parameters and required fields, of all the commands of this PFMS API 2.0. See [[#ks1_6|schemas]] for more details. |
| |
| </WRAP> | </WRAP> |
| <WRAP center round tip 90%> | <WRAP center round tip 90%> |
| |
| In this schema, the mandatory parameters have the property set to ''nullable: false''. | In this schema, the required parameters have the property set to ''nullable: false''. |
| |
| </WRAP> | </WRAP> |
| |
| {{ wiki:pfms-api_2-ping.png }} | {{ wiki:pfms-api_2-ping.png }} |
| | |
| | <wrap #ks1_8 /> |
| | |
| | ==== モジュールデータを追加するための API エンドポイント ==== |
| | |
| | Starting with version 785, and as an alternative to [[:en:documentation:pandorafms:technical_reference:09_tentacle|the Tentacle protocol]], there is an option to send checks through PFMS API 2.0. |
| | |
| | バージョン 785 以降では、[[:ja:documentation:pandorafms:technical_reference:09_tentacle|Tentacle プロトコル]] の代替として、PFMS API 2.0 を介して監視データを送信するオプションがあります。 |
| | |
| | All documentation may be checked using the [[#ks1_6|Documentation outline]], which describes the general and most important features here: |
| | |
| | すべてのドキュメントは、[[#ks1_6|ドキュメントの概要]] を使用して確認できます。ここでは、一般的な機能と最も重要な機能について説明します。 |
| | |
| | * The body consists of an array of agents with their corresponding modules. |
| | * If the agent does not exist, a new one will be created; if it already exists, it will be updated. |
| | * Each position in the array contains the same modules processed by the [[:en:documentation:pandorafms:introduction:02_architecture#data_server|Data Server]], respecting exactly the same fields. **Therefore, any field used in the Data Server may be used here.** |
| | * Data that may be sent in the API: |
| | |
| | * 本体は、エージェントとそれに対応するモジュールの配列で構成されます。 |
| | * エージェントが存在しない場合は新規に作成され、既に存在する場合は更新されます。 |
| | * 配列内の各位置には、[[:ja:documentation:pandorafms:introduction:02_architecture#data_server|データサーバ]] で処理されるモジュールと同じモジュールが含まれ、同じフィールドが保持されます。**したがって、データサーバで使用されるフィールドはすべてここで使用できます。** |
| | * API で送信できるデータ: |
| | |
| | ^ Command ^ Description ^ |
| | | ''agent_data'' |Agent data, such as name, operating system ID, operating system version, update interval, address, and description. | |
| | | ''module_data'' |Array of modules with their name, type, and data. You may also specify a dataList to add multiple data values at once. | |
| | | ''inventory_data'' |Agent inventory data. | |
| | | ''log_data'' |Agent log data. | |
| | | ''trap_data'' |SNMP trap data from the agent. | |
| | | ''events'' |Event in base64. | |
| | | ''discovery_data'' |Agent discovery data in base64. | |
| | | ''cmd_data'' |Agent command data. | |
| | |
| | ^ コマンド ^ 説明 ^ |
| | | ''agent_data'' |名前、オペレーティングシステム ID、オペレーティングシステムのバージョン、更新間隔、アドレス、説明などのエージェントデータ。 | |
| | | ''module_data'' |モジュールの名前、タイプ、データを含む配列。dataList を指定して複数のデータ値を一度に追加することもできます。 | |
| | | ''inventory_data'' |エージェントインベントリデータ。 | |
| | | ''log_data'' |エージェントログデータ。 | |
| | | ''trap_data'' |エージェントからの SNMP トラップデータ。 | |
| | | ''events'' |base64 でのイベント。 | |
| | | ''discovery_data'' |base64 でのエージェント自動検出データ。 | |
| | | ''cmd_data'' |エージェントコマンドデータ。 | |
| |
| <wrap #ks2 /> | <wrap #ks2 /> |
| === アクセス元による === | === アクセス元による === |
| |
| At the moment, security is based on an IP addresses list that will have [[:es:documentation:04_using:12_console_setup#general_setup|access to the tool]]. | At the moment, security is based on an IP addresses list that will have [[:en:documentation:pandorafms:management_and_operation:12_console_setup#ks1_1|access to the tool]]. |
| |
| 現時点では、セキュリティは[[:ja:documentation:04_using:12_console_setup#一般設定|アクセスする IP アドレスリスト]]に基づいています。 | 現時点では、セキュリティは[[:ja:documentation:pandorafms:management_and_operation:12_console_setup#ks1_1|アクセスする IP アドレスリスト]]に基づいています。 |
| |
| {{ :wiki:screnshot_of_api_acl_list_setup.png }} | {{ :wiki:screnshot_of_api_acl_list_setup.png }} |
| |
| * [[:en:documentation:08_technical_reference:02_annex_externalapi#by_origin|Filtering by IP address]]: Only the listed IP addresses will be able to access the API. | * [[:en:documentation:08_technical_reference:02_annex_externalapi#by_origin|Filtering by IP address]]: Only the listed IP addresses will be able to access the API. |
| * [[:en:documentation:08_technical_reference:02_annex_externalapi#by_api_password|Global password for the API]]: If defined, it is mandatory to use it in all calls. | * [[:en:documentation:08_technical_reference:02_annex_externalapi#by_api_password|Global password for the API]]: If defined, it is required to use it in all calls. |
| * [[:en:documentation:08_technical_reference:02_annex_externalapi#by_user_credentials|User and password]]: User of type [[:en:documentation:01_understanding:03_glossary#superadmin|superadmin]] and valid in the Web Console. Your permissions will be used for each requested operation. **From version NG 768 onwards** it is also possible to access by [[:en:documentation:08_technical_reference:02_annex_externalapi#authentication_by_bearer_token|bearer token]]. | * [[:en:documentation:08_technical_reference:02_annex_externalapi#by_user_credentials|User and password]]: User of type [[:en:documentation:01_understanding:03_glossary#superadmin|superadmin]] and valid in the Web Console. Your permissions will be used for each requested operation. **From version NG 768 onwards** it is also possible to access by [[:en:documentation:08_technical_reference:02_annex_externalapi#authentication_by_bearer_token|bearer token]]. |
| |
| * ''op=set'' (required). | * ''op=set'' (required). |
| * ''op2=create_plugin_module'' (required). | * ''op2=create_plugin_module'' (required). |
| * ''id=''< agent_name > (required). It should be an agent name. | * ''id=''< agent_name > (required) it should be an agent name. |
| * ''other=''< serialized parameters > (required). They are module configuration and data, serialized in the following order: | * ''other=''< serialized parameters > (required). They are module configuration and data, serialized in the following order: |
| |
| |
| 例 ([[#pandora_fms_外部_api|書式を参照]]): | 例 ([[#pandora_fms_外部_api|書式を参照]]): |
| | |
| | * Example without macro: |
| | |
| | * マクロ無しの例: |
| |
| <code bash> | <code bash> |
| …/include/api.php?op=set&op2=create_plugin_module&id=example&other=prueba|0|1|2|0|0||0|0||0|0|127.0.0.1|0||0|300|0|0|0|0|plugin%20module%20from%20api|4|2|admin|pass|-p%20max&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora | …/include/api.php?op=set&op2=create_plugin_module&id=pandora.internals&other=module_plugin_test_|0|1|2|0|0||0|0||0|0|127.0.0.1|0||0|300|0|0|0|0|plugin%20module%20from%20api|4|2|admin|pass|-p%20max||||||||||||2001&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora |
| | |
| | </code> |
| | |
| | * Example with macro: |
| | |
| | * マクロありの例 |
| | |
| | To use the **DNS plugin** that is installed by default in PFMS (**Management → Servers → Plugins** menu ) and whose identifier is ''2'', the **dig** tool (included in **dnsutils**) must be installed in the PFMS server and **//connected to the internet//**. |
| | |
| | PFMS にデフォルトでインストールされ (**管理(Management) → サーバ(Servers) → プラグイン(Plugins)** メニュー)、識別子が ''2'' である **DNS プラグイン** を使用するには、**dig** ツール (**dnsutils** に含まれています) を PFMS サーバにインストールし、**//インターネットに接続//** する必要があります。 |
| | |
| | It can be tested by executing in a command terminal on the PFMS server the following statement (it should return ''1'' for a successful result, ''0'' if domain/address is not matched and ''-1'' for any error that prevents it from working): |
| | |
| | これは、PFMS サーバのコマンドターミナルで次のステートメントを実行することによってテストできます (成功した場合は ''1''、ドメイン/アドレスが一致しない場合は ''0''、動作を妨げるエラーの場合は ''-1'' が返されます)。 |
| | |
| | <code bash> |
| | /usr/share/pandora_server/util/plugin/dns_plugin.sh -d pandorafms.com -i 172.66.40.150 -s 8.8.8.8 |
| |
| </code> | </code> |
| JSON ドキュメントの内容は、次のプロパティを持つ複数のオブジェクトで構成されるオ ブジェクトである必要があります。 | JSON ドキュメントの内容は、次のプロパティを持つ複数のオブジェクトで構成されるオ ブジェクトである必要があります。 |
| |
| * ''macro'': Macro name. It should be //_field1_//, //_field2_//, …, //_fieldN_//. | * ''macro'': Name of the macro. Must be //_field1_//, //_field2_//, …, //_fieldN_//. |
| * ''desc'': Descriptive macro name. | * ''desc'': Descriptive name of the macro. |
| * ''help'': Macro description. | * ''help'': Macro detailed description. |
| * ''value'': Macro value. | * ''value'': Macro value. |
| * ''hide'': Set to ''1'' to hide the macro value (useful for storing passwords). | * ''hide'': Set to ''1'' to hide the macro value (useful for storing passwords). |
| |
| * ''macro'': マクロ名。//_field1_//, //_field2_//, …, //_fieldN_// である必要があります。 | * ''macro'': マクロ名。//_field1_//, //_field2_//, …, //_fieldN_// である必要があります。 |
| * ''hide'': マクロ値を非表示にするには、''1'' に設定します (パスワードの保存に役立ちます)。 | * ''hide'': マクロ値を非表示にするには、''1'' に設定します (パスワードの保存に役立ちます)。 |
| |
| Example: | For this example it will be verified that the domain ''pandorafms.com'' uses at least one IP address ''172.66.40.150'': |
| |
| 例: | この例では、ドメイン ''pandorafms.com'' が少なくとも 1 つの IP アドレス ''172.66.40.150'' を使用していることが検証されます。 |
| | |
| <file> | |
| |
| | <file | plugin_fields.json> |
| { | { |
| "1": { | "1": { |
| "macro": "_field1_", | "macro": "_field1_", |
| "desc": "Target IP", | "desc": "Target IP", |
| "help": "", | "help": "", |
| "value": "192.168.0.1", | "value": "172.66.40.150" |
| "hide": "" | }, |
| }, | "2": { |
| "2": { | "macro": "_field2_", |
| "macro": "_field2_", | "desc": "Domain to check", |
| "desc": "Port", | "help": "For example pandorafms.com", |
| "help": "", | "value": "pandorafms.com" |
| "value": "80", | }, |
| "hide": "" | "3": { |
| } | "macro": "_field3_", |
| | "desc": "DNS Server to check", |
| | "help": "For example 8.8.8.8", |
| | "value": "8.8.8.8" |
| | }, |
| | "4": { |
| | "macro": "_field4_", |
| | "desc": "Optional parameters", |
| | "help": "", |
| | "value": "" |
| | } |
| } | } |
| |
| </file> | </file> |
| | |
| | The previous file must be converted to base 64 with: |
| | |
| | 前のファイルは次のようにして Base 64 に変換する必要があります。 |
| | |
| | <code bash> |
| | PLUGIN_FIELDS=$(base64 plugin_fields.json -w 0) |
| | |
| | </code> |
| | |
| | And the previous variable should be used in a complete URL to add a module in the default agent, ''pandora.internals'', in the module group ''Networking'' and with critical inverse to ''0'': |
| | |
| | また、前の変数は、完全な URL で使用して、デフォルトエージェントのモジュール ''pandora.internals'' をモジュールグループ ''Networking'' に追加し、障害値を ''0'' に反転する必要があります。 |
| | |
| | <code bash> |
| | curl '…/include/api.php?op=set&op2=create_plugin_module&id=pandora.internals&other=dns_module||2|2||||1|||||pandorafms.com|0||0|300|0|0|0|0|dns_plugin|2|||||'$PLUGIN_FIELDS'|W10=|||||1|||||&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora' |
| | |
| | </code> |
| |
| == set create_data_module == | == set create_data_module == |
| - < min > | - < min > |
| - < max > | - < max > |
| - < post_process > ( {{:wiki:icono-modulo-enterprise.png?23x23|Enterprise version}}only for [[:en:documentation:pandorafms:installation:05_configuration_agents#module_postprocess|Software Agents]] with remote configuration enabled). | - < post_process > ( Only for [[:en:documentation:pandorafms:installation:05_configuration_agents#module_postprocess|EndPoints]] with remote configuration enabled). |
| - < [[:en:documentation:pandorafms:installation:05_configuration_agents#module_interval|module_interval]] > | - < [[:en:documentation:pandorafms:installation:05_configuration_agents#module_interval|module_interval]] > |
| - < min_warning > | - < min_warning > |
| - < 最小 > | - < 最小 > |
| - < 最大 > | - < 最大 > |
| - < 保存倍率 > ( {{:wiki:icono-modulo-enterprise.png?23x23|Enterprise 版}}([[:ja:documentation:pandorafms:installation:05_configuration_agents#module_postprocess|ソフトウエアエージェント]] でリモート設定が有効な場合のみ) | - < 保存倍率 > ([[:ja:documentation:pandorafms:installation:05_configuration_agents#module_postprocess|エンドポイント]] でリモート設定が有効な場合のみ) |
| - < [[:ja:documentation:pandorafms:installation:05_configuration_agents#module_interval|モジュールの間隔]] > | - < [[:ja:documentation:pandorafms:installation:05_configuration_agents#module_interval|モジュールの間隔]] > |
| - < 警告の最小値 > | - < 警告の最小値 > |
| |
| * op=set (required) | * op=set (required) |
| * op2=add_agent_policy_by_id (mandatory) | * op2=add_agent_policy_by_id (required) |
| * id=<id_policy> (required). It must be a policy Id. | * id=<id_policy> (required). It must be a policy Id. |
| * other=<serialized parameters> (required). These are agent configuration and data, serialized in the following order: | * other=<serialized parameters> (required). These are agent configuration and data, serialized in the following order: |
| |
| { | { |
| name: <value>, // mandatory | name: <value>, // required |
| id_module: <value>, // mandatory | id_module: <value>, // required |
| id_tipo_modulo: <value>, // mandatory | id_tipo_modulo: <value>, // required |
| configuration_data: <value>, | configuration_data: <value>, |
| description: <value>, | description: <value>, |
| |
| { | { |
| name: <value>, // mandatory | name: <value>, // required |
| id_module: <value>, // mandatory | id_module: <value>, // required |
| id_tipo_modulo: <value>, // mandatory | id_tipo_modulo: <value>, // required |
| configuration_data: <value>, | configuration_data: <value>, |
| description: <value>, | description: <value>, |