Pandora FMS community forums

Full Version: Error curl: (6) Could not resolve host: 'http
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hola comunidad,
Tengo instalado Pandora FMS v7.0NG.745 - Desarrollo 200513 - MR 37 en un windows server 2016.
Cuando reinicio el servicio de pandora server recibo este error log.
¿Alguna pista de donde puede estar el problema?


Code:
Starting Pandora FMS Server. Error logging activated.
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed

 0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: 'http
"op2" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
"apipass" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
"user" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
El sistema no puede encontrar la ruta especificada.
Use of uninitialized value $res_testing_api[0] in string ne at pandora_server line 708.
Use of uninitialized value in concatenation (.) or string at /<C:\PandoraFMS\Pandora_Server\pandora_server.exe>PandoraFMS/Core.pm line 5307.
Use of uninitialized value in concatenation (.) or string at /<C:\PandoraFMS\Pandora_Server\pandora_server.exe>PandoraFMS/Core.pm line 5307.
Use of uninitialized value in concatenation (.) or string at /<C:\PandoraFMS\Pandora_Server\pandora_server.exe>PandoraFMS/Core.pm line 5307.
Use of uninitialized value in concatenation (.) or string at /<C:\PandoraFMS\Pandora_Server\pandora_server.exe>PandoraFMS/Core.pm line 5307.
Use of uninitialized value in concatenation (.) or string at /<C:\PandoraFMS\Pandora_Server\pandora_server.exe>PandoraFMS/Core.pm line 5307.
Use of uninitialized value in concatenation (.) or string at /<C:\PandoraFMS\Pandora_Server\pandora_server.exe>PandoraFMS/Core.pm line 5307.
¡Hola! Intentad entrecomillar los comandos a ver qué tal es mi primera sugerencia, ¡tened feliz día!
(05-16-2020, 09:33 AM)Jimmy_Olano Wrote: [ -> ]¡Hola! Intentad entrecomillar los comandos a ver qué tal es mi primera sugerencia, ¡tened feliz día!

Hola Jimmy,
perdona pero no termino de entenderlo.
¿Tengo que entrecomillar los comandos de algún fichero?
Saludos,
(05-18-2020, 07:00 AM)muroz Wrote: [ -> ]
(05-16-2020, 09:33 AM)Jimmy_Olano Wrote: [ -> ]¡Hola! Intentad entrecomillar los comandos a ver qué tal es mi primera sugerencia, ¡tened feliz día!

Hola Jimmy,
perdona pero no termino de entenderlo.
¿Tengo que entrecomillar los comandos de algún fichero?
Saludos,

Porque la traducción del mensaje de error sería:

Code:
No se pudo resolver el anfitrión

Uso del valor no inicializado $res_testing_api[0] en la cadena ne en la línea 708 del servidor de pandora.

Uso del valor no inicializado en la concatenación (.) o en la cadena en
Corrijo mi sugerencia: "entrecomillad" (colocad entre comillas, más bien) la dirección web o URL para curl, ¡tened feliz día!
Adjunto los fichero de log del Pandora Server: [attachment=3562]
(05-18-2020, 02:49 PM)Jimmy_Olano Wrote: [ -> ]
(05-18-2020, 07:00 AM)muroz Wrote: [ -> ]
(05-16-2020, 09:33 AM)Jimmy_Olano Wrote: [ -> ]¡Hola! Intentad entrecomillar los comandos a ver qué tal es mi primera sugerencia, ¡tened feliz día!

Hola Jimmy,
perdona pero no termino de entenderlo.
¿Tengo que entrecomillar los comandos de algún fichero?
Saludos,

Porque la traducción del mensaje de error sería:

Code:
No se pudo resolver el anfitrión

Uso del valor no inicializado $res_testing_api[0] en la cadena ne en la línea 708 del servidor de pandora.

Uso del valor no inicializado en la concatenación (.) o en la cadena en
Corrijo mi sugerencia: "entrecomillad" (colocad entre comillas, más bien) la dirección web o URL para curl, ¡tened feliz día!
Hmmm ya veo lo adjuntasteis... Pensaba que era una URL no entrecomillada pero debemos ir más allá:

https://pandorafms.com/docs/index.php?ti...I_external

Esa es la documentación a la API de Pandora FMS y en GitHub observo cómo utilizan código para concatenar valores e iniciar la conexión (simple prueba de conexión de curl):

Code:
# Testing API url
my $curl_execution = "'".$Config{'console_api_url'}."?op=get&op2=test&apipass=".$Config{"console_api_pass"}."&user=".$Config{"console_user"}."&pass=".$Config{"console_pass"}."'";

my $exe_testing_api = `curl $curl_execution 2>/dev/null`;

my @res_testing_api = split(',', $exe_testing_api);

if ( $res_testing_api[0] ne 'OK' ) {

logger(\%Config, "Warning! The server does not have access to the API, this can trigger problems in the generation of reports and graphs.", 1);

pandora_event (\%Config, "Server does not have access to the API", 0, 0, 0, 0, 0, 'system', 0, $DBH);

}

Dentro de mi ignorancia, allí pienso yo puede haber una pista hacia vuestro estado que describís:

https://github.com/pandorafms/pandorafms...ora_server

