ELK: no se puede acceder a kibana después de usar el proxy nginx

fondo:

        Después de configurar elk localmente, todo fue normal. Más tarde, cambié para usar nginx como proxy del puerto kibana 5601. Descubrí que no se podía acceder normalmente después del proxy (se podía acceder normalmente a la dirección sin proxy). Pasé mucho tiempo comprobando el problema. Los errores reportados fueron básicamente http : //ip:port/spaces/enter , o un error de nivel 404, o falta el símbolo /. Lo he probado, pero todavía no funciona. Siempre y cuando desea cambiar su dirección de acceso, se informará un error.

La configuración del proxy es la siguiente:

	server {
        listen       6667; 
		server_name  localhost;
		location /kibana/ {
            proxy_pass http://192.168.0.111:5601/;
        }
    } 

razón:

        La dirección de solicitud http://ip:port/spaces/enter después del proxy no se puede asignar normalmente.

Como resultado, no se puede acceder a la dirección del servidor kibana http://192.168.0.111:5601/spaces/enter.

        Después de resolver el problema, descubrí que el acceso a la página de kibana debería implicar una devolución de llamada de redireccionamiento.

Por ejemplo, su dirección de acceso al servidor es http://192.168.0.111:5601/app/XXX, 

Después de representar el puerto y la uri, el acceso pasa a ser http://ip:6667/kibana/app/XXX.

Después del mapeo, la dirección es http://192.168.0.111:5601/app/XXX.

        El problema es que kibana redirige y cuando vuelve a llamar internamente,

La dirección de llamada del proxy es http://ip:6667/spaces/enter,

Si presiona esta dirección, la configuración de nginx anterior no se puede asignar a http://192.168.0.111:5601/spaces/enter normalmente.

Incluso si agrega la dirección http://ip:6667/spaces/enter para asignarla al servidor, es posible que haya otras direcciones URI de devolución de llamada que deban procesarse.

resolver:

        1: Proxy solo el puerto, no el uri. Esto equivale a reemplazar 5601 con otro puerto.

	server {
        listen       6667; 
		server_name  localhost;
		location / {
            proxy_pass http://192.168.0.111:5601/;
        }
    } 

        Se puede acceder a los resultados del procesamiento normalmente

        2: Puerto proxy y uri (si solo representa el puerto, no necesita usar nginx, simplemente modifique el puerto directamente en el archivo de configuración de kibana). Agregue una ruta base a kibana. Esta ruta base es la misma que la ruta/kibana del agente.

(Es decir, el servidor agrega /kibana delante de la ruta de acceso uri. La dirección de servicio original http://192.168.0.111:5601/app se convierte en http://192.168.0.111:5601/kibana/app)

        Vaya al directorio de configuración del archivo de configuración de kibana, modifique kibana.xml y agregue la configuración.

server.basePath: "/kibana"
server.rewriteBasePath: true

como:

Después de acceder al proxy, ingrese a la página de inicio de sesión con la dirección http://ip:6667/kibana/app. De acuerdo con las reglas de asignación a continuación, la dirección se asigna a http://192.168.0.111:5601/kibana/app ( equivalente a cuando el servidor kibana no agrega una ruta básica. http://192.168.0.111:5601/app)

Dirección de devolución de llamada del agente http://ip:6667/kibana/spaces/enter (los detalles se pueden asignar al servidor normalmente)

La dirección asignada es http://192.168.0.111:5601/kibana/spaces/enter (equivalente a http://192.168.0.111:5601/spaces/enter cuando el servidor kibana no agrega una ruta básica)

    server {
        listen       6667; 
 
		location /kibana/ {
            proxy_pass http://192.168.0.111:5601/kibana/;
        }
    } 

        Se puede acceder a los resultados del procesamiento normalmente

        De hecho, también puede enrutar todos los URI de redireccionamiento posibles a kibana en nginx, de modo que kibana no pueda agregar la ruta básica, pero no conozco las direcciones específicas, por lo que no haré esta solución.

Lo anterior es mi solución al problema de que no se puede acceder normalmente al proxy nginx. La redirección anterior es mi suposición y puede que no sea cierta. Si alguien tiene dudas, por favor deme algún consejo.

Supongo que te gusta

Origin blog.csdn.net/DGH2430284817/article/details/130563795
Recomendado
Clasificación