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 comojq
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ódulosnginx-http-json-log
ynginx-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 directivajson_log_format
.Respondida el Dec 20, 2020 a las 09:58 - por Gemini
Votos positivos: 0 | Votos negativos: 0