my $curl_execution = "'".$Config{'console_api_url'}."?op=get&op2=test&apipass=".$Config{"console_api_pass"}."&user=".$Config{"console_user"}."&pass=".$Config{"console_pass"}."'";


Y está correctamente todo entrecomillado (lo resalto en color verde), a eso me refería. Asumo que las variables ya están establecidas ($Config{'console_api_url'} es la dirección del servidor -por defecto http://localhost/pandora_console/include/api.php, y así las demás no contienen valores nulos).

En ambiente Windows podríamos probar (en un servidor réplica o copia, no en producción):

my $curl_execution = "\"".$Config{'console_api_url'}."?op=get&op2=test&apipass=".$Config{"console_api_pass"}."&user=".$Config{"console_user"}."&pass=".$Config{"console_pass"}."\"";

( https://en.wikibooks.org/wiki/Perl_Progr...ed_strings )

También asumo que curl está configurado en la ruta path de Windows (ver https://www.youtube.com/watch?v=OnO0XLCts9k ) , de hecho se ejecuta y lanza el error de que no puede resolver la dirección, pues claro, hay que "pasarle" los parámetros a curl.

De mi parte queda averiguar dónde diantres explícitamente se lanza curl, solo para satisfacer mi curiosidad. Ahora bien leed y revisad todo lo referente a la API, eso para refrescar conocimientos (yo también lo voy a releer) , ¡tened feliz día!
(05-19-2020, 12:37 PM)Jimmy_Olano Wrote: [ -> ]Hmmm ya veo lo adjuntasteis... Pensaba que era una URL no entrecomillada pero debemos ir más allá:

https://pandorafms.com/docs/index.php?ti...I_external

Esa es la documentación a la API de Pandora FMS y en GitHub observo cómo utilizan código para concatenar valores e iniciar la conexión (simple prueba de conexión de curl):

Code:
# Testing API url
my $curl_execution = "'".$Config{'console_api_url'}."?op=get&op2=test&apipass=".$Config{"console_api_pass"}."&user=".$Config{"console_user"}."&pass=".$Config{"console_pass"}."'";

my $exe_testing_api = `curl $curl_execution 2>/dev/null`;

my @res_testing_api = split(',', $exe_testing_api);

if ( $res_testing_api[0] ne 'OK' ) {

logger(\%Config, "Warning! The server does not have access to the API, this can trigger problems in the generation of reports and graphs.", 1);

pandora_event (\%Config, "Server does not have access to the API", 0, 0, 0, 0, 0, 'system', 0, $DBH);

}

Dentro de mi ignorancia, allí pienso yo puede haber una pista hacia vuestro estado que describís:

https://github.com/pandorafms/pandorafms...ora_server

my $curl_execution = "'".$Config{'console_api_url'}."?op=get&op2=test&apipass=".$Config{"console_api_pass"}."&user=".$Config{"console_user"}."&pass=".$Config{"console_pass"}."'";


Y está correctamente todo entrecomillado (lo resalto en color verde), a eso me refería. Asumo que las variables ya están establecidas ($Config{'console_api_url'} es la dirección del servidor -por defecto http://localhost/pandora_console/include/api.php, y así las demás no contienen valores nulos).

En ambiente Windows podríamos probar (en un servidor réplica o copia, no en producción):

my $curl_execution = "\"".$Config{'console_api_url'}."?op=get&op2=test&apipass=".$Config{"console_api_pass"}."&user=".$Config{"console_user"}."&pass=".$Config{"console_pass"}."\"";

( https://en.wikibooks.org/wiki/Perl_Progr...ed_strings )

También asumo que curl está configurado en la ruta path de Windows (ver https://www.youtube.com/watch?v=OnO0XLCts9k ) , de hecho se ejecuta y lanza el error de que no puede resolver la dirección, pues claro, hay que "pasarle" los parámetros a curl.

De mi parte queda averiguar dónde diantres explícitamente se lanza curl, solo para satisfacer mi curiosidad. Ahora bien leed y revisad todo lo referente a la API, eso para refrescar conocimientos (yo también lo voy a releer) , ¡tened feliz día!

Hola Jimmy,
Gracias por tu ayuda.
He detectado dos cosas a arreglar en la pagina de configuración general

1.- El campo "Almacenamiento de adjuntos" no se guarda bien en la base de datos. Lo he solucionado temporalmente usando el carácter "/" en vez de "\". He guardado C:/PandoraFMS/Apache/htdocs/pandora_console/attachment en vez de C:\PandoraFMS\Apache\htdocs\pandora_console\attachment

2.- El campo "Lista de IPs con acceso a la API" tampoco se guarda bien. Me ha tocado convertirlo a string y luego usar implode para generar la lista en el campo $config['attachment_store']

Voy a seguir con tus indicaciones e iré posteando lo que detecte.
¡Qué bien, me alegra!

Yo mientras tanto sigo estudiando lo de las particularidades de Perl en Windows, ahora bien pensaba que era yo solo en eso pero antes que mi persona a mucha gente le ha sucedido (en inglés llaman a "quirky" -estrafalario- al asunto), esto es lo que estoy leyendo:

https://www.powershelladmin.com/wiki/Run...powershell

Quote:cmd.exe seems to have a vague concept of quoting and strings

¡Tened un feliz día!