====== API Externa ====== {{indexmenu_n>2}} ===== API Externa de Pandora FMS ===== La API externa de Pandora FMS se utiliza haciendo llamadas remotas (vía HTTP o HTTPS) sobre el fichero ''/include/api.php''. Este es el método que se ha definido en Pandora FMS para integrar aplicaciones de terceros con **Pandora FMS**. Básicamente consiste en un llamada con los parámetros formateados para recibir un valor o una lista de valores que después de su aplicación usará para realizar operaciones. Una llamada al API es tan fácil como: http:///include/api.php El API sólo puede recibir los siguientes parámetros (''< parameters >''): * ''op'' (obligatorio): Es el primer parámetro. Especifica la naturaleza de la operación que puede ser ''get'' o set o ''help'': * ''get'': Devuelve un valor o valores * ''set'': Envía un valor o valores * ''help'': Devuelve una pequeña ayuda de las llamadas * ''op2'' (obligatorio): La llamada en sí con un nombre explicativo de sobre qué actúa. * ''id'' (//depende del comando//): Primer parámetro de la llamada. * ''id2'' (//depende del comando//): Segundo parámetro de la llamada. * ''other'' (//depende del comando//): Tercer parámetro de la llamada, algunas veces puede ser un lista de valores serializados. * ''other_mode'' (//depende del comando//): Formato de la serialización. Lista de valores posibles: * ''url_encode'': El valor de ''other'' es un alfanumérico formateado como [[https://es.wikipedia.org/wiki/Codigo_porciento|UrlEncode]]. * ''url_encode_separator_'':El valor será una lista de valores serializados con el carácter separador por ejemplo: ...other=pears|melons|watermelon&other_mode=url_encode_separator_| Usted puede utilizar cualquier separador, en esta documentación el caracter ''|'' (''%7C'' //percent-encoded//) es usado de manera preferente. Véase también cómo trabaja el [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_checker|API checker]]. * ''returnType'' (//depende del comando//): Formato de retorno del valor o valores. Alguno de los valores disponibles actuales son: * ''string'': Devuelve el valor tal cual como un alfanumérico. * ''csv'': Devuelve los valores como un CSV separado por defecto con el carácter '';'' los campos, y separados con retornos de carro las filas. * ''csv_head'': Devuelve, igual que con ''csv'', salvo que añade una primera fila con los nombres de los campos a retornar. * **Credenciales de seguridad**: véase la sección "[[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#seguridad|Seguridad]]". ==== Seguridad ==== La API autentifica el acceso mediante [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#por_origen|origen]] y/o [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#por_contrasena_de_api|contraseña de API]] y/o [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#por_credenciales_de_usuario|credenciales de usuario]]. === Por origen === Actualmente, la seguridad se basa en una lista de direcciones IP que [[:es:documentation:pandorafms:management_and_operation:12_console_setup#general_setup|tendrán acceso a la herramienta]]. {{ :wiki:screnshot_of_api_acl_list_setup.png }} Si se introduce en la caja de texto el carácter ''*'' se omite la comprobación de ACL relegando la seguridad al protocolo y al entorno. === Por contraseña de API === También se puede establecer una contraseña (·**API password**) para realizar las acciones del API. * ''apipass'': Por defecto, y es usado en esta documentación, ''1234''. === Por credenciales de usuario === Se accede [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#mediante_nombre_de_usuario_y_contrasena|mediante nombre de usuario y contraseña]]; adicionalmente **desde la versión 768 o posterior** es posible autenticar mediante [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#autenticacion_por_bearer_token|bearer token]]. == Mediante nombre de usuario y contraseña == Para acceder a las acciones de la API, también es necesario proporcionar un nombre de usuario tipo [[:es:documentation:pandorafms:introduction:03_glossary#superadmin|superadmin]] y contraseña válidos ambos en el sistema Pandora FMS. * ''user'': Usuario de Pandora FMS válido. * ''pass'': La contraseña del usuario proporcionado. Las llamadas a la API llevan las contraseñas sin codificar. Debe tener cuidado y emplear conexiones SSL para evitar que se puedan ver por terceros en la red. La API admite peticiones via POST para poder cifrarlas cuando se usa SSL/HTTPS. === Retorno === Cuando la API deniega el acceso, será devuelta una simple cadena de texto ''auth error''. === Ejemplos === En esta documentación se utiliza ''1234'' para la contraseña del API, el nombre de usuario es ''admin'' ([[:es:documentation:pandorafms:introduction:03_glossary#superadmin|tipo superadmin]]) y la contraseña es ''pandora''. Pandora FMS trae instalado, por defecto, un usuario llamado ''internal_API'' el cual ni tiene contraseña establecida ni es un //superadmin//. Tanto para este usuario, como para los demás que sean creados, **se deberán establecer los perfiles adecuados para cada uno de los comandos y operaciones acá descritos**. [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_externa_de_pandora_fms|Vea la sintaxis de llamada]]: .../include/api.php?op=get&op2=plugins&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora Condiciones de acceso: * La dirección IP de origen está en la lista de ACL (o se utiliza ''*'' para ello). * La contraseña de la API //no está establecida// o es ''1234''. * El usuario ''admin'' existe, es un //superadmin// y su contraseña de usuario es ''pandora'' //.// ==== API checker ==== Acceda desde el menú de Administración: **Admin tools** → **API checker**. {{ :wiki:pfms-admin_tools-api_checker.png }} {{ :wiki:pfms-admin_tools-api_checker-credentials.png }} **Versión 768 o posterior**: Se puede autenticar con **API Token** por medio de el envío en las [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers|cabeceras HTTP]] de un //[[https://www.rfc-editor.org/rfc/rfc6750#page-3|bearer token]]// generado por cada usuario y para su propio uso privado y particular. Consulte "[[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#edicion_de_un_usuario_por_el_propio_usuario|Editar mi usuario]]" para más detalles. \\ {{ :wiki:pfms-admin_tools-api_checker-call_parameters.png }} {{ :wiki:pfms-admin_tools-api_checker-custom_url.png }} ==== Flujo de trabajo del sistema de seguridad ==== Se implementa gracias a tres elementos: * [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#por_origen|Filtrado por dirección IP]]: Solamente las direcciones IP listadas podrán acceder a la API. * [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#por_contrasena_de_api|Contraseña global para la API]]: Si se define, es obligatorio usarla en todas las llamadas. * [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#por_credenciales_de_usuario|Usuario y contraseña]]: Usuario de tipo [[:es:documentation:pandorafms:introduction:03_glossary#superadmin|superadmin]] y válido en la Consola web. Se utilizarán sus permisos para cada operación solicitada. **A partir de la versión NG 768** también es posible acceder mediante [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#autenticacion_por_bearer_token|bearer token]]. Esto se explica en el siguiente diagrama de flujo: {{ :wiki:api_access.png }} ===== Llamadas a la API ===== Se dividen en dos grupos según si [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#get|devuelven]] o [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#set|escriben datos]] en Pandora FMS. Existe una excepción: la llamada de [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#retorno_de_informacion|retorno de información]]. ==== Autenticación por bearer token ==== **Versión 768 o posterior**: Se puede autenticar con **API Token** por medio de el envío en las [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers|cabeceras HTTP]] de un //[[https://www.rfc-editor.org/rfc/rfc6750#page-3|bearer token]]// generado por cada usuario y para su propio uso privado y particular. Consulte "[[:es:documentation:pandorafms:management_and_operation:11_managing_and_administration#edicion_de_un_usuario_por_el_propio_usuario|Editar mi usuario]]" para más detalles. La autenticación basada en //bearer token// permite que cada uno de los usuarios registrados en Pandora FMS pueda generar su propio identificador en correspondencia unívoca. Dicho //bearer token// debe ser insertado en las cabeceras HTTP, es decir, no forma parte de la URL completa de la API. El mecanismo de envío corresponde a la aplicación que realiza la conexión con la API de PFMS. **Versión 768 o posterior**: De aparecer un icono de advertencia {{:wiki:icon_warning.png?nolink&21x21}}adyacente al **API Token** [[:es:documentation:pandorafms:installation:04_configuration#fichero_de_configuracion_phpconf|configure el fichero]] ''php.conf''. {{ :wiki:edit_my_user_2_warning_php_conf_file.png }} Para los siguientes ejemplos se utiliza el programa de línea de comandos cURL, **versión 7.68** . * Verifique la versión de **curl** con ''curl -V''. {{ :wiki:curl_-v.png }} * Si necesita más ayuda para utilizar **curl**, invoque ''curl -h''. * Los parámetros ''-k'' y ''-H'' sirven para aceptar conexiones con certificados autofirmados para HTTPS y enviar la información de las cabeceras, respectivamente. * Consulte el //bearer token// correspondiente al usuario que realizará la consulta API. * Ahora ya puede realizar una consulta API, en el siguiente ejemplo se utiliza ''[[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#get_test|get test]]'' (sustituya por su bearer token consultado anteriormente): BEARER="Authorization: Bearer 811a0c1889f3aa62ef481ccd173ea5ec" URL="http://192.168.7.117/pandora_console/include/api.php" API_QUERY="?op=get&op2=test" curl -k -H "$BEARER" $URL$API_QUERY && echo "" {{ :wiki:curl_-k_-h.png }} * Si necesita depurar la conexión utilice el parámetro ''-v'' (no confundir con ''-V'' usado para mostrar la versión). ==== Retorno de información ==== Devuelve la versión de Pandora FMS Console web, de un modo parecido a la función ''get test'' pero sin chequear la conexión a la API. Esta llamada es útil para verificar que en esta ruta se encuentra una instalación de Pandora FMS y para obtener la versión antes de la autenticación. La información que devuelve se puede obtener de la pantalla de //login//, por lo que no se considera que se vulnere la seguridad. http://127.0.0.1/pandora_console/include/api.php?info=version Un ejemplo de respuesta podría ser: ''Pandora FMS v7.0NG.768 - PC230120 MR60'' {{ :wiki:pfms-api-version.png }} ==== GET ==== Devuelve los datos solicitados. === get test === Chequea la conexión al API y devuelve la versión del Pandora Console. Esta característica está en Metaconsola. Sintaxis de la llamada: Sin parámetros **Ejemplos** Este ejemplo devolverá OK,[version],[build] http://127.0.0.1/pandora_console/include/api.php?op=get&op2=test&apipass=1234&user=admin&pass=pandora Un ejemplo de respuesta podría ser: //OK,v7.0NG.751,PC201215// === get license === Para consultar el estado de la licencia de uso de Pandora FMS, según el nivel de acceso que tenga las credenciales del usuario. [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_externa_de_pandora_fms|Sintaxis de la llamada]]: * ''op=get'' (obligatorio). * ''op2=license'' (obligatorio). * ''return_type=json'' (obligatorio). **Ejemplo (vea [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_externa_de_pandora_fms|sintaxis de la llamada]]):** …/include/api.php?op=get&op2=license&return_type=json&apipass=1234&user=admin&pass=pandora En la versión //Community// devuelve: { "type":"array", "data":{ "license_mode":"PANDORA-FREE", } } === get all_agents === Devuelve la lista de agentes filtrados por los filtros seteados en other. Sintaxis de la llamada: * op=get (obligatorio) * op2=all_agents (obligatorio) * return_type=csv o json (obligatorio) * other= (opcional) parámetros para filtrar la búsqueda de agentes, serializados: * * * * * * * Recursión (**1** o **0**) **Ejemplos** Este ejemplo devolverá todos los agentes cuyo id_so sea igual a 1, id_group igual a 2, estado de warning, su alias contenga 'j', y su política asociada tenga id igual a 2. Ejemplo para CSV: http://127.0.0.1/pandora_console/include/api.php?op=get&op2=all_agents&return_type=csv&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora Ejemplo para JSON: http://127.0.0.1/pandora_console/include/api.php?op=get&op2=all_agents&return_type=json&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora === get license_remaining === >= 7.0NG 752 Para consultar el número de Agentes o Módulos disponibles según la licencia de uso de Pandora FMS y de acuerdo a el nivel de acceso que tenga las credenciales del usuario utilizadas. Sintaxis de la llamada: * op=get (obligatorio) * op2= license_remaining (obligatorio) * return_type = json (obligatorio) **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=license_remaining&return_type=json&apipass=1234&user=admin&pass=pandora === get module_last_value === Devuelve el último valor de un módulo, el cual se selecciona por el ID pasado por el parámetro id. Con el parámetro other puede añadir el código de error para que su aplicación detecte este valor fuera del rango de valores del módulo. Sintaxis de la llamada: * op=get (obligatorio) * op2= module_last_value (obligatorio) * id=<índice> (obligatorio): Debe ser un índice de un módulo agente. * other = (opcional): Que quiere que le devuelva si hay un error (no encontrado en DB el módulo normalmente). * Códigos de retorno de error son: * 'error_message': Devuelve error en un mensaje de texto. * 'error_value': Devuelve ese código o valor de error. Pero es necesario acompañarlo de 'other_mode' tal que así other_mode=url_encode_separator_ para pasar el separador en other. **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_last_value&id=63&other=error_value|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_last_value&id=62&apipass=1234&user=admin&pass=pandora === get agent_module_name_last_value === Devuelve el último valor de un módulo, el cual se selecciona por nombre del agente pasado por el parámetro id y nombre del módulo pasado por el id2. Con el parámetro other puede añadir el código de error para que su aplicación detecte este valor fuera del rango de valores que puede tener el módulo. Sintaxis de la llamada: * op=get:(obligatorio) * op2= agent_module_name_last_value: (obligatorio) * id= (obligatorio):Contiene el nombre del agente. * id2= (obligatorio): Contiene el nombre del módulo. * other = (opcional): Que quiere que le devuelva si hay un error (no encontrado en DB el módulo normalmente). * Códigos de retorno de error son: * 'error_message': Devuelve error en un mensaje de texto. * 'error_value': Devuelve ese código o valor de error. Pero es necesario acompañarlo de 'other_mode' tal que así other_mode=url_encode_separator_ para pasar el separador en other. **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=agent_module_name_last_value&id=user&id2=cpu_user&apipass=1234&user=admin&pass=pandora === get agent_module_name_last_value_alias === >= 7.0NG Devuelve el último valor de un módulo, el cual se selecciona por alias del agente pasado por el parámetro id y nombre del módulo pasado por el id2. Con el parámetro other puede añadir el código de error para que su aplicación detecte este valor fuera del rango de valores que puede ser el módulo. Sintaxis de la llamada: * op=get (obligatorio) * op2=agent_module_name_last_value_alias (obligatorio) * id= (obligatorio): Contiene el alias del agente. * id2= (obligatorio): Contiene el nombre del módulo. * other = (opcional): Que quiere que le devuelva si hay un error (no encontrado en DB el módulo normalmente). * Códigos de retorno de error son: * 'error_message': Devuelve error en un mensaje de texto. * 'error_value': Devuelve ese código o valor de error. Pero es necesario acompañarlo de 'other_mode' tal que así other_mode=url_encode_separator_ para pasar el separador en other. **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=agent_module_name_last_value_alias&id=pandorafms&id2=Memory_Used&apipass=1234&user=admin&pass=pandora === get module_value_all_agents === Dado el nombre de un módulo, devuelve una lista de agentes que contienen ese nombre de módulo. El resultado devuelve el identificador del agente, alias del mismo, valor del módulo solicitado y nombre del agente, separados por punto y coma ('';''). Por ejemplo: 653;agente network;0.00000;a8c83b348451040dc91c1327303adf8945aefce6ac59ab9bf856c9f4e0cf6c6f [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_externa_de_pandora_fms|Sintaxis de la llamada]]: * ''op=get'' (obligatorio). * ''op2=module_value_all_agents'' (obligatorio). * ''id=''< nombre_del_módulo > (obligatorio). **Ejemplo (vea [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_externa_de_pandora_fms|sintaxis de la llamada]]):** Se solicita un listado de todos los agentes que tengan el módulo con nombre ''Host Alive'': .../include/api.php?op=get&op2=module_value_all_agents&id=Host Alive&apipass=1234&user=admin&pass=pandora === get agent_modules === Devuelve la lista de módulos de un agente solicitado por su identificador numérico. **[[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_externa_de_pandora_fms|Sintaxis de la llamada]]:** * ''op=get'' (obligatorio). * ''op2=agent_modules'' (obligatorio). * ''return_type='' (obligatorio): Formato de salida. * ''other=''< valores serializados > (obligatorio): Valores serializados para filtrar la búsqueda de módulos por agente: * < id_agent > ¡Es absolutamente imprescindible utilizar ''other_mode=url_encode_separator_< separator >'' con este parámetro! **Ejemplo (vea [[:es:documentation:pandorafms:technical_reference:02_annex_externalapi#api_externa_de_pandora_fms|sintaxis de la llamada]]):** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=agent_modules&return_type=csv&other=14&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora === get module_id === Devuelve la id de un módulo concreto de un agente. Sintaxis de la llamada: * op=get (obligatorio) * op2=module_id (obligatorio) * id=id del agente (obligatorio) * other=nombre del módulo (obligatorio) **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_id&id=5&other=Host Alive&apipass=1234&user=admin&pass=pandora === get module_custom_id === Devuelve el valor del campo //Custom_id// de un módulo concreto de un agente pasando como parámetro el id del módulo. Sintaxis de la llamada: * op=get (obligatorio) * op2=module_custom_id (obligatorio) * id=id_agente_modulo (obligatorio) **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_custom_id&id=5&apipass=1234&user=admin&pass=pandora === set module_custom_id === Cambia, o limpia, el valor del campo //Custom ID// pasando como parámetros el id del módulo y el valor del custom id. Sintaxis de la llamada: * op=set (obligatorio) * op2=module_custom_id (obligatorio) * id=id_agente_modulo (obligatorio) * id2=valor, o vacío para limpiar (obligatorio) **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=set&op2=module_custom_id&id=5&id2=1521&apipass=1234&user=admin&pass=pandora === get locate_agent === Obtiene el id del servidor donde se encuentra el agente, e imprime todo el resultado como un archivo csv. Sintaxis de la llamada: * op=get (obligatorio) * op2=locate_agent (obligatorio) * return_type= (obligatorio) Formato de salida. * id=id_agent (obligatorio) * other_mode=other_mode=url_encode_separator_ (obligatorio) **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=locate_agent&return_type=csv&apipass=1234&user=admin&pass=pandora&id=Pepito&other_mode=url_encode_separator_| === get policies === Devuelve la lista políticas de un agente pasado su id dentro del parámetro other. Sintaxis de llamada: * op=get (obligatorio) * op2=policies (obligatorio) * return_type= (obligatorio) * other= (opcional) Parámetros serializados para filtrar la búsqueda de políticas por agente: * **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=policies&return_type=csv&other=&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora === get tree_agents === Devuelve una completa lista organizada por grupos en el primer nivel, agentes el segundo nivel y módulos el tercer nivel. Esta lista se filtra por el parámetro other. Sintaxis de la llamada: * op=get (obligatorio) * op2=tree_agents (obligatorio) * return_type= (obligatorio) que puede ser ''csv'' o ''csv_head''. * other= (opcional) en este caso puede ser simplemente el separador o una lista de parámetros en orden y separados con el caracter separador, vemos los dos casos: * el separador si del ''csv''. * ||,, se compondrá de los siguientes parámetros en orden (el carácter ''|'' de separación se puede especificar en ''other_mode''): * : separador de los campos en el CSV. * : carácter que sustituirá si encuentra en algún valor devuelto el carácter retorno de carro para evitar la ambigüedad con el uso estándar de retorno de carro para especificar registros/filas en el CSV. Si se pasa un string en other, el carácter sustituto es el espacio en blanco. * ,, : los campos a mostrar en el CSV y el orden en que mostrarlos, los posibles campos son: * type_row * group_id * group_name * group_parent * disabled * custom_id * group_description * group_contact * group_other * agent_id * alias * agent_direction * agent_comentary * agent_id_group * agent_last_contant * agent_mode * agent_interval * agent_id_os * agent_os_version * agent_version * agent_last_remote_contact * agent_disabled * agent_id_parent * agent_custom_id * agent_server_name * agent_cascade_protection * agent_name * module_id_agent_modulo * module_id_agent * module_id_module_type * module_description * module_name * module_max * module_min * module_interval * module_tcp_port * module_tcp_send * module_tcp_rcv * module_snmp_community * module_snmp_oid * module_ip_target * module_id_module_group * module_flag * module_id_module * module_disabled * module_id_export * module_plugin_user * module_plugin_pass * module_plugin_parameter * module_id_plugin * module_post_process * module_prediction_module * module_max_timeout * module_custom_id * module_history_data * module_min_warning * module_max_warning * module_min_critical * module_max_critical * module_min_ff_event * module_delete_pending * module_id_agent_state * module_data * module_timestamp * module_state * module_last_try * module_utimestamp * module_current_interval * module_running_by * module_last_execution_try * module_status_changes * module_last_status * module_plugin_macros * module_macros * module_critical_inverse (solo versión 6.0SP1) * module_warning_inverse (solo versión 6.0SP1) * alert_id_agent_module * alert_id_alert_template * alert_internal_counter * alert_last_fired * alert_last_reference * alert_times_fired * alert_disabled * alert_force_execution * alert_id_alert_action * alert_type * alert_value * alert_matches_value * alert_max_value * alert_min_value * alert_time_threshold * alert_max_alerts * alert_min_alerts * alert_time_from * alert_time_to * alert_monday * alert_tuesday * alert_wednesday * alert_thursday * alert_friday * alert_saturday * alert_sunday * alert_recovery_notify * alert_field2_recovery * alert_field3_recovery * alert_id_alert_template_module * alert_fires_min * alert_fires_max * alert_id_alert_command * alert_command * alert_internal * alert_template_modules_id * alert_templates_id * alert_template_module_actions_id * alert_actions_id * alert_commands_id * alert_templates_name * alert_actions_name * alert_commands_name * alert_templates_description * alert_commands_description * alert_template_modules_priority * alert_templates_priority * alert_templates_field1 * alert_actions_field1 * alert_templates_field2 * alert_actions_field2 * alert_templates_field3 * alert_actions_field3 * alert_templates_id_group * alert_actions_id_group' **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=tree_agents&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora http://127.0.0.1/pandora_console/include/api.php?op=get&op2=tree_agents&return_type=csv&other=;| |type_row,group_id,agent_name&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora === get module_data === Devuelve una lista de valores de un módulo, este módulo se filtra por el id pasado por el parámetro id. Y la lista de valores es desde la fecha actual hasta el límite del periodo pasado como segundo parámetro en el other, el primero es el separador de CSV. Sintaxis de la llamada: * op=get (obligatorio) * op2=module_data (obligatorio) * id= (obligatorio) * other_mode=url_encode_separator_ (obligatorio) * other=(opcional) * el carácter de separación del CSV (punto por defecto) * el periodo (en segundos) * tiempo de inicio (T>) * tiempo de final (T>) **Ejemplos** http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_data&id=17&other=;|604800|20121201T13:40|20171215T13:40&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora === get graph_module_data === Devuelve la gráfica de un módulo como un fichero de imagen, generada con el método de la gráficas estáticas de Pandora FMS. Es necesario pasar el ancho, alto, periodo, nombre de la gráfica y fecha de comienzo (sabiendo que en Pandora FMS la fecha que se indica en las gráficas siempre es la del final de los datos), pasados todos ellos como other parámetro. Sintaxis de la llamada: * op=get (obligatorio) * op2=module_data (obligatorio) * id= (obligatorio) * other= (obligatorio), son los siguientes en este orden: * * * *