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://<Pandora FMS Console install>/include/api.php<parameters>
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 valoresset
: Envía un valor o valoreshelp
: Devuelve una pequeña ayuda de las llamadasop2
(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_separator_
<separador>: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 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.La API autentifica el acceso mediante origen y/o contraseña de API y/o credenciales de usuario.
Actualmente, la seguridad se basa en una lista de direcciones IP que tendrán acceso a la herramienta.
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.
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
.Se accede mediante nombre de usuario y contraseña; adicionalmente desde la versión 768 o posterior es posible autenticar mediante bearer token.
Para acceder a las acciones de la API, también es necesario proporcionar un nombre de usuario tipo 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.
Cuando la API deniega el acceso, será devuelta una simple cadena de texto auth error
.
En esta documentación se utiliza 1234
para la contraseña del API, el nombre de usuario es admin
(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.
.../include/api.php?op=get&op2=plugins&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
Condiciones de acceso:
*
para ello).1234
.admin
existe, es un superadmin y su contraseña de usuario es pandora
.Acceda desde el menú de Administración: Admin tools → API checker.
Versión 768 o posterior: Se puede autenticar con API Token por medio de el envío en las cabeceras HTTP de un bearer token generado por cada usuario y para su propio uso privado y particular. Consulte “Editar mi usuario” para más detalles.
Se implementa gracias a tres elementos:
Esto se explica en el siguiente diagrama de flujo:
Se dividen en dos grupos según si devuelven o escriben datos en Pandora FMS.
Existe una excepción: la llamada de retorno de información.
Versión 768 o posterior: Se puede autenticar con API Token por medio de el envío en las cabeceras HTTP de un bearer token generado por cada usuario y para su propio uso privado y particular. Consulte “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 adyacente al API Token configure el fichero
php.conf
.
Para los siguientes ejemplos se utiliza el programa de línea de comandos cURL, versión 7.68 .
curl -V
.curl -h
.-k
y -H
sirven para aceptar conexiones con certificados autofirmados para HTTPS y enviar la información de las cabeceras, respectivamente.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 ""
-v
(no confundir con -V
usado para mostrar la versió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
Devuelve los datos solicitados.
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
Para consultar el estado de la licencia de uso de Pandora FMS, según el nivel de acceso que tenga las credenciales del usuario.
op=get
(obligatorio).op2=license
(obligatorio).return_type=json
(obligatorio).Ejemplo (vea 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", } }
Devuelve la lista de agentes filtrados por los filtros seteados en other.
Sintaxis de la llamada:
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
= 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:
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
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:
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
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:
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
= 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:
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
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
op=get
(obligatorio).op2=module_value_all_agents
(obligatorio).id=
< nombre_del_módulo > (obligatorio).Ejemplo (vea 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
Devuelve la lista de módulos de un agente solicitado por su identificador numérico.
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:¡Es absolutamente imprescindible utilizar
other_mode=url_encode_separator_< separator >
con este parámetro!
Ejemplo (vea 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
Devuelve la id de un módulo concreto de un agente.
Sintaxis de la llamada:
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
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:
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
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:
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
Obtiene el id del servidor donde se encuentra el agente, e imprime todo el resultado como un archivo csv.
Sintaxis de la llamada:
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_|
Devuelve la lista políticas de un agente pasado su id dentro del parámetro other.
Sintaxis de llamada:
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
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:
csv
o csv_head
.csv
.|
de separación se puede especificar en other_mode
):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
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:
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
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:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=graph_module_data&id=17&other=604800|555|245|example|2009-12-07&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Devuelve la lista de eventos filtrados por el parámetro other
.
op=get
(obligatorio).op2=events
(obligatorio).id=
< id del nodo > (opcional en la metaconsola, innecesario en el nodo).return_type=csv
o return_type=json
(obligatorio).other_mode=url_encode_separator_|
(obligatorio).other=
< parámetros serializados > (opcionales), son los siguientes en este orden:0
al número 6
:0:Maintenance
1:Informational
2:Normal
3:Warning
4:Critical
5:Minor
6:Major
1
para filtrar eventos generados por alertas.0
para filtrar eventos no validados, 1
para eventos validados.0
).total
: simplemente devuelve el número total de eventos, por ejemplo en formato JSON entrega: {“type”:“json”,“data”:{“count”:990}}
.more_criticity
: devuelve el número de eventos de mayor criticidad, por ejemplo si se le solicita en formato JSON: {“type”:“json”,“data”:[{“criticity”:“4”,“user_can_manage”:“1”,“user_can_write”:“1”,“server_id”:5,“server_name”:“stod”}]}
.get tags
). Debe utilizar formato JSON, por ejemplo: [“2”,“5”]
(vea sintaxis de la llamada).going_unknown
unknown
recon_host_detected
system
error
new_agent
going_up_warning
going_up_critical
going_down_warning
going_down_normal
going_down_critical
going_up_normal
configuration_change
ncm
not_normal
Ejemplo (vea sintaxis de la llamada):
Para obtener los eventos ncm
(Network configuration manager) por consulta a una Metaconsola cuyo nodo es 5:
…include/api.php?op=get&op2=events&user=admin&pass=pandora&return_type=json&apipass=1234&other_mode=url_encode_separator_|&other=|||||||||||||||ncm&id=5
Devuelve la lista de plantillas de alertas definidas en el Pandora FMS.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=all_alert_templates&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
Devuelve la lista de grupos de módulos.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_groups&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
Devuelve la lista de plugins de servidor de Pandora FMS.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=plugins&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
Devuelve la lista de etiquetas (tags) definidas en Pandora FMS.
op=get
(obligatorio)op2=tags
(obligatorio)return_type=csv
o return_type=json
(obligatorio)other=
< separador de campos > si solicita en formato CSV debe especificar separador, de lo contrario devolverá los campos juntos.Ejemplos (vea sintaxis de la llamada):
Este ejemplo devolverá todos los tags del sistema en formato CSV con separador de punto y coma.
…/include/api.php?op=get&op2=tags&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
= 5.0 (Sólo Enterprise)
Devuelve la configuración de módulo local.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_from_conf&apipass=1234&user=admin&pass=pandora&id=9043&id2=example_name
Si no se encuentra el módulo se retornará cadena vacía
Devuelve el número total de módulos de un grupo.
op=get
(obligatorio).op2=total_modules
(obligatorio).id=< id grupo >
(obligatorio hasta la versión 768; opcional a partir de la versión 769).Ejemplos (vea la sintaxis de la llamada):
Para obtener el total de módulos en el grupo de módulo Networking
.../include/api.php?op=get&op2=total_modules&id=2&apipass=1234&user=admin&pass=pandora
Los siguientes grupos de módulos vienen por defecto al instalar Pandora FMS:
Si usted coloca 0
como id de grupo, o simplemente lo omite, retornará el número total de módulos:
.../include/api.php?op=get&op2=total_modules&apipass=1234&user=admin&pass=pandora
Devuelve el número total de agentes de un grupo.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=get&op2=total_agents&id=2&apipass=1234&user=admin&pass=pandora
Devuelve el nombre de un agente dado su identificador.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=get&op2=agent_name&id=1&apipass=1234&user=admin&pass=pandora
= 7.0NG
Devuelve el alias de un agente dado su identificador.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=get&op2=agent_alias&id=1&apipass=1234&user=admin&pass=pandora
http://localhost/pandora_console/enterprise/meta/include/api.php?op=get&op2=agent_alias&id=1&id2=1&apipass=1234&user=admin&pass=pandoraInsert non-formatted text here
Devuelve el nombre de un módulo dado su identificador.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=get&op2=module_name&id=1&apipass=1234&user=admin&pass=pandora
Devuelve el total de ejecuciones de alertas con una determinada acción por grupo.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=get&op2=alert_action_by_group&id=0&id2=3&apipass=1234&user=admin&pass=pandora
Lista todas las acciones de alertas.
op=get
(obligatorio).op2=alert_actions
(obligatorio).return_type=
< tipo_retorno > que puede ser csv
o json
(obligatorio).other=
< parámetros_serializados > (opcionales):Ejemplos
Para obtener el listado de todas las acciones de alertas en formato JSON (vea la sintaxis de la llamada):
.../include/api.php?op=get&op2=alert_actions&return_type=json&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Para obtener el listado de todas las acciones de alertas en formato CSV (vea la sintaxis de la llamada):
.../include/api.php?op=get&op2=alert_actions&return_type=csv&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Esta característica está en Metaconsola.
Lista acciones de alertas de nodos desde la metaconsola.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=get&op2=alert_actions_meta&apipass=1234&user=admin&pass=pandora&other=nodo|Create|&other_mode=url_encode_separator_|&return_type=json
Devuelve todos los comandos de alertas.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=get&op2=all_alert_commands&return_type=csv&other=$&apipass=1234&user=admin&pass=pandora
Devuelve toda la información de un evento pasando el id de este evento.
Esta característica está en Metaconsola.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=event_info&id=80&apipass=1234&user=admin&pass=pandora
Devuelve la siguiente lista de valores (que se puede ver en la página táctica de Pandora Console)
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=tactical_view&apipass=1234&user=admin&pass=pandora
= 5.0
Devuelve la lista de servidores de Pandora FMS que hay.
Sintaxis de la llamada:
Example
http://localhost/pandora_console/include/api.php?op=get&op2=pandora_servers&return_type=csv&apipass=1234&user=admin&pass=pandora
Devuelve los campos en el siguiente orden:
Traduce el nombre de un campo personalizado existente al identificador que tiene en la base de datos.
op=get
(obligatorio).op2=custom_field_id
(obligatorio).other=
< parámetro > (obligatorio) en este caso el nombre del campo personalizado.Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=get&op2=custom_field_id&other=Serial%20Number&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 5.0
Devuelve el último valor GIS de un agente.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=gis_agent&id=1
= 5.1
Devuelve listado de días especiales.
Sintaxis:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?apipass=1111&user=admin&pass=pandora&op=get&op2=special_days
= 5.1SP2
Devuelve una lista de las propiedades del módulo. La lista podría ser filtrada por el parámetro.
Sintaxis de la llamada:
csv
o csv_head
.csv
.|
de separación se puede especificar en other_mode
):Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_properties&id=6233&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_properties&id=1103&return_type=csv&other=;| |module_id_agent_module,module_id_module_type,module_name,module_last_try,module_state&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 5.1SP2
Devuelve una lista de las propiedades del módulo. La lista podria ser filtrada por el parámetro.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_properties_by_name&id=my_agent&id2=my_module&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_properties_by_name&id=my_agent&id2=my_module&return_type=csv&other=;| |module_id_agent_module,module_id_module_type,module_type,module_name,module_last_try,module_state&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0NG
Devuelve una lista de las propiedades del módulo. La lista podria ser filtrada por el parámetro.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=module_properties_by_alias&id=pandorafms&id2=Memory_Used&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
Devuelve una gráfica de un Módulo en codificación base64.
Sintaxis de la llamada:
A partir de la versión NG 752 dispone de más parámetros.
Ejemplo
Anterior a versión NG 752:
http://localhost/pandora_console/include/api.php?op=get&op2=module_graph&id=5&other=3600|1&other_mode=url_encode_separator_|&apipass=1234&api=1&user=admin&pass=pandora
Versión NG 752 o posterior:
http://localhost/pandora_console/include/api.php?op=get&op2=module_graph&id=2&other=3600|1|1|500|800|&other_mode=url_encode_separator_|&apipass=1234&api=1&user=admin&pass=pandora
= 5.1
Devuelve todas los registros coincidentes de paradas planificadas.
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=all_planned_downtimes&other=test|0|quiet|periodically|weekly&other_mode=url_encode_separator_|&return_type=json&apipass=1234&user=admin&pass=pandora http://127.0.0.1/pandora_console/include/api.php?op=get&op2=all_planned_downtimes&other=test|0|quiet|periodically|weekly&other_mode=url_encode_separator_|&return_type=csv&apipass=1234&user=admin&pass=pandora
= 5.1
Devuelve todos los objetos de las paradas planificadas que sean coincidentes.
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=planned_downtimes_items&other=test|0|quiet|periodically|weekly&other_mode=url_encode_separator_|&return_type=json&apipass=1234&user=admin&pass=pandora http://127.0.0.1/pandora_console/include/api.php?op=get&op2=planned_downtimes_items&other=test|0|quiet|periodically|weekly&other_mode=url_encode_separator_|&return_type=csv&apipass=1234&user=admin&pass=pandora
= 5.1
devuelve el id de grupo de un agente.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=id_group_agent_by_name&other_mode=url_encode_separator_|&other=192.168.50.40
= 7.0NG
devuelve el id de grupo de un agente.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=id_group_agent_by_alias&other_mode=url_encode_separator_|&other=pandorafms
= 5.1
devuelve el nombre de grupo de un agente.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=group_agent_by_name&other_mode=url_encode_separator_|&other=192.168.50.40
= 7.0NG
devuelve el nombre de grupo de un agente.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=group_agent_by_alias&other_mode=url_encode_separator_|&other=pandorafms
= 7.0NG
devuelve el id de grupo a partir del nombre.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=group_id_by_name&other=Servers
= 7.0NG
devuelve el timezone con el que está configurado Pandora FMS.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=timezone
= 7.0
Obtener estado del cluster a partir del id
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=cluster_status&id=1&apipass=1234&user=admin&pass=pandora
= 7.0
Obtener id de cluster a partir del nombre
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=cluster_id_by_name&id=paco&apipass=1234&user=admin&pass=pandora
= 7.0
Obtener los id ⇒ nombres de los agentes del cluster a partir del id de cluster
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=agents_id_name_by_cluster_id&id=1&apipass=1234&user=admin&pass=pandora
= 7.0
Obtener los id ⇒ nombres de los agentes del cluster a partir del nombre de cluster
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=agents_id_name_by_cluster_name&id=example&apipass=1234&user=admin&pass=pandora
= 7.0
Obtener los id ⇒ nombres de todos los módulos de los agentes del cluster a partir del id del cluster
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=modules_id_name_by_cluster_id&id=1&apipass=1234&user=admin&pass=pandora
= 7.0
Obtener los id ⇒ nombres de todos los módulos de los agentes del cluster a partir del nombre del cluster
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=modules_id_name_by_cluster_name&id=example&apipass=1234&user=admin&pass=pandora
= 7.0
Obtener los items en un objeto json con el formato: id de item ⇒ {nombre,id_agente_modulo,type,pcrit,pwarn}, apartir del id del cluster
pcrit: % para estado critico si es AA y 1 o 0 si es AP
pwarn: % para estado warning si es AP y nulo si es AP
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=cluster_items&id=1&apipass=1234&user=admin&pass=pandora
= 7.0NG. 725
Devuelve todos los datos de una política. Si no se especifica un id de política devolverá todos los datos de todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=policy&apipass=1234&user=admin&pass=pandora&return_type=json.
= 7.0NG. 725
Devuelve todas las colecciones de una política, si no se especifica un id de política devolverá todas las colecciones de todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=collections_policy&apipass=1234&user=admin&pass=pandora&return_type=json.
= 7.0NG. 725
Devuelve todas los plugins de una política, si no se especifica un id de política devolverá todos los plugins de todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=plugins_policy&apipass=1234&user=admin&pass=pandora&return_type=json.
= 7.0NG. 725
Devuelve todos los módulos de inventario de una política, si no se especifica un id de política devolverá todos los módulos de inventario de todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=inventory_policy&apipass=1234&user=admin&pass=pandora&return_type=json&id=2
= 7.0NG. 725
Devuelve todos los módulos deslincados de una política, si no se especifica un id de política devolverá todos los módulos deslincados de todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=unlinking_policy&apipass=1234&user=admin&pass=pandora&return_type=json.
= 7.0NG. 725
Devuelve las alertas asociadas a una política teniendo en cuenta:
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=alerts_policy&apipass=1234&user=admin&pass=pandora&return_type=json&id2=2.
= 7.0NG. 725
Devuelve las acciones de las alertas asociadas a una política teniendo en cuenta:
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=alerts_actions_policy&apipass=1234&user=admin&pass=pandora&return_type=json&id=1&id2=3
= 7.0NG. 725
Devuelve todos los agentes que pertenecen a una política, si no se especifica un id de política devolverá todos agentes que pertenecen a todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=agents_policy&apipass=1234&user=admin&pass=pandora&return_type=json.
= 7.0NG. 725
Devuelve todos los grupos que pertenecen a una política, si no se especifica un id de política devolverá todos grupos que pertenecen a todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=groups_policy&apipass=1234&user=admin&pass=pandora&return_type=json&id=2
= 7.0NG. 725
Devuelve la cola que pertenecen a una política, si no se especifica un id de política devolverá todas las colas que pertenecen a todas las políticas.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=get&op2=queue_policy&apipass=1234&user=admin&pass=pandora&return_type=json
= 7.0NG. 728
Devuelve los traps de origen especificado, también puede filtrar por timestamp y otros datos.
Sintaxis de la llamada:
Ejemplo
https://localhost/pandora_console/include/api.php?op=get&op2=traps&other=1537128000|9000|0|1|.1.2.3.6.4&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Devuelve la lista de respuesta de eventos a las que el usuario tiene acceso en Pandora FMS.
Sintaxis de la llamada:
Ejemplo
Este ejemplo devolverá todas las respuestas de eventos del sistema en formato csv.
http://localhost/pandora_console/include/api.php?op=get&op2=event_responses&return_type=csv&apipass=1234&user=admin&pass=pandora
Devuelve la lista de los usuario de Pandora FMS.
Sintaxis de la llamada:
Ejemplo
Este ejemplo devolverá todos usuario del sistema en formato csv.
http://localhost/pandora_console/include/api.php?op=get&op2=users&return_type=csv&other_mode=url_encode_separator_&apipass=1234&user=admin&pass=pandora
Esta característica está en Metaconsola.
Listar todos los usuarios de Pandora FMS
Sintaxis de la llamada:
Ejemplo
Puede devolver Json o CSV, este retorno se indica mediante la URL solo se indica el tipo de retorno, no usa ninguna variable en específico
http://localhost/pandora_console/include/api.php?op=get&op2=list_all_user&return_type=json&apipass=1234&user=admin&pass=pandora
Esta característica está en Metaconsola.
Lista la informacion de un usuario
Sintaxis de la llamada:
Ejemplo
Obtenemos toda la información de un usuario específico Puede devolver Json o CSV, este retorno se indica mediante la URL Usamos unicamente el nombre del usuario para obtener dicha información:
http://localhost/pandora_console/include/api.php?op=get&op2=info_user_name&return_type=json&other=admin&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Devuelve la lista de los perfiles de usuario de Pandora FMS.
Sintaxis de la llamada:
Ejemplo
Este ejemplo devolverá todos los perfiles de usuario del sistema en formato json.
http://localhost/pandora_console/include/api.php?op=get&op2=user_profiles_info&return_type=json&apipass=1234&user=admin&pass=pandora
= 7.21 ONLY METACONSOLE
Comprueba si existe en la cola de migración de agentes un agente determinado devolviendo los datos de tmigration_queue
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=migrate_agent&apipass=1234&user=admin&pass=pandora&id=2&return_type=json
= 7.0NG 730
devuelve el idioma con el que está configurado Pandora FMS.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=language
= 7.0NG 730
devuelve el tiempo de sesión con el que está configurado Pandora FMS.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=get&op2=session_timeout
devuelve los grupos existentes.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=groups&other=;|1|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Esta característica está en Metaconsola.
Obtener grupos de usuario mediante filtrado.
Sintaxis de la llamada:
Ejemplo
Puede devolver Json o CSV, este retorno se indica mediante la URL.
Puede tener una de las dos variables (id grupo o Habilitado) vacías, pero tiene que tener como mínimo una de ellas.
http://localhost/pandora_console/include/api.php?op=get&op2=filter_user_group&return_type=json&other=0|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Devuelve la lista de los módulos de inventario de Pandora FMS.
Sintaxis de la llamada:
Ejemplos
Este ejemplo devolverá información de todos los de inventario del sistema en formato json.
http://localhost/pandora_console/include/api.php?op=get&op2=inventory_modules&return_type=json&apipass=1234&user=admin&pass=pandora
Lista los módulos de inventario de un agente utilizando nombre de agente.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.phpop=get&op2=inventory_modules_by_name&id=name&return_type=csv&apipass=1234&user=admin&pass=pandora
Lista los módulos de inventario de un agente utilizando alias de agente.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.phpop=get&op2=inventory_modules_by_alias&id=alias&return_type=csv&apipass=1234&user=admin&pass=pandora
Obtiene los datos de un módulo de inventario utilizando nombre de agente y módulo.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.phpop=get&op2=inventory_module_data&id=e14ae3b959b08a1fb7a057281401a08063cf04eb714efa5fbf1cf4043cfa1314&id2=Routes&other=,|20191010T13:40|20191211T13:40|0&return_type=csv&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Devuelve la lista de todas las colecciones en Pandora FMS en formato JSON.
Sintaxis de la llamada:
Ejemplos
Este ejemplo devolverá información de todos las colecciones en formato json.
http://localhost/pandora_console/include/api.php?op=get&op2=list_collections&apipass=1234&user=admin&pass=pandora
Devuelve la lista de todos los ficheros de una colección. Si no se le pasa id de colección, devolverá todos los ficheros de todas las colecciones.
Sintaxis de la llamada:
Ejemplos
Este ejemplo devolverá los nombres de todos los ficheros de una colección en formato json.
http://localhost/pandora_console/include/api.php?op=get&op2=list_collection_files&id=1&apipass=1234&user=admin&pass=pandora
Obtiene los ID de los eventos de la metaconsola, utilizando el id del nodo y el id del evento del nodo.
Esta característica está en Metaconsola.
Sintaxis de la llamada:
Ejemplo
http://172.16.0.3/pandora_console/include/api.php?op=get&op2=event_mcid&return_type=json&id=0&id2=0&apipass=1234&user=admin&pass=pandora
Devuelve si un nodo está centralizado ( 1
) o no ( 0
). En caso de no existir el nodo devolverá una cadena de texto informando de ello. Puede utilizarse en Metaconsola o directamente en el nodo.
Sintaxis de la llamada:
Ejemplo nodo:
http://localhost/pandora_console/include/api.php?op=get&op2=is_centralized&apipass=1234&user=admin&pass=pandora
Ejemplo Metaconsola:
http://localhost/pandora_console/include/api.php?op=get&op2=is_centralized&id=3&apipass=1234&user=admin&pass=pandora
Envia los datos.
Crea un nuevo agente con los datos pasados como parámetros.
op=set
(obligatorio).op2=new_agent
(obligatorio).id=
(Metaconsola) Identificador numérico del nodo al cual pertenecerá el agente (obligatorio).other=
<parámetros serializados> (obligatorio) son la configuración y datos del agente, serializados en el siguiente orden:Ejemplos
Llamada de ejemplo para nodo (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=new_agent&other=agent_api|1.1.1.1|0|4|0|0|300|10|pandorafms|8|10||description|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Llamada de ejemplo para Metaconsola (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=new_agent&id=1&other=agent_api|1.1.1.1|0|4|0|0|300|10|pandorafms|8|10||description|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
1
, el nombre del agente será igual al alias. Si es un 0
, el nombre del agente se generará automáticamente.Actualiza un agente con los datos pasados como parámetros.
op=set
(obligatorio)op2= update_agent
(obligatorio)id=
<id_agente> (obligatorio)other=
<parámetros serializados> (obligatorio) son la configuración y datos del agente, serializados en el siguiente orden:Ejemplo (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=update_agent&id=5&other=agente_nombre|1.1.1.1|0|4|0|0|30|8|localhost.localdomain||0|0|description|Ubuntu&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Esta llamada actualiza el o los campos de uno o varios Agentes (esto último si utiliza alias y existen varios que coincidan con ello.
Sintaxis de la llamada:
Ejemplos
En caso de utilizar el identificador del Agente:
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_agent_field&id=1&other=id_os,1|alias,pandora|direccion,192.168.10.16|id_parent,1cascade_protection,1|cascade_protection_module,1|intervalo,5||modo|3|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
En caso de utilizar alias, modifica todos los agentes que contengan ese alias:
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_agent_field&id=pandora&id2=1&other=id_os,1|alias,pandora|direccion,192.168.10.16|id_parent,1cascade_protection,1|cascade_protection_module,1|intervalo,5||modo|3|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Elimina un agente pasando el nombre como parámetro.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_agent&id=agente_erroneo&apipass=1234&user=admin&pass=pandora
Crea una alerta a partir de la plantilla pasada como id, en un módulo elegido por id de módulo y id de agente que estarán en other.
Sintaxis de llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_module_template&id=1&other=1|10&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Aplicar una plantilla de módulos a un agente..
Estas plantillas de módulos son una agrupación que contiene módulos de comprobación de red. Estas plantillas pueden ser aplicadas directamente a agentes, evitando tener que añadir módulos uno a uno.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=apply_module_template&id=2&id2=2&apipass=1234&user=admin&pass=pandora
Crea un módulo de red con los datos pasados como parámetros.
op=set
(obligatorio).op2=create_network_module
(obligatorio).id=
< nombre_agente > (obligatorio) debe ser un nombre agente.other=
< parámetros serializados > (obligatorios) son la configuración y datos del modulo, serializados en el siguiente orden:0
y 1
.0
y 1
.Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=set&op2=create_network_module&id=example&other=test|0|7|1|10|15|0|16|18|0|15|0|127.0.0.1|0||0|180|0|0|0|0|latency%20ping|1|||||||||||&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un módulo de tipo plugin con los datos pasados como parámetros.
op=set
(obligatorio).op2=create_plugin_module
(obligatorio).id=
< nombre_agente > (obligatorio) debe ser un nombre agente.other=
< parámetros serializados > (obligatorios) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.0
y 1
.Ejemplo (vea sintaxis de la llamada):
Ejemplo sin macro alguno:
…/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||||||||||||2001&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
El contenido del documento JSON debe ser un objeto compuesto de varios objetos con las siguientes propiedades:
macro
: Nombre del macro. Deben ser _field1_, _field2_, …, _fieldN_.desc
: Nombre descriptivo del macro.help
: Descripción del macro.value
: Valor del macro.hide
: Poner a 1
para ocultar el valor del macro (útil para almacenar contraseñas).Ejemplo de formato de macro JSON:
{ "1": { "macro": "_field1_", "desc": "Target IP", "help": "", "value": "192.168.0.1", "hide": "" }, "2": { "macro": "_field2_", "desc": "Port", "help": "", "value": "80", "hide": "" } }
Crea un módulo con los parámetros pasados.
Con esta llamada se puede añadir datos al módulo en la base de datos, pero no se puede modificar el fichero de configuración de los agentes asociados al módulo.
op=get
(obligatorio).op2=create_data_module
(obligatorio).id=
< nombre_agente > (obligatorio) debe ser un nombre agente.other=
< parámetros serializados > (obligatorios) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.0
y 1
.
Ejemplo (vea sintaxis de la llamada), se debe tener creado previamente un agente con el nombre test
:
…/include/api.php?op=set&op2=create_data_module&id=test&other=test2|0|1|data%20module%20from%20api|1|10|20|10.50|180|10|15||16|20||0|||||||||||||2001&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un módulo SNMP.
op=set
(obligatorio).op2=create_snmp_module
(obligatorio)id=
< nombre_agente > (obligatorio) debe ser un nombre agente.other=
< parámetros serializados > (obligatorio) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.0
y 1
.Ejemplo (vea sintaxis de la llamada):
Primer ejemplo (snmp v: 1):
…/include/api.php?op=set&op2=create_snmp_module&id=example&other=test5|0|15|1|10|15||16|18||15|0|127.0.0.1|60|1|public|.1.3.6.1.2.1.1.1.0|180|0|0|0|0|SNMP%20module%20from%20API||||||||2001&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Segundo ejemplo (snmp v: 3, snmp3_priv_method: AES, snmp3_priv_pass: example_priv_passw, snmp3_sec_level: authNoPriv, snmp3_auth_method:MD5, snmp3_auth_user: example_user, snmp3_auth_pass: example_priv_passw):
…/include/api.php?op=set&op2=create_snmp_module&id=example&other=test7|0|15|1|10|15||16|18||15|0|127.0.0.1|60|3|public|.1.3.6.1.2.1.1.1.0|180|0|0|0|0|SNMP%20module%20from%20API|AES|example_priv_passw|authNoPriv|MD5|example_user|example_auth_passw|||||||||2001&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza la configuración de un módulo de red.
op=get
(obligatorio).op2=update_network_module
(obligatorio).id=
< id_modulo > (obligatorio) debe ser el ID numérico del módulo (tagente_modulo
).other=
< parámetros serializados > (obligatorios) son la configuración y datos del modulo, serializados en el siguiente orden:Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=set&op2=update_network_module&id=132&other=|0|6|2|10|15||16|18||7|0|127.0.0.1|0||0|300|30.00|0|0|0|latency%20ping%20modified%20by%20the%20Api|||||||||||2020&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza la configuración de un módulo plugin.
op=set
(obligatorio).op2=update_plugin_module
(obligatorio).id=
< nombre_modulo > (obligatorio) debe ser el identificador numérico del módulo a actualizar (tagente_modulo
).other=
< parámetros serializados > (obligatorios) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=set&op2=update_plugin_module&id=2343&other=44|0|2|0|0||0|0||0|0|127.0.0.1|0||0|300|0|0|0|0|pluginmodule%20from%20api|2|admin|pass|-p%20max&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
El contenido del documento JSON debe ser un objeto compuesto de varios objetos con las siguientes propiedades:
Ejemplo de formato de macro JSON:
{ "1": { "macro": "_field1_", "desc": "Target IP", "help": "", "value": "192.168.0.1" }, "2": { "macro": "_field2_", "desc": "Port", "help": "", "value": "80" } }
Otro ejemplo con escalado de estados:
…/include/api.php?op=set&op2=update_plugin_module&id=135&other=|0|2|0|0||0|0||0|0|127.0.0.1|0||0|300|0|0|0|0|plugin%20module%20from%20api|2|admin|pass|-p%20max|||||||||||||2020&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Con esta llamada se puede añadir datos al módulo en la base de datos, pero no se puede modificar el fichero de configuración de los agentes asociados al módulo.
Actualiza un módulo local.
op=set
(obligatorio).op2=update_data_module
(obligatorio).id=
< id_módulo_agente > (obligatorio) el identificador numérico del módulo a actualizar.other=
< parámetros serializados > (obligatorio) son la configuración y datos del módulo, serializados en el siguiente orden:1
para deshabilitar, 0
sin cambios.0
no se guardan datos del Módulo en la tabla tagente_datos
, únicamente se actualiza la tabla tagente_estado
.{“going_unknown”:1}
.0
y 1
.Ejemplo (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=update_data_module&id=123&other=|0|data%20module%20modified%20from%20API|6|0|0|50.00|300|10|15||16|18||0||||||||||||||2020&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza el módulo de datos de una política y devuelve el identificador del nuevo módulo.
op=set
(obligatorio).op2=update_data_module_policy
(obligatorio).id=
< id_policy > (obligatorio) El identificador numérico de la política a modificar.other=
< parámetros serializados > (obligatorio) son la configuración y datos del módulo, serializados en el siguiente orden:Ejemplo (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=update_data_module_policy&id=1&other=10|data%20module%20updated%20by%20Api|2|0|0|50.00|10|20|180||21|35||1|module_begin module_name pandora_process module_type generic_data module_exec ps aux | grep pandora | wc -l module_end&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza un módulo SNMP.
op=set
(obligatorio).op2=update_snmp_module
(obligatorio).id=
< id_module > (obligatorio) debe ser un identificador numérico de módulo.other=
< parámetros serializados > (obligatorios) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.Ejemplo (vea sintaxis de la llamada):
(SNMP v: 3, snmp3_priv_method: AES, snmp3_priv_pass: example_priv_passw, snmp3_sec_level: authNoPriv, snmp3_auth_method:MD5, snmp3_auth_user: pepito_user, snmp3_auth_pass: example_priv_passw):
…/include/api.php?op=set&op2=update_snmp_module&id=33432&other=44|0|6|20|25||26|30||15|1|127.0.0.1|60|3|public|.1.3.6.1.2.1.1.1.0|180|50.00|10|60|0|SNMP%20module&20modified%20by%20API|AES|example_priv_passw|authNoPriv|MD5|example_user|example_auth_passw&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Otro ejemplo con escalado de estados y SNMP v1:
…/include/api.php?op=set&op2=update_snmp_module&id=137&other=|0|6|20|25||26|30||15|1|127.0.0.1|60|1|public|.1.3.6.1.2.1.1.1.0|180|50.00|10|60|||||||||||2020&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Otro ejemplo con escalado de estados y SNMP v3:
…/include/api.php?op=set&op2=update_snmp_module&id=138&other=|0|6|20|25||26|30||15|1|127.0.0.1|60|3|public|.1.3.6.1.2.1.1.1.0|180|50.00|10|60|0|SNMP%20module%20modified%20by%20API|AES|example_priv_passw|authNoPriv|MD5|example_user|example_auth_passw|||||||||2020&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Aplica la política, pasada por id, en uno o varios agentes.
Sintaxis de la llamada:
Ejemplos
http://192.168.70.102/pandora_console/include/api.php?op=set&op2=apply_policy&id=22&id2=3e&other=0|1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Aplica todas las políticas que contiene Pandora.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=apply_all_policies&apipass=1234&user=admin&pass=pandora
Añade un módulo de red en la política pasada por identificador en el parámetro.
op=set
(obligatorio).op2=add_network_module_policy
(obligatorio).id=<id_politica >
(obligatorio) debe ser un identificador de política.other=
< parámetros serializados > (obligatorios) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.Ejemplo (véase sintaxis de la llamada):
…/include/api.php?op=set&op2=add_network_module_policy&id=1&other=network_module_policy_example_name|6|network%20module%20created%20by%20Api|2|0|0|50.00|180|10|20||21|35||1|15|0|66|||0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Añade un módulo de plugin en la política pasada por identificador en el parámetro.
op=set
(obligatorio).op2=add_plugin_module_policy
(obligatorio).id=
< id_politica > (obligatorio) debe ser un identificador de política.other=
< parámetros serializados > (obligatorios) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=set&op2=add_plugin_module_policy&id=1&other=example plugin module name|0|1|2|0|0||0|0||15|0|66|||300|50.00|0|0|0|plugin module from api|2|admin|pass|-p max&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
El contenido del documento JSON debe ser un objeto compuesto de varios objetos con las siguientes propiedades:
Ejemplo de macro:
{ "1": { "macro": "_field1_", "desc": "Target IP", "help": "", "value": "192.168.0.1" }, "2": { "macro": "_field2_", "desc": "Port", "help": "", "value": "80" } }
Añade un módulo local en la política pasada por id en el parámetro.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_data_module_policy&id=1&other=data_module_policy_example_name~2~data module created by Api~2~0~0~50.00~10~20~180~~21~35~~1~module_begin module_name pandora_process module_type generic_data module_exec ps aux | grep pandora | wc -l module_end&other_mode=url_encode_separator_~&apipass=1234&user=admin&pass=pandora
Actualiza un módulo de plugin en la política pasada por identificador en el parámetro.
op=set
(obligatorio).op2=update_plugin_module_policy
(obligatorio).id=
< id_politica > (obligatorio) debe ser un identificador de política.other=
< parámetros serializados > (obligatorios) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=set&op2=update_plugin_module_policy&id=1&other=23|0|1|0|0||0|0||15|0|166|||180|150.00|0|0|0|plugin%20module%20updated%20from%20api|2|example_user|pass|-p%20min&other_mode=url_encode_separator_|
El contenido del documento JSON debe ser un objeto compuesto de varios objetos con las siguientes propiedades:
Añade un módulo SNMP en la política pasada por el identificado en el parámetro.
op=set
(obligatorio).op2=add_snmp_module_policy
(obligatorio).id=
< id_política > (obligatorio) debe ser un identificador de política.other=
< parámetros serializados > (obligatorio) son la configuración y datos del módulo, serializados en el siguiente orden:0
y 1
.Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=set&op2=add_snmp_module_policy&id=1&other=example%20SNMP%20module%20name|0|15|2|0|0||0|0||15|1|66|3|public|.1.3.6.1.2.1.1.1.0|180|50.00|10|60|0|SNMP module modified by API|AES|example_priv_passw|authNoPriv|MD5|example_user|example_auth_passw&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Añade un agente en una política utilizando el ID de agente.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_agent_policy_by_id&id=2&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_agent_policy_by_id&id=2&other=1|1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Añade un agente en una política utilizando el nombre de agente.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_agent_policy_by_name&id=4&other=e76774025b24057cc71df514f27027c43484c3af766ed40f259a86a4fd568f9d&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Elimina un agente de una política utilizando el ID de agente.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=remove_agent_from_policy_by_id&id=2&other=2&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=remove_agent_from_policy_by_id&id=4&other=1|1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Elimina un agente de una política utilizando el nombre de agente.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=remove_agent_from_policy_by_name&id=4&other=e76774025b24057cc71df514f27027c43484c3af766ed40f259a86a4fd568f9d&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un nuevo componente de red.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_network_component&id=example_network_component_name&other=7|network component created by Api|300|30|10|public|3||1|10|20|str|21|30|str1|10|50.00|12&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un nuevo componente de plugin.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_plugin_component&id=example_plugin_component_name&other=2|plugin component created by Api|300|30|10|66|3|2|example_user|example_pass|-p max||1|10|20|str|21|30|str1|10|50.00|12&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un nuevo componente de SNMP.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_snmp_component&id=example_snmp_component_name&other=16|SNMP component created by Api|300|30|10|3||1|10|20|str|21|30|str1|15|50.00|3|.1.3.6.1.2.1.2.2.1.8.2|public|example_auth_user|example_auth_pass|66|AES|example_priv_pass|MD5|authNoPriv|12&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un nuevo componente local.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_local_component&id=example_local_component_name&other=local component created by Api~5~12~module_begin module_name example_local_component_name module_type generic_data module_exec ps | grep pid | wc -l module_interval 2 module_end&other_mode=url_encode_separator_~&apipass=1234&user=admin&pass=pandora
Crea una plantilla de alerta.
Sintaxis de la llamada:
Ejemplos
Ejemplo 1 (condition: regexp =~ /pp/, action: Mail to XXX, max_alert: 10, min_alert: 0, priority: WARNING, group: databases):
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_alert_template&id=example&other=regex|template based in regexp|1||||pp|1||||10|0|||||||||||||3|8&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Ejemplo 2 (condition: value is not between 5 and 10, max_value: 10.00, min_value: 5.00, time_from: 00:00:00, time_to: 15:00:00, priority: CRITICAL, group: Servers):
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_alert_template&id=template_min_max&other=max_min|template based in range|1||||||10|5||||00:00:00|15:00:00|||||||||||4|2&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza una plantilla de alerta.
Sintaxis de llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_alert_template&id=18&other=example_template_with_changed_name|onchange|changing from min_max to onchange||||||1||||5|1|||1|1|0|1|1|0|0|1|field recovery example 2|field recovery example 3|1|8&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra una plantilla de alerta y todas las alertas definidas por ella.
Sintaxis de llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_alert_template&id=38&apipass=1234&user=admin&pass=pandora
Borra una plantilla de módulos.
Sintaxis de llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_module_template&id=38&apipass=1234&user=admin&pass=pandora
Borra una plantilla de módulos.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_module_template_by_names&id=sample-agent&id2=test&other=memfree&apipass=1234&user=admin&pass=pandora&other_mode=url_encode_separator_|
Para una parada planificada.
Sintaxis de llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=stop_downtime&id=1&apipass=1234&user=admin&pass=pandora
Crea un nuevo usuario en Pandora FMS.
op=set
(obligatorio).op2=new_user
(obligatorio).id=< identificador_usuario >
(obligatorio).other=
< parámetros_serializados > ( todos y cada uno son obligatorios) son los datos del usuario, serializados en el siguiente orden:
para insertar espacios)Si usted carece de alguno de los trece campos anteriores simplemente escriba el separador (vea sintaxis de la llamada) pero en todo caso siempre debe colocar 13 separadores.
Ejemplo (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=new_user&id=id_nu&other=John J. Doe|John|Doe|Jay|1234|johndoe@example.com|5555555|en||30|||-1|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza un usuario seleccionado por el id en parámetro id.
Sintaxis de llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_user&id=example_user_name&other=example_fullname||example_lastname||example_new_passwd|example_email||example_language|example comment|1|30|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra un usuario por medio de su identificador.
op=set
(obligatorio).op2=delete_user
(obligatorio).id=
< identificador_de_usuario > (obligatorio) el identificador del usuario a eliminar (User ID).Ejemplo (vea sintaxis de la llamada):
../include/api.php?op=set&op2=delete_user&id=md&apipass=1234&user=admin&pass=pandora
Esta característica está en Metaconsola.
Borra premisos de usuario.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=delete_user_permission&return_type=json&other=2&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra los permisos de un usuario. Puede devolver Json o CSV, este retorno se indica mediante la URL.
Esta característica está en Metaconsola.
Añadir permisos a un grupo de usuario.
Sintaxis de la llamada:
Ejemplo
Puede devolver Json o CSV, este retorno se indica mediante la URL.
no_hierarchy
puede estar vacío, si es así toma el valor 0.
id de permissions (id_up
) en la tabla se puede usar si va a modificarse un permiso existente.
http://localhost/pandora_console/include/api.php?op=set&op2=add_permission_user_to_group&return_type=json&other=admin|0|1|1||&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Activa un usuario desactivado.
Sintaxis de la llamada:
Ejemplos
Ejemplo 1 (Disable user 'example_name')
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=enable_disable_user&id=example_name&other=0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Ejemplo 2 (Enable user 'example_name')
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=enable_disable_user&id=example_name&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Esta característica está en Metaconsola.
Sincroniza usuarios de la metaconsola con el nodo
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=meta_synch_user&apipass=1234&user=admin&pass=pandora&other=name1,name2|nodo1|0|||&other_mode=url_encode_separator_|
Crea un nuevo grupo.
Sintaxis de la llamada:
Ejemplos
Ejemplo 1 (con grupo padre: Servers)
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_group&id=example_group_name&other=applications|2&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Ejemplo 2 (sin grupo padre)
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_group&id=example_group_name2&other=computer|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Ejemplo 3 (crear grupo de agentes con contraseña 1234
, además con un límite a 3 Agentes en el grupo)
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_group&id=example_group_name&other=applications|2|||||||3|1234&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza el grupo con los datos pasados como parámetros.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_group&id=example_group_id&other=New Name|application|2|new description|1|0|custom id||&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Con límite a dos Agentes en el grupo:
http://192.168.80.222/pandora_console/include/api.php?op=set&op2=update_group&id=22&other=New Namee|applications|2|new description|1|0|custom id|12|0|2&other_mode=url_encode_separator_|&apipass=APIPASS&user=USER&pass=PASSWORD
Eliminar un grupo
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_group&id=303&apipass=1234&user=admin&pass=pandora
Añade un perfil a un usuario.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_user_profile&id=md&other=12|4&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Quita un perfil a un usuario.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_user_profile&id=md&other=12|4&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un nuevo incidente.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_incident&other=titulo|descripcion texto|Logfiles|2|10|12&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea una nota dentro de una incidencia.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_note_incident&id=5&id2=miguel&other=una nota para la incidencia&apipass=1234&user=admin&pass=pandora
Valida todas las alertas.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=validate_all_alerts&apipass=1234&user=admin&pass=pandora
Valida todas las alertas que vienen de políticas.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=validate_all_policy_alerts&apipass=1234&user=admin&pass=pandora
Valida todos los eventos que pasan el filtro pasado como parámetros.
Esta característica está en Metaconsola.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=event_validate_filter&other_mode=url_encode_separator_|&other=;|2&apipass=1234&user=admin&pass=pandora
Es igual que la anterior.
Esta característica está en Metaconsola.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=event_validate_filter_pro&other_mode=url_encode_separator_|&other=;|2&apipass=1234&user=admin&pass=pandora
Valida un evento según la id que se pase en los parámetros.
Sintaxis de la llamada:
op=set (obligatorio) op2=validate_event_by_id (obligatorio) id=<id_evento> (obligatorio) el id del evento.
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=validate_event_by_id&id=23&apipass=1234&user=admin&pass=pandora
Aplica una alerta desde una plantilla y un módulo pasado como id de agente y nombre de módulo.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_alert_template&id=example&id2=test&other_mode=url_encode_separator_|&other=memfree&apipass=1234&user=admin&pass=pandora
Añade acciones a una alerta.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=alert_actions&id=example&id2=test&other_mode=url_encode_separator_|&other=memfree|test&apipass=1234&user=admin&pass=pandora
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=alert_actions&id=example&id2=test&other_mode=url_encode_separator_|&other=memfree|test|1|3&apipass=1234&user=admin&pass=pandora
Añade comandos a una alerta.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=alert_commands&id=PRUEBA1&other=command|0|Desc|1|des1|val1|des2|val2|des3|val3||val4|des5&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un nuevo módulo.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_module&id=miguel-portatil&id2=juanito&other_mode=url_encode_separator_|&other=remote_tcp_string|localhost|33|descripcion larga&apipass=1234&user=admin&pass=pandora
Borra un módulo.
A partir de la versión 768 si el módulo a borrar (ej. Host Alive ) es padre de otro módulo (funcionalidad “Servicios de protección en cascada”) los módulos hijos también serán borrados.
op=set
(obligatorio).op2=delete_module
(obligatorio)id=
< nombre del agente > (obligatorio).d2=
< nombre del módulo > (obligatorio).Ejemplo (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=delete_module&id=example&id2=example2&apipass=1234&user=admin&pass=pandora&other_mode=url_encode_separator_|
Parámetro simulate
¡Es absolutamente imprescindible utilizar
other_mode=url_encode_separator_< separator >
con este parámetro!
Si desea confirmar si el agente existe y su módulo también, antes de ejecutar el borrado definitivo bien puede utilizar el parámetro simulate
. Si su llamada de prueba es incorrecta la API 1.0 PFMS devolverá el siguiente mensaje: Parameter error.
.
Ejemplo (vea sintaxis de la llamada):
.../include/api.php?op=set&op2=delete_module&id=agent_name_example&id2=module_name_example&other=simulate&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Activa una alerta dentro de un agente.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=enable_alert&id=example&id2=Status&other=Warning condition&apipass=1234&user=admin&pass=pandora
Activa una alerta dentro de un agente a partir del alias.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=enable_alert_alias&id=example&id2=CPU Load&other=critical condition&apipass=1234&user=admin&pass=pandora
Desactiva una alerta dentro de un agente.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=disable_alert&id=example&id2=Status&other=Warning condition&apipass=1234&user=admin&pass=pandora
Desactiva una alerta dentro de un agente.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=disable_alert_alias&id=example&id2=CPU Load&other=critical condition&apipass=1234&user=admin&pass=pandora
Igual que la llamada enable_alert.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=enable_module_alerts&id=example&id2=Status&apipass=1234&user=admin&pass=pandora
Igual que la llamada disable_alert.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=disable_module_alerts&id=example&id2=Status&apipass=1234&user=admin&pass=pandora
Activa el módulo.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=enable_module&id=example&id2=Status&apipass=1234&user=admin&pass=pandora
Desactiva el módulo.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=disable_module&id=example&id2=Status&apipass=1234&user=admin&pass=pandora
Crea un nuevo módulo de red desde un componente.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=create_network_module_from_component&id=example&id2=OS Total process&apipass=1234&user=admin&pass=pandora
Añade un nuevo valor al módulo. Esta llamada únicamente genera un XML con los datos que se enviarán al servidor, que será el encargado de hacer la actualización en la Base de Datos.
Solamente se controla la generación del fichero XML, devolviendo un mensaje relacionado con ese proceso.
Sintaxis de la llamada:
now
para el momento actual o el timestamp especifico.Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=module_data&id=14&other_mode=url_encode_separator_|&other=123|now&apipass=1234&user=admin&pass=pandora
La generación exitosa del fichero XML no garantiza que la información haya quedado almacenada en la base de datos.
Crea un nuevo grupo de módulos.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=new_module_group&id=Module_group_name&apipass=1234&user=admin&pass=pandora
Esta característica está en Metaconsola.
Sincronizar grupo de módulos desde la metaconsola.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=module_group_synch&other=server_name1|server_name2|server_name3&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 5.0 (Sólo Enterprise)
Añade una configuración a un módulo local.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_module_in_conf&apipass=1234&user=admin&pass=pandora&id=9043&id2=example_name&other=bW9kdWxlX2JlZ2luCm1vZHVsZV9uYW1lIGV4YW1wbGVfbmFtZQptb2R1bGVfdHlwZSBnZW5lcmljX2RhdGEKbW9kdWxlX2V4ZWMgZWNobyAxOwptb2R1bGVfZW5k
Se retornará '0' en caso de éxito,'-1' en caso de error, '-2' si ya existe
= 5.0 (Sólo Enterprise)
Borra la configuración de un módulo local.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_module_in_conf&user=admin&pass=pandora&id=9043&id2=example_name
Se retornará '0' en caso de éxito ó '-1' en caso de error
= 5.0 (Sólo Enterprise)
Actualiza la configuración de un módulo local.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_module_in_conf&apipass=1234&user=admin&pass=pandora&id=9043&id2=example_name&other=bW9kdWxlX2JlZ2luCm1vZHVsZV9uYW1lIGV4YW1wbGVfbmFtZQptb2R1bGVfdHlwZSBnZW5lcmljX2RhdGEKbW9kdWxlX2V4ZWMgZWNobyAxOwptb2R1bGVfZW5k
Se retornará '1' si no cambia, '0' en caso de éxito, '-1' en caso de error, '-2' si no existe
Crea un evento nuevo en Pandora FMS.
Esta característica también trabaja en Metaconsola.
op=set
(obligatorio).op2=create_event
(obligatorio).other=
< parámetros_serializados > (obligatorio), son la configuración y datos del evento, serializados en el siguiente orden:0
New (Nuevo), 1
Validated (Validado), 2
In process (En proceso).unknown
alert_fired
alert_recovered
alert_ceased
alert_manual_validation
system
error
new_agent
configuration_change
going_unknown
going_down_critical
going_down_warning
going_up_normal
0
Maintenance (Mantenimiento).1
Informative (Informativo).2
Normal (Normal).3
Warning (Advertencia).4
Critical (Crítico).5
Minor (Menor).6
Major (Mayor).Ejemplo (vea la sintaxis de llamada):
El evento a crear tiene los siguientes datos personalizados en JSON:
{"Answer to the Ultimate Question of Life, the Universe, and Everything": 42}
Se codifica lo anterior en base64 y se inserta en la llamada:
../include/api.php?op=set&op2=create_event&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora&other=Event_name|0|1|0|admin|alert_fired|4|1|||||comment|admin||tags|eyJBbnN3ZXIgdG8gdGhlIFVsdGltYXRlIFF1ZXN0aW9uIG9mIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmciOiA0Mn0=||12
Añade un comentario acerca del evento indicado.
Esta característica también trabaja en Metaconsola.
op=set
(obligatorio).op2=add_event_comment
(obligatorio).id=
< identificador_del_evento > (obligatorio, tipo numeric).other=
< parámetros_serializados> (obligatorio) son el comentario a agregar y, en el caso de utilizarlo en Metaconsola, el identificador numérico del nodo, serializados en el siguiente orden:url_encode_separator_
< separador > : Vea sintaxis de llamada.Uso en Metaconsola:
true
.Accediendo al Command Center podrá obtener dicho identificador de nodo:
Ejemplos ( vea sintaxis de llamada):
7
y el comentario es comment
):../include/api.php?op=set&op2=add_event_comment&id=7&other=comment&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
1
, el comentario es comment
y el identificador del nodo es 3
):../include/api.php?op=set&op2=add_event_comment&id=1&other=comment|3&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Modifica eventos a través de la API.
Esta característica se encuentra tanto en nodo como en Metaconsola.
Sintaxis de la llamada:
Campos disponibles
{“campo1”:“valor1”,“campo2”:“valor2”}
) codificado en base64 (ej. anterior: eyJjYW1wbzEiOiJ2YWxvcjEiLCJjYW1wbzIiOiJ2YWxvcjIifQ==
).Ejemplos
http://<console_ip>/pandora_console/include/api.php?op=set&op2=event&apipass=pandora&user=admin&pass=pandora&id=175&other_mode=url_encode_separator_|&other=estado,2|evento,Evento modificado|custom_data,eyJjYW1wbzEiOiJ2YWxvcjEiLCJjYW1wbzIiOiJ2YWxvcjIifQ==
http://<metaconsole_ip>/pandora_console/include/api.php?op=set&op2=event&apipass=1234&user=admin&pass=pandora&id=315132&other_mode=url_encode_separator_|&other=estado,0|owner_user,operator|evento,Evento modificado
(>=5.0)
Crea un nuevo filtro de netflow.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora/include/api.php?op=set&op2=create_netflow_filter&apipass=1234&user=admin&pass=pandora&other=Filter name|9|host 192.168.50.3 OR host 192.168.50.4 or HOST 192.168.50.6|dstport|kilobytes&other_mode=url_encode_separator_|
Crea un nuevo campo personalizado para los agentes. Los campos personalizados o custom fields son útiles para las macros de monitorización remota.
op=set
(obligatorio).op2=create_custom_field
(obligatorio).other=
< parámetros serializados > (obligatorios) parámetros para configurar el campo personalizado, serializados en el siguiente orden:0
no se mostrará en la vista de operación del agente, 1
sí será mostrado, siempre y cuando tenga un valor guardado).0
campo personalizado normal, 1
su contenido será ocultado con asteriscos en la Consola web.Si la ejecución de la orden resulta exitosa, devolverá un identificador numérico correspondiente al campo personalizado creado.
Ejemplo (vea la sintaxis de llamada):
../include/api.php?op=set&op2=create_custom_field&other=mycustomfield|0|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Debe asegurarse de que el usuario utilizado tiene derechos suficientes para crear campos personalizados. En el ejemplo se utiliza las credenciales de un superadmin, si utiliza el usuario por defecto internal_API
no podrá crear dichos campos personalizados.
= 5.0
Crea un nuevo tag.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_tag&other=tag_name|tag_description|tag_url|tag_email&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Activa un agente desactivado.
Sintaxis de la llamada:
Ejemplos
Example 1 (Disable agent 'example_id')
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=enable_disable_agent&id=example_id&other=0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Example 2 (Enable agent 'example_id')
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=enable_disable_agent&id=example_id&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Añade solamente la posición GIS a un agente.
Sintaxis de la llamada:
op=
set (obligatorio).op2=gis_agent_only_position
(obligatorio)id=
<índice> (obligatorio) debe ser un índice de un agente.other=
<parámetros serializados> (obligatorio) parámetros para configurar el GIS utilizando el url_encode_separator_
para diferenciarlos (utilice como separador decimal el punto .
):Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=admin&pass=pandora&op=set&op2=gis_agent_only_position&id=582&other_mode=url_encode_separator_|&other=2|1|0
= 5.0
Añade los datos GIS a un agente.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora5/include/api.php?apipass=1234&user=admin&pass=pandora&op=set&op2=gis_agent&id=582&other_mode=url_encode_separator_|&other=2|2|0|0|0|2000-01-01 01:01:01|0|666|aaa|bbb|ccc
Actualiza el conteo de módulos y alertas de un agente.
Sintaxis de la llamada:
All
.Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=reset_agent_counts&apipass=1234&user=admin&pass=pandora&id=All
= 5.1
Permite añadir un día especial.
Sintaxis:
Example
http://127.0.0.1/pandora_console/include/api.php?apipass=1111&user=admin&pass=pandora&op=set&op2=create_special_day&other_mode=url_encode_separator_|&other=2014-05-03|Sunday|desc|0
= 5.1
Actualizar configuración de un día especial ya definido.
Sintaxis:
Example
http://127.0.0.1/pandora_console/include/api.php?apipass=1111&user=admin&pass=pandora&op=set&op2=update_special_day&id=1&other_mode=url_encode_separator_|&other=2014-05-03|Sunday|desc|0
= 5.1
Permite borrar un día especial.
Sintaxis:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?apipass=1111&user=admin&pass=pandora&op=set&op2=delete_special_day&id=1
= 5.1
Conecta notificaciones de PagerDuty con alertas de Pandora FMS. Esta llamada se configurará en la opción Webhook del servicio de PagerDuty para validar las alertas de Pandora FMS previamente enlazadas a PagerDuty cuando estas sean validadas desde PagerDuty.
Sintaxis:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=pagerduty_webhook&apipass=1234&user=admin&pass=pandora&id=alert
= 6
Añade un tag a un perfil de un usuario.
Sintaxis:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=tag_user_profile&apipass=1234&user=admin&pass=pandora&id=1&id2=2&other_mode=url_encode_separator_|&other=122|3
= 6
Añade un tag a tu Pandora FMS.
Sintaxis:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=tag&apipass=1234&user=admin&pass=pandora&id=test&other_mode=url_encode_separator_|&other="un test"|https://pandorafms.com|[email protected]|01189998819991197253
= 6
Añade un tag a un módulo.
Sintaxis:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_tag_module&apipass=1234&user=admin&pass=pandora&id=1&id2=2
= 6
Quita un tag a un módulo.
Sintaxis:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=remove_tag_module&apipass=1234&user=admin&pass=pandora&id=1&id2=2
= 5.1
Crea una parada planificada.
El formato de fecha tiene que ser MM/DD/YYYY para que esta llamada funcione adecuadamente.
Ejemplos
Una sola vez:
http://localhost/pandora_console/include/api.php?op=set&op2=planned_downtimes_created&apipass=1234&user=admin&pass=pandora&id=testing&other=testing|11/05/2018|11/16/2018|0|1|1|1|1|1|1|1|12:06:00|19:06:00|1|31|quiet|once|weekly|admin&other_mode=url_encode_separator_|
Periódicamente:
http://localhost/pandora_console/include/api.php?op=set&op2=planned_downtimes_created&apipass=1234&user=admin&pass=pandora&id=testing&other=testing|11/05/2018|11/16/2018|0|1|1|1|1|1|1|1|12:06:00|19:06:00|1|31|quiet|periodically|weekly|admin&other_mode=url_encode_separator_|
= 754
Edita una parada planificada.
El formato de fecha tiene que ser AAAA/MM/DD (año/mes/día) para que esta llamada funcione adecuadamente.
Ejemplo:
http://localhost/pandora_console/include/api.php?op=set&op2=planned_downtimes_edit&apipass=1234&user=admin&pass=pandora&id=2&other=testing2|test2| 2021/05/10|2021/06/12|19:03:03|19:55:00|0|0|0|0|0|0|0|0|1|31|quiet|once|weekly&other_mode=url_encode_separator_|
Añade agentes a la parada planificada.
op=set
(obligatorio).op2=planned_downtimes_add_agents
(obligatorio).id=
< id_parada > identificador de la parada planificada (obligatorio).other=
< id_agente1 separador id_agente2 separador id_agente3 separador … id_agenteN > identificador de cada Agente a agregar, para el separador vea la sintaxis de llamada.Ejemplo (vea la sintaxis de llamada):
…/include/api.php?op=set&op2=planned_downtimes_add_agents&id=4&other=1|2|3&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra los agentes (y los Módulos de esos agentes) de la parada planificada.
op=set
(obligatorio).op2=planned_downtimes_delete_agents
(obligatorio).id=
< id_parada > identificador de la parada planificada (obligatorio).other=
< id_agente1 separador id_agente2 separador id_agente3 separador … id_agenteN > identificador de cada Agente a borrar, para el separador vea la sintaxis de llamada.Ejemplo (vea la sintaxis de llamada):
…/include/api.php?op=set&op2=planned_downtimes_delete_agents&id=4&other=1|2|3&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 5.1
Crea registros para una parada planificada.
Ejemplo:
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=planned_downtimes_additem&apipass=1234&user=admin&pass=pandora&id=123&other=1;2;3;4|Status;Unkown_modules &other_mode=url_encode_separator_|
=5.1
Elimina una parada planificada.
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=planned_downtimes_deleted&apipass=1234&user=admin&pass=pandora&id=10
=5.1SP4
Crea un módulo sintético:
En las creación de tipo arithmetic el primer dato si es Agente y módulo sin operador : AgentName;NameModule. Si es un valor: <Operation;Value>. El resto de valores irían ya de la forma siguiente: <AgentName;Operation;NameModule> or <Operation;Value>
average: <AgentName;Operation;NameModule> or <Operation;Value>
arithmetic: ADD, SUB, MUL, DIV average: Only AVG
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_synthetic_module&apipass=1234&user=admin&pass=pandora&id=test&other=Test|arithmetic|Agent Name;Module Name|Agent Name2;ADD;Module Name2&other_mode=url_encode_separator_|
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_synthetic_module&apipass=1234&user=admin&pass=pandora&id=example&other=prueba|average|Agent Name;AVG;Name Module|Agent Name2;AVG;Name Module2&other_mode=url_encode_separator_|
= 7
Crea un servicio.
<id_warning_module_template_alert>;<id_critical_module_template_alert>;<id_critical_module_sla_template_alert>;
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_service&return_type=json&other=test1|Descripcion|12|1|0.5|1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7
Modifica un servicio.
<id_warning_module_template_alert>;<id_critical_module_template_alert>;<id_critical_module_sla_template_alert>;
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_service&return_type=json&id=1&other=test2|Descripcion2|||0.6|&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7
Añade uno o varios elementos al servicio.
La estructura del json debe ser la siguiente:
[ { "type": "agent", "id": 2, "description": "Test1", "weight_critical": 0, "weight_warning": 0, "weight_unknown": 0, "weight_ok": 0 }, { "type": "module", "id": 1, "description": "Test2", "weight_critical": 0, "weight_warning": 0, "weight_unknown": 0, "weight_ok": 0 }, { "type": "service", "id": 3, "description": "Test3", "weight_critical": 0, "weight_warning": 0, "weight_unknown": 0, "weight_ok": 0 } ]
En cada tipo, el campo id hace referencia a cosas diferentes:
- Si es de tipo agent, es el id del agente.
- Si es de tipo module, es el id agente modulo
- Si es tipo service, es el id del servicio que queremos añadir.
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_element_service&return_type=json&id=6&other=WwogIHsKICAgICJ0eXBlIjogImFnZW50IiwKICAgICJpZCI6IDIsCiAgICAiZGVzY3JpcHRpb24iOiAiVGVzdDEiLAogICAgIndlaWdodF9jcml0aWNhbCI6IDAsCiAgICAid2VpZ2h0X3dhcm5pbmciOiAwLAogICAgIndlaWdodF91bmtub3duIjogMCwKICAgICJ3ZWlnaHRfb2siOiAwCiAgfSwKICB7CiAgICAidHlwZSI6ICJtb2R1bGUiLAogICAgImlkIjogMSwKICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0MiIsCiAgICAid2VpZ2h0X2NyaXRpY2FsIjogMCwKICAgICJ3ZWlnaHRfd2FybmluZyI6IDAsCiAgICAid2VpZ2h0X3Vua25vd24iOiAwLAogICAgIndlaWdodF9vayI6IDAKICB9LAogIHsKICAgICJ0eXBlIjogInNlcnZpY2UiLAogICAgImlkIjogMywKICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0MyIsCiAgICAid2VpZ2h0X2NyaXRpY2FsIjogMCwKICAgICJ3ZWlnaHRfd2FybmluZyI6IDAsCiAgICAid2VpZ2h0X3Vua25vd24iOiAwLAogICAgIndlaWdodF9vayI6IDAKICB9Cl0=&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7
Añade licencia a metaconsole y sincroniza con los nodos
Ejemplo
http://127.0.0.1/pandora_console/enterprise/meta/include/api.php?op=set&op2=metaconsole_synch&id=CODIGODELICENCIA&apipass=1234&user=admin&pass=pandora
= 7.21 ONLY METACONSOLE
Añade a la cola de migración de agentes un agente seleccionado
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=migrate_agent&apipass=1234&user=admin&pass=pandora&id=2&other=example|example2|0&other_mode=url_encode_separator_|&return_type=string
= 7.0
Crea un cluster de agentes
Crea un cluster de monitorización con agentes e items para monitorizar distintos nodos.
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=new_cluster&other=nombre_cluster|AA|descripcion|12&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0
Añadir agente a cluster
La estructura del json debe ser la siguiente:
[ { "id": 5, "id_agent": 2 }, { "id": 5, "id_agent": 3 } ]
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_cluster_agent&other=W3siaWQiOjUsImlkX2FnZW50IjoyfSwKeyJpZCI6NSwiaWRfYWdlbnQiOjN9XQ==&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0
Añadir item activo/activo a cluster
La estructura del json debe ser la siguiente:
[ { "name": "Swap_Used", "id_cluster": 5, "type": "AA", "critical_limit": 80, "warning_limit":60 }, { "name": "TCP_Connections", "id_cluster": 5, "type": "AA", "critical_limit":80, "warning_limit":60 } ]
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_cluster_item&other=WwogIHsKICAgICJuYW1lIjogIlN3YXBfVXNlZCIsCiAgICAiaWRfY2x1c3RlciI6IDUsCiAgICAidHlwZSI6ICJBQSIsCiAgICAiY3JpdGljYWxfbGltaXQiOiA4MCwKwqAgICAid2FybmluZ19saW1pdCI6NjAKICB9LAogIHsKICAgICJuYW1lIjogIlRDUF9Db25uZWN0aW9ucyIsCiAgICAiaWRfY2x1c3RlciI6IDUsCiAgICAidHlwZSI6ICJBQSIsCiAgICAiY3JpdGljYWxfbGltaXQiOjgwLArCoCAgICJ3YXJuaW5nX2xpbWl0Ijo2MAogIH0KXQo=&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0
Añadir item activo/pasivo a cluster
La estructura del json debe ser la siguiente:
[ { "name": "DiskUsed_/proc/kcore", "id_cluster": 5, "type": "AP", "is_critical": 1 }, { "name": "DiskUsed_/proc/sched_debug", "id_cluster": 5, "type": "AP", "is_critical": 1 } ]
Ejemplo:
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=add_cluster_item&other=WwogIHsKICAgICJuYW1lIjogIkRpc2tVc2VkXy9wcm9jL2tjb3JlIiwKICAgICJpZF9jbHVzdGVyIjogNSwKICAgICJ0eXBlIjogIkFQIiwKICAgICJpc19jcml0aWNhbCI6IDEKICB9LAogIHsKICAgICJuYW1lIjogIkRpc2tVc2VkXy9wcm9jL3NjaGVkX2RlYnVnIiwKICAgICJpZF9jbHVzdGVyIjogNSwKICAgICJ0eXBlIjogIkFQIiwKICAgICJpc19jcml0aWNhbCI6IDEKICB9Cl0=&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0
Eliminar cluster
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_cluster&id=7&apipass=1234&user=admin&pass=pandora
= 7.0
Desasociar un agente de un cluster
La estructura del json debe ser la siguiente:
[ { "id": 5, "id_agent": 2 }, { "id": 5, "id_agent": 3 } ]
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_cluster_agents&other=WwogIHsKICAgICJpZCI6IDUsCiAgICAiaWRfYWdlbnQiOiAyCiAgfSwKICB7CiAgICAiaWQiOiA1LAogICAgImlkX2FnZW50IjogMwogIH0KXQ==&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0
Eliminar item de un cluster
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_cluster_item&id=9&apipass=1234&user=admin&pass=pandora
= 7.0. 725
Crear una política. Son obligatorios el nombre de la política, el cual no puede estar repetido y el id_grupo el cual debe existir en la bbdd.
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=create_policy&apipass=1234&user=admin&pass=pandora&other=name Policy|11|this description&other_mode=url_encode_separator_|&return_type=json
= 7.0. 725
Actualizar una política. El nombre de la política no puede estar repetido y el id_grupo debe existir en la bbdd. devuelve 0 (false) o id de la política actualizada (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=update_policy&apipass=1234&user=admin&pass=pandora&id=17&other=policy2|11|this description&other_mode=url_encode_separator_|&return_type=json
= 7.0. 725
Eliminar una política. es necesario introducir el id de política y que exista dicha política para poder eliminarla. devuelve 0 (false) o 1 (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=delete_policy&apipass=1234&user=admin&pass=pandora&id=10&return_type=json
= 7.0. 725
Añadir una colección a una política. Es necesario introducir el id de política y que exista dicha política, como un id, nombre o nombre corto de la colección que se quiera añadir la cual debe existir. Ambos campos son obligatorios. devuelve 0 (false) o el id de la colección añadida a una politica (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=add_collections_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=4&id2=apache_plugin
= 7.0. 725
Para marcar una colección de una política que esta pendiente de ser borrada es necesario:
devuelve 0 (false) o 1 (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=remove_collections_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=4&id2=2&other=1.
= 7.0. 725
Para añadir un plugin a una política es necesario:
Devuelve 0 (false) o el id del plugin que ha sido añadido a una política (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=create_plugins_policy&apipass=1234&user=admin&pass=pandora&return_type=json&id=2&id2=echo 1
= 7.0. 725
Para eliminar un plugin de una política es necesario:
devuelve 0 (false) o 1 (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=delete_plugins_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=2&id2=1&other=1
= 7.0. 725
Para enlazar un módulo desenlazado de una política es necesario:
devuelve 0 (false) o 1 (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=linking_policy&apipass=1234&user=admin&pass=pandora&return_type=json&id=28
= 7.0. 725
Para crear alertas de una política es necesario:
devuelve 0 (false) o el id de la alerta añadida en la política (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=create_alerts_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=2&other=0|2|1|cpu load&other_mode=url_encode_separator_|
= 7.0. 725
Para actualizar alertas de una política es necesario:
devuelve 0 (false) o el id de la alerta actualizada en la política (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=update_alerts_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=7&other=1|1&other_mode=url_encode_separator_|
= 7.0. 725
Para eliminar una alerta de una política es necesario:
devuelve 0 (false) o 1 (true).
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=delete_alerts_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=7&id2=1
= 7.0. 725
Para añadir una acción a una alerta de una política es necesario:
devuelve 0 (false) o el id de la acción añadida a la alerta de una política (true).
Ejemplo
http://172.16.0.2/pandora_console/include/api.php?op=set&op2=create_alerts_actions_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=1&id2=4&other=5|2&other_mode=url_encode_separator_|
= 7.0. 725
Para eliminar una acción de una alerta de una política es necesario:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=delete_alerts_actions_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=1&id2=4
= 7.0. 725
Para eliminar un agente de una política es necesario:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=remove_agents_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=5&id2=2
= 7.0. 725
Para agregar un grupo de una política es necesario:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=add_groups_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=7&id2=12
= 7.0. 725
Para eliminar un agente de una política es necesario:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=remove_groups_policy&apipass=1234&user=admin&pass=pandora&return_type=string&id=5&id2=2
= 7.0. 727
Crea un nuevo sistema operativo con los datos pasados como parámetros.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_os&other=os_name|os_description|os_icon.png&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0. 727
Actualiza el sistema operativo con los datos pasados como parámetros.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?id=107&op=set&op2=update_os&other=os_name_to_update|os_description_to_update|os_icon_to_update.png&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0. 728
Deshabilita un agente y, si tiene configuración remota, lo pone en modo standby.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?id=2&op=set&op2=disabled_and_standby&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
http://127.0.0.1/pandora_console/include/api.php?id=2&id2=1&op=set&op2=disabled_and_standby&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0. 728
Permite validar traps.
Ejemplo
https://127.0.0.1/pandora_console/include/api.php?op=set&op2=validate_traps&id=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0. 728
Permite eliminar un trap:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?id=2&op=set&op2=delete_traps&id=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
= 7.0NG. 728
Esta función permite gestionar el acceso a una tercera aplicación a partir de registros en el system audit log de pandorafms. Utiliza diferentes parámetros para procesar una de estas acciones de registro en nuestra aplicación y evita el acceso concurrente de usuarios administradores. Opcionalmente puede prohibir el acceso a usuarios no administradores.
Sintaxis de la llamada:
El id del usuario que intenta acceder a la aplicación, este dato queda registrado y se comprueba en la auditoría para filtrar el acceso, salida, explusión o navegación del usuario a través de la aplicación.
login: Se usa para solicitar el acceso a la aplicación. Devuelve la cadena de texto free
y registra nuestro acceso en la auditoría de pandorafms o devuelve la cadena de texto denied
si en los registros de la auditoría hay otro usuario que haya accedido anteriormente al sistema y no haya salido aún. También devolverá denied
si el parámetro de acceso solo para administradores está activado y el usuario no lo es.
logout: Registra la salida de un usuario de la aplicación para que vuelva a estar permitido el acceso a otros usuarios.
browse: Se debe de utilizar en todas las páginas de la aplicación externa, ya que comprueba si éste usuario sigue siendo el último que ha accedido o ha sido expulsado de la aplicación.
exclude: Expulsa al usuario registrado actualmente y registra el acceso de otro que hayamos enviado en el parámetro de id_usuario.
IP de la aplicación desde la que se está accediendo. Se registró y se comprueba en la auditoría de pandorafms para comprobar el estado de acceso de los usuarios en la aplicación.
Nombre de la aplicación desde la que se está accediendo. Se registró y se comprueba en la auditoría de Pandora FMS para comprobar el estado de acceso de los usuarios en la aplicación.
Prohibe el acceso de usuarios no administradores.
Ejemplo (requiere entorno adaptado)
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=access_process&other=1|login|192.168.50.25|external_app|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea una nueva respuesta de evento.
op=set
(obligatorio).op2=create_event_response
(obligatorio).return_type=csv
ó return_type=json
(uno de los dos, obligatorio).other=
< parámetros serializados > (todos obligatorios). En este orden:command
, aquí hay que indicar el comando que se quiere que ejecute la respuesta al evento. En cambio, si es url
, se debe indicar la URL (target) a la que se desea acceder como respuesta al evento.command
ó url
.1
ó 0
. Indica si la URL se muestra en una ventana nueva (1
) o sobre una ventana modal (0
).0
.Ejemplo (vea sintaxis de la llamada):
…/include/api.php?op=set&op2=create_event_response&other=response|description response|touch|command|0|650|400|0|response|0|90&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Edita una respuesta de evento existente. El usuario debe de tener permisos sobre el grupo al que pertenece la respuesta para poder editarla.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=update_event_response&id=5&other=response|description response|touch|command|0|650|400|0|response|0|90&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra una respuesta de evento. El usuario debe de tener permisos sobre el grupo al que pertenece la respuesta para poder borrarla.
Sintaxis de la llamada:
Ejemplo
http://localhost/pandora_console/include/api.php?op=set&op2=delete_event_response&id=7&apipass=1234&user=admin&pass=pandora
Crea un nuevo perfil de usuario.
Sintaxis de la llamada:
AR|AW|AD|LW|LM|UM|DM|ER|EW|EM|RR|RW|RM|MR|MW|MM|VR|VW|VM|PM
Para saber que permisos debemos activar, visite este enlace.
Ejemplos
Este ejemplo crea un perfil que da un acceso de solo lectura a Pandora FMS, es decir, es igual que el perfil predefinido Operator (read).
http://localhost/pandora_console/include/api.php?op=set&op2=create_user_profile_info&return_type=json&other=API_profile|1|0|0|1|0|0|0|0|0|0|1|0|0|1|0|0|1|0|0|1|0|0|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza nuevo perfil de usuario existente.
Sintaxis de la llamada:
AR|AW|AD|LW|LM|UM|DM|ER|EW|EM|RR|RW|RM|MR|MW|MM|VR|VW|VM|PM
Para saber que permisos debemos activar, visite este enlace.
Ejemplos
En este ejemplo se cambia el nombre del perfil con ID 6 a API_profile_updated y se le dan todos los permisos (lectura, escritura y gestión) en lo relacionado a agentes y se elimina el permiso de lectura de eventos.
http://localhost/pandora_console/include/api.php?op=set&op2=update_user_profile_info&return_type=json&id=6&other=API_profile_updated||||1|1|1|||||0||||||||||||&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra un perfil de usuario. También elimina todas las asignaciones de ese perfil a cualquier usuario.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=delete_user_profile_info&return_type=json&id=8&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea un filtro de evento.
Sintaxis de la llamada:
["id_etiqueta_1","id_etiqueta_2", "id_etiqueta3", "…"]
)
["id_etiqueta_1","id_etiqueta_2", "id_etiqueta3", "…"]
)
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=create_event_filter&id=test&other=||error|4|||1||12|||2018-12-09|2018-12-13|["6"]|["10","6","3"]|1|10|||&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza un filtro de evento.
Sintaxis de la llamada:
["id_etiqueta_1","id_etiqueta_2", "id_etiqueta3", "…"]
)
["id_etiqueta_1","id_etiqueta_2", "id_etiqueta3", "…"]
)
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=update_event_filter&id=195&other=new_name|||alert_recovered|||||||||||||||||&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra un filtro de evento.
Sintaxis de la llamada:
Ejemplo
http://127.0.0.1/pandora_console/include/api.php?op=set&op2=delete_event_filter&id=38&apipass=1234&user=admin&pass=pandora
Devuelve la lista de filtros de eventos existentes.
Sintaxis de la llamada:
Ejemplos
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=all_event_filters&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
Crea un nuevo módulo de inventario.
Sintaxis de la llamada:
Ejemplo
Este ejemplo crea módulo llamado OS de inventario que recoge los datos kernel-name y nodename de un sistema Linux.
http://localhost/pandora_console/include/api.php?op=set&op2=create_inventory_module&return_type=json&other=OS|OS_name_description|1|/bin/bash|IyEvYmluL2Jhc2gKZWNobyB1bmFtZSAtbiAtcw==|kernelname;nodename|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Actualiza un módulo de inventario.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=update_inventory_module&return_type=json&id=42&other=OS_easy|OS_name_description|1|/bin/bash|IyEvYmluL2Jhc2gKZWNobyB1bmFtZSAtbiAtcw==|kernelname;nodename|0&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Borra un perfil de usuario. También elimina todas las asignaciones de ese perfil a cualquier usuario.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=delete_inventory_module&return_type=json&id=42&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Crea una colección.
Sintaxis de la llamada:
Es necesario acompañarlo con 'other_mode' de la siguiente manera: other_mode=url_encode_separator_<separador> para pasar el separador de los valores serializados de other.
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=create_collection&other=test_plugin|test_p|0|test&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=pandora
Elimina una colección.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=delete_collection&id=15&apipass=1234&user=admin&pass=pandora
Habilita o deshabilita una tarea en Discovery Task list.
Sintaxis de la llamada:
Ejemplos
http://localhost/pandora_console/include/api.php?op=set&op2=enable_disable_discovery_task&id=1&other=1&other_mode=url_encode_separator_|&apipass=1234&user=admin&pass=
Agrega un Módulo a la política objetivo por medio de una definición hecha en formato JSON.
Sintaxis de la llamada:
{ name: <value>, // mandatory id_module: <value>, // mandatory id_tipo_modulo: <value>, // mandatory configuration_data: <value>, description: <value>, unit: <value>, max: <value>, min: <value>, module_interval: <value>, ip_target: <value>, tcp_port: <value>, tcp_send: <value>, tcp_rcv: <value>, snmp_community: <value>, snmp_oid: <value>, id_module_group: <value>, flag: <value>, disabled: <value>, id_export: <value>, plugin_user: <value>, plugin_pass: <value>, plugin_parameter: <value>, id_plugin: <value>, post_process: <value>, prediction_module: <value>, max_timeout: <value>, max_retries: <value>, custom_id: <value>, history_data: <value>, min_warning: <value>, max_warning: <value>, str_warning: <value>, min_critical: <value>, max_critical: <value>, str_critical: <value>, min_ff_event: <value>, custom_string_1: <value>, custom_string_2: <value>, custom_string_3: <value>, custom_integer_1: <value>, custom_integer_2: <value>, pending_delete: <value>, critical_instructions: <value>, warning_instructions: <value>, unknown_instructions: <value>, critical_inverse: <value>, warning_inverse: <value>, id_category: <value>, module_ff_interval: <value>, quiet: <value>, cron_interval: <value>, macros: <value>, disabled_types_event: { "going_unknwon": 1, // Disable going unknown events. }, module_macros: <value>, min_ff_event_normal: <value>, min_ff_event_warning: <value>, min_ff_event_critical: <value>, ff_type: <value>, each_ff: <value>, ff_timeout: <value>, dynamic_interval: <value>, dynamic_max: <value>, dynamic_min: <value>, dynamic_next: <value>, dynamic_two_tailed: <value>, prediction_sample_window: <value>, prediction_samples: <value>, prediction_threshold: <value>, cps: <value>, }
Ejemplos
En formato JSON antes de convertir a base64:
{ "id_tipo_modulo": 1, "id_modulo": 10, "name": "sample module", "description": "Module created by API", "configuration_data": "module_begin\nmodule_name sample module\nmodule_type generic_data\nmodule_exec echo 1\nmodule_end", "min_warning": 2, "max_warning": 5, "min_critical": 5, "max_critical": 7 }
Una vez codificado en base64:
http://localhost/pandora_console/include/api.php?op=set&op2=create_module_policy_json&id=1&other=ewogICJpZF90aXBvX21vZHVsbyI6IDEsCiAgImlkX21vZHVsbyI6IDEwLAogICJuYW1lIjogInNhbXBsZSBtb2R1bGUiLAogICJkZXNjcmlwdGlvbiI6ICJNb2R1bGUgY3JlYXRlZCBieSBBUEkiLAogICJjb25maWd1cmF0aW9uX2RhdGEiOiAibW9kdWxlX2JlZ2luXG5tb2R1bGVfbmFtZSBzYW1wbGUgbW9kdWxlXG5tb2R1bGVfdHlwZSBnZW5lcmljX2RhdGFcbm1vZHVsZV9leGVjIGVjaG8gMVxubW9kdWxlX2VuZCIsCiAgIm1pbl93YXJuaW5nIjogMiwKICAibWF4X3dhcm5pbmciOiA1LAogICJtaW5fY3JpdGljYWwiOiA1LAogICJtYXhfY3JpdGljYWwiOiA3Cn0K&apipass=pandora&user=admin&pass=pandora
Actualiza la definición de un Módulo existente de la política objetivo por medio de una definición hecha en formato JSON.
Sintaxis de la llamada:
{ name: <value>, // mandatory id_module: <value>, // mandatory id_tipo_modulo: <value>, // mandatory configuration_data: <value>, description: <value>, unit: <value>, max: <value>, min: <value>, module_interval: <value>, ip_target: <value>, tcp_port: <value>, tcp_send: <value>, tcp_rcv: <value>, snmp_community: <value>, snmp_oid: <value>, id_module_group: <value>, flag: <value>, disabled: <value>, id_export: <value>, plugin_user: <value>, plugin_pass: <value>, plugin_parameter: <value>, id_plugin: <value>, post_process: <value>, prediction_module: <value>, max_timeout: <value>, max_retries: <value>, custom_id: <value>, history_data: <value>, min_warning: <value>, max_warning: <value>, str_warning: <value>, min_critical: <value>, max_critical: <value>, str_critical: <value>, min_ff_event: <value>, custom_string_1: <value>, custom_string_2: <value>, custom_string_3: <value>, custom_integer_1: <value>, custom_integer_2: <value>, pending_delete: <value>, critical_instructions: <value>, warning_instructions: <value>, unknown_instructions: <value>, critical_inverse: <value>, warning_inverse: <value>, id_category: <value>, module_ff_interval: <value>, quiet: <value>, cron_interval: <value>, macros: <value>, disabled_types_event: { "going_unknwon": 1, // Disable going unknown events. }, module_macros: <value>, min_ff_event_normal: <value>, min_ff_event_warning: <value>, min_ff_event_critical: <value>, ff_type: <value>, each_ff: <value>, ff_timeout: <value>, dynamic_interval: <value>, dynamic_max: <value>, dynamic_min: <value>, dynamic_next: <value>, dynamic_two_tailed: <value>, prediction_sample_window: <value>, prediction_samples: <value>, prediction_threshold: <value>, cps: <value>, }
Ejemplos
En formato JSON antes de convertir a base64:
{ "id_tipo_modulo": 1, "id_modulo": 1, "name": "nombre editado", "description": "Module created by API", "configuration_data": "module_begin\nmodule_name sample module\nmodule_type generic_data\nmodule_exec echo 1\nmodule_end", "min_warning": 3, "max_warning": 6, "min_critical": 6, "max_critical": 8 }
Una vez codificado en base64:
http://localhost/pandora_console/include/api.php?op=set&op2=update_module_policy_json&id=1&id2=43&other=ewogICJpZF90aXBvX21vZHVsbyI6IDEsCiAgImlkX21vZHVsbyI6IDEsCiAgIm5hbWUiOiAibm9tYnJlIGVkaXRhZG8iLAogICJkZXNjcmlwdGlvbiI6ICJNb2R1bGUgY3JlYXRlZCBieSBBUEkiLAogICJjb25maWd1cmF0aW9uX2RhdGEiOiAibW9kdWxlX2JlZ2luXG5tb2R1bGVfbmFtZSBzYW1wbGUgbW9kdWxlXG5tb2R1bGVfdHlwZSBnZW5lcmljX2RhdGFcbm1vZHVsZV9leGVjIGVjaG8gMVxubW9kdWxlX2VuZCIsCiAgIm1pbl93YXJuaW5nIjogMywKICAibWF4X3dhcm5pbmciOiA2LAogICJtaW5fY3JpdGljYWwiOiA2LAogICJtYXhfY3JpdGljYWwiOiA4Cn0K&apipass=pandora&user=admin&pass=pandora
Para establecer un identificador personalizado en un evento.
op=get
(obligatorio).op2=set
(obligatorio).id=
< id_evento > (obligatorio, valor numérico).id2=
< id_personalizado_de_evento > (obligatorio, valor alfanumérico).Ejemplo (véase sintaxis de la llamada):
…/include/api.php?op=set&op2=event_custom_id&id=110&id2=9999&apipass=1234&user=admin&pass=pandora
Distintos ejemplos simples de llamada al API en distintos lenguajes.
Ejemplo
http://127.0.0.1/pandora5/include/api.php?apipass=1234&user=admin&pass=pandora&op=set&op2=gis_agent&id=582&other_mode=url_encode_separator_|&other=2|2|0|0|0|2000-01-01 01:01:01|0|666|aaa|bbb|ccc
<?php $ip = '192.168.70.110'; $pandora_url = '/pandora5'; $apipass = '1234'; $user = 'admin'; $password = 'pandora'; $op = 'get'; $op2 = 'all_agents'; $return_type = 'csv'; $other = ''; $other_mode = ''; $url = "http://" . $ip . $pandora_url . "/include/api.php"; $url .= "?"; $url .= "apipass=" . $apipass; $url .= "&user=" . $user; $url .= "&pass=" . $password; $url .= "&op=" . $op; $url .= "&op2=" . $op2; if ($id !== '') { $url .= "&id=" . $id; } if ($id2 !== '') { $url .= "&id2=" . $id2; } if ($return_type !== '') { $url .= "&return_type=" . $return_type; } if ($other !== '') { $url .= "&other_mode=" . $other_mode; $url .= "&other=" . $other; } $curlObj = curl_init(); curl_setopt($curlObj, CURLOPT_URL, $url); curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curlObj); curl_close($curlObj); $agents = array(); if (!empty($result)) { $lines = explode("\n", $result); foreach ($lines as $line) { $fields = explode(";", $line); $agent = array(); $agent['id_agent'] = $fields[0]; $agent['name'] = $fields[1]; $agent['ip'] = $fields[2]; $agent['description'] = $fields[3]; $agent['os_name'] = $fields[4]; $agent['url_address'] = $fields[5]; $agents[] = $agent; } } print_list_agents($agents); function print_list_agents($agents) { echo "<table border='1' style='empty-cells: show;'>"; echo "<thead>"; echo "<tr>"; echo "<th>" . "ID" . "</th>"; echo "<th>" . "Name" . "</th>"; echo "<th>" . "IP" . "</th>"; echo "<th>" . "Description" . "</th>"; echo "<th>" . "OS" . "</th>"; echo "<th>" . "URL" . "</th>"; echo "</tr>"; echo "</thead>"; foreach ($agents as $agent) { echo "<tr>"; echo "<td>" . $agent['id_agent'] . "</td>"; echo "<td>" . $agent['name'] . "</td>"; echo "<td>" . $agent['ip'] . "</td>"; echo "<td>" . $agent['description'] . "</td>"; echo "<td>" . $agent['os_name'] . "</td>"; echo "<td>" . $agent['url_address'] . "</td>"; echo "</tr>"; } echo "</table>"; } ?>
import pycurl import cStringIO import pprint def main(): ip = '192.168.70.110' pandora_url = '/pandora5' apipass = '1234' user = 'admin' password = 'pandora' op = 'get' op2 = 'all_agents' return_type = 'csv' other = '' other_mode = '' url = "http://" ip pandora_url "/include/api.php" url = "?" url = "apipass=" apipass url = "&user=" user url = "&pass=" password url = "&op=" op url = "&op2=" op2 buf = cStringIO.StringIO() c = pycurl.Curl() c.setopt(c.URL, url) c.setopt(c.WRITEFUNCTION, buf.write) c.perform() output = buf.getvalue() buf.close() lines = output.split("\n") agents = [] for line in lines: if not line: continue fields = line.split(";") agent = {} agent['id_agent'] = fields[0] agent['name'] = fields[1] agent['ip'] = fields[2] agent['description'] = fields[3] agent['os_name'] = fields[4] agent['url_address'] = fields[5] agents.append(agent) for agent in agents: print("---- Agent #" agent['id_agent'] " ----") print("Name: " agent['name']) print("IP: " agent['ip']) print("Description: " agent['description']) print("OS: " agent['os_name']) print("URL: " agent['url_address']) print("") if __name__ == "__main__": main()
use strict; use warnings; use WWW::Curl::Easy; sub write_callback { my ($chunk,$variable) = @_; push @{$variable}, $chunk; return length($chunk); } my $ip = '192.168.70.110'; my $pandora_url = '/pandora5'; my $apipass = '1234'; my $user = 'admin'; my $password = 'pandora'; my $op = 'get'; my $op2 = 'all_agents'; my $return_type = 'csv'; my $other = ''; my $other_mode = ''; my $url = "http://" . $ip . $pandora_url . "/include/api.php"; $url .= "?"; $url .= "apipass=" . $apipass; $url .= "&user=" . $user; $url .= "&pass=" . $password; $url .= "&op=" . $op; $url .= "&op2=" . $op2; my @body; my $curl = WWW::Curl::Easy->new; $curl->setopt(CURLOPT_URL, $url); $curl->setopt(CURLOPT_WRITEFUNCTION, \&write_callback); $curl->setopt(CURLOPT_FILE, \@body); $curl->perform(); my $body=join("",@body); my @lines = split("\n", $body); foreach my $line (@lines) { my @fields = split(';', $line); print("\n---- Agent #" . $fields[0] . " ----"); print("\nName: " . $fields[1]); print("\nIP: " . $fields[2]); print("\nDescription: " . $fields[3]); print("\nOS: " . $fields[4]); print("\n"); }
require 'open-uri' ip = '192.168.70.110' pandora_url = '/pandora5' apipass = '1234' user = 'admin' password = 'pandora' op = 'get' op2 = 'all_agents' return_type = 'csv' other = '' other_mode = '' url = "http://" ip pandora_url "/include/api.php" url = "?" url = "apipass=" apipass url = "&user=" user url = "&pass=" password url = "&op=" op url = "&op2=" op2 agents = [] open(url) do |content| content.each do |line| agent = {} tokens = line.split(";") agent[:id_agent] = tokens[0] agent[:name] = tokens[1] agent[:ip] = tokens[2] agent[:description] = tokens[3] agent[:os_name] = tokens[4] agent[:url_address] = tokens[5] agents.push agent end end agents.each do |agent| print("---- Agent #" (agent[:id_agent] || "") " ----\n") print("Name: " (agent[:name] || "") "\n") print("IP: " (agent[:ip] || "") "\n") print("Description: " (agent[:description] || "") "\n") print("OS: " (agent[:os_name] || "") "\n") print("URL: " (agent[:url_address] || "") "\n") print("\n") end
require("curl") local content = "" function WriteMemoryCallback(s) content = content .. s return string.len(s) end ip = '192.168.70.110' pandora_url = '/pandora5' apipass = '1234' user = 'admin' password = 'pandora' op = 'get' op2 = 'all_agents' return_type = 'csv' other = '' other_mode = '' url = "http://" .. ip .. pandora_url .. "/include/api.php" url = url .. "?" url = url .. "apipass=" .. apipass url = url .. "&user=" .. user url = url .. "&pass=" .. password url = url .. "&op=" .. op url = url .. "&op2=" .. op2 if curl.new then c = curl.new() else c = curl.easy_init() end c:setopt(curl.OPT_URL, url) c:setopt(curl.OPT_WRITEFUNCTION, WriteMemoryCallback) c:perform() for line in string.gmatch(content, "[^\n] ") do line = string.gsub(line, "\n", "") count = 0 for field in string.gmatch(line, "[^\;] ") do if count == 0 then print("---- Agent #" .. field .. " ----") end if count == 1 then print("Name: " .. field) end if count == 2 then print("IP: " .. field) end if count == 3 then print("Description: " .. field) end if count == 4 then print("OS: " .. field) end if count == 5 then print("URL: " .. field) end count = count 1 end print("") end
[-]>[-]<> [< >-]<-.> [< >-]<----.> [< >-]<---.> [<---->-]< .> [< >-]< . -.> [<-------->-]<--.> [<--->-]<---.> [< >-]< . .> [<-------->-]<-----.> [< >-]<----. . --.> [<--->-]<.> [< >-]<.> [<>-]< .> [<-->-]<-.> [<--------->-]< .> [< >-]<---. .> [<--------->-]< .> [< >-]< .> [<---->-]<.> [< >-]<.> [<--->-]< .> [< >-]<-.> [<--------->-]< .> [< >-]< .> [<--->-]<--. ----.> [< >-]<-. . -.> [<--------->-]< .> [< >-]<-.> [<---->-]<.> [< >-]<.> [<---->-]<-.> [<-------->-]<-.> [< >-]< .> [<--->-]< . . .> [< >-]<---.> [<-->-]<--. .> [<-------->-]<---.> [<--->-]<---.> [< >-]<-.> [<--->-]<--.> [< >-]<---. ---.> [<--------->-]< .> [< >-]< .> [<----->-]< .> [< >-]< .> [<--->-]< .> [<-------->-]<-----.> [< >-]<----.> [< >-]<-.> [<---->-]<--.> [<>-]<.> [< >-]<--. .> [<--------->-]<--.> [< >-]< .> [< >-]< .> [<--->-]<. . --.> [< >-]<--.> [<>-]<.> [<--->-]< .> [<>-]< .> [<-->-]<-. .> [<-------->-]<-----.
Puede ver nuestro proyecto (Pandroid Event Viewer) en Repositorio SVN de Pandroid Event Viewer source code en GitHub pero aquí esta el trozo de código más importante que realiza la llamada al API para sacar los eventos.
/** * Performs an http get petition. * * @param context * Application context. * @param additionalParameters * Petition additional parameters * @return Petition result. * @throws IOException * If there is any problem with the connection. */ public static String httpGet(Context context, List<NameValuePair> additionalParameters) throws IOException { SharedPreferences preferences = context.getSharedPreferences( context.getString(R.string.const_string_preferences), Activity.MODE_PRIVATE); String url = preferences.getString("url", "") "/include/api.php"; String user = preferences.getString("user", ""); String password = preferences.getString("password", ""); String apiPassword = preferences.getString("api_password", ""); if (url.length() == 0 || user.length() == 0) { return ""; } ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>(); parameters.add(new BasicNameValuePair("user", user)); parameters.add(new BasicNameValuePair("pass", password)); if (apiPassword.length()> 0) { parameters.add(new BasicNameValuePair("apipass", apiPassword)); } parameters.addAll(additionalParameters); Log.i(TAG, "sent: " url); if (url.toLowerCase().contains("https")) { // Secure connection return Core.httpsGet(url, parameters); } else { HttpParams params = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(params, CONNECTION_TIMEOUT); HttpConnectionParams.setSoTimeout(params, CONNECTION_TIMEOUT); DefaultHttpClient httpClient = new DefaultHttpClient(params); UrlEncodedFormEntity entity; HttpPost httpPost; HttpResponse response; HttpEntity entityResponse; String return_api; httpPost = new HttpPost(url); entity = new UrlEncodedFormEntity(parameters); httpPost.setEntity(entity); response = httpClient.execute(httpPost); entityResponse = response.getEntity(); return_api = Core .convertStreamToString(entityResponse.getContent()); Log.i(TAG, "received: " return_api); return return_api; } }
Para desarrollar nuevas llamadas para el API tiene que tener en cuenta que:
<instalación Pandora Console>/include/functions_api.php
api
, el tipo de llamada get
, set o help
(según si se leen datos, se escriben datos o se obtiene ayuda) y el nombre de la llamada, intentando ser coherente con la operación, por ejemplo:function api_get_[nombre_llamada](parametros)
id
: Primer operador o parámetro, contiene un string.id2
: Segundo operador o parámetro, contiene un string.other
: Resto de operadores o parámetros, contenido como un array de dos posiciones:$other['type']
: Que puede ser string o array.$other['data']
: Que será un string con el parámetro o un array de índices numéricos con los parámetros pasados.
Es posible crear nuevas llamadas del API sin utilizar …/include/functions_api.php
. La forma de hacerlo es añadiendo en el directorio de una extensión de Pandora FMS un fichero con el siguiente nombre:
<nombre_de_la_extensión>.api.php
y dentro de este fichero crear las funciones deseadas con las mismas consideraciones de la API estándar pero con el prefijo api.extensión
en lugar de api
.
Por ejemplo, teniendo una extensión llamada module_groups
con la ruta:
<instalación de Pandora>/extensions/module_groups
Usted debe crear un fichero llamado module_groups.api.php
en este directorio. En este fichero estarán las funciones deseadas, por ejemplo una función para obtener el número de módulos de un grupo. Esta función debe tener un nombre parecido a: apiextension_get_groupmodules
.
En esta función se han usado funciones imaginarias.
function apiextension_get_groupmodules($group_name) { $group_id = group_id_from_name($group_name); if($group_id == false) { echo 'Group doesnt exist'; return; } $number_of_modules = group_modules($group_id); echo $number_of_modules; }
En esta llamada se obtiene el número de módulos del grupo Servers
:
http://127.0.0.1/pandora_console/include/api.php?op=get&op2=extension&ext_name=module_groups&ext_function=groupmodules&id=Servers&apipass=1234&user=admin&pass=pandora
Las siguientes funciones las puede usar en el código de la función de su llamada :
function api_get_module_last_value($idAgentModule, $trash1, $other = ';', $returnType) { $sql = sprintf('SELECT datos FROM tagente_estado WHERE id_agente_modulo = %d', $idAgentModule); $value = get_db_value_sql($sql); if ($value === false) { switch ($other['type']) { case 'string': switch ($other['data']) { case 'error_message': default: returnError('id_not_found', $returnType); break; } break; case 'array': switch ($other['data'][0]) { case 'error_value': returnData($returnType, array('type' => 'string', 'data' => $other['data'][1])); break; } break; } } else { $data = array('type' => 'string', 'data' => $value); returnData($returnType, $data); } }
Algunas ideas para el futuro del api.php son:
Cuando la API deniega el acceso, será devuelta una simple cadena de texto auth error
.
En esta documentación se utiliza 1234
para la contraseña del API, el nombre de usuario es admin
y la contraseña es pandora
.
.../include/api.php?op=get&op2=plugins&return_type=csv&other=;&apipass=1234&user=admin&pass=pandora
Condiciones de acceso:
*
para ello).1234
.admin
existe y su contraseña de usuario es pandora
.Acceda desde el menú de Administración: Admin tools → API checker.
Versión 768 o posterior: Se puede autenticar con API Token por medio de el envío en las cabeceras HTTP de un bearer token generado por cada usuario y para su propio uso privado y particular. Consulte “Editar mi usuario” para más detalles.
A partir de la versión 4.0.2, la API tiene algunas mejoras en el manejo de la seguridad. Esto se implementa ahora gracias a tres elementos:
Esto se explica en el siguiente workflow: