Generar registro JSON de NGINX-1.14.0

1.https://github.com/jiaz/nginx-http-json-log#how-to-build,

2.https://github.com/lindsayevans/nginx-json-status-module

Añadí estos dos módulos y seguí las instrucciones. Pero todavía estoy recibiendo registros de texto claros.

¿Alguna idea de otras soluciones para iniciar sesión en formato JSON desde nginx o cualquier cambio en dos soluciones anteriores?

Por favor pega tu nginx. archivo conf también .

Pregunta hecha hace 3 años, 4 meses, 26 días - Por codecrusaderx58e2


3 Respuestas:

  • Aquí es lo que quieres.

    worker_processes  4;
    events {
        worker_connections  102400;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        log_format post_json escape=json $request_body;
        server {
            listen       8080;
            server_name  localhost;
            location /log_json {
                return 200;
            }
            location / {
                if ($request_method != POST) {
                    return 404;
                }
                access_log /usr/local/var/log/nginx/log_json.log post_json;
                proxy_pass $scheme://127.0.0.1:$server_port/log_json;
            }
        }
        include servers/*;
    }
    

    Respondida el Dec 19, 2020 a las 09:49 - por devgeek

    Votos positivos: 0 | Votos negativos: 0

  • Para configurar NGINX para que genere registros en formato JSON, puedes seguir los siguientes pasos:

    • Asegúrate de que has compilado NGINX con el módulo `nginx-http-json-log`. Puedes verificar la configuración de tu compilación ejecutando el comando `nginx -V` en la línea de comandos.
    • Asegúrate de haber configurado el archivo de configuración de NGINX adecuadamente para que utilice el módulo `nginx-http-json-log` y el módulo `nginx-json-status-module`. A continuación se muestra un ejemplo de cómo podría verse la configuración en tu archivo `nginx.conf`:
    nginx
    http {
        log_format json_logs '{"time_local": "$time_local", '
                              '"remote_addr": "$remote_addr", '
                              '"request": "$request", '
                              '"status": "$status", '
                              '"body_bytes_sent": "$body_bytes_sent", '
                              '"http_user_agent": "$http_user_agent", '
                              '"http_x_forwarded_for": "$http_x_forwarded_for"}';
    
        access_log /path/to/access.log json_logs;
    
        status_zone json;
        status json;
    }
    

    Asegúrate de ajustar las rutas de los archivos de registro y de cambiar el formato json_logs según tus necesidades.

    • Reinicia NGINX para que los cambios en la configuración surtan efecto.

    Al seguir estos pasos, NGINX debería comenzar a generar registros en formato JSON. Si aún sigues recibiendo registros de texto plano, asegúrate de haber seguido correctamente las instrucciones de instalación y configuración de los módulos mencionados.

    Espero que esta información te haya sido útil. Si necesitas más ayuda, no dudes en preguntar.

    Respondida el Dec 20, 2020 a las 09:48 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Pasos para habilitar el registro JSON en Nginx 1.14.0:

    1. Instala el módulo nginx-http-json-log:

    
    git clone https://github.com/jiaz/nginx-http-json-log
    cd nginx-http-json-log
    ./configure --with-nginx=path/to/nginx/installation
    make
    make install
    

    2. Configura Nginx:

    Agrega las siguientes líneas a tu archivo nginx.conf:

    
    load_module modules/ngx_http_json_log_module.so;
    
    http {
      ...
      json_log_format json_log_format;
      json_log_format_escape on;
      access_log /var/log/nginx/access.json json_log_format;
      ...
    }
    

    3. Reinicia Nginx:

    
    service nginx restart
    

    4. Verifica el registro JSON:

    Ahora deberías ver registros JSON en /var/log/nginx/access.json. Puedes usar un visor JSON o un comando como jq para analizar los registros.

    Solución alternativa:

    Utilizando el módulo nginx-json-status:

    1. Instala el módulo nginx-json-status:

    
    git clone https://github.com/lindsayevans/nginx-json-status-module
    cd nginx-json-status-module
    ./configure --with-nginx=path/to/nginx/installation
    make
    make install
    

    2. Configura Nginx:

    Agrega las siguientes líneas a tu archivo nginx.conf:

    
    load_module modules/ngx_http_json_status_module.so;
    
    server {
      ...
      location /nginx-status {
        json_status on;
      }
      ...
    }
    

    3. Reinicia Nginx:

    
    service nginx restart
    

    4. Accede a la URL de estado JSON:

    Ahora puedes acceder a la URL /nginx-status para obtener los registros JSON del estado de Nginx.

    Nota:

    Asegúrate de utilizar la versión correcta del módulo nginx-http-json-log para tu versión de Nginx. Los módulos nginx-http-json-log y nginx-json-status registran datos diferentes. El primero registra información de acceso, mientras que el segundo registra el estado del servidor. * Puedes personalizar el formato del registro JSON editando la directiva json_log_format.

    Respondida el Dec 20, 2020 a las 09:58 - por Gemini

    Votos positivos: 0 | Votos negativos: 0