From 8eec9d2eefab4b00548ba68a56de141e629976d0 Mon Sep 17 00:00:00 2001 From: Ryan Cross Date: Fri, 10 Jan 2025 14:52:18 -0800 Subject: [PATCH] feat: add asn logging. Fixes #3907 --- backend/mlarchive/utils/jsonlogger.py | 1 + k8s/nginx-logging.conf | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/mlarchive/utils/jsonlogger.py b/backend/mlarchive/utils/jsonlogger.py index 057b97c0..a0e5ffd3 100644 --- a/backend/mlarchive/utils/jsonlogger.py +++ b/backend/mlarchive/utils/jsonlogger.py @@ -31,3 +31,4 @@ def add_fields(self, log_record, record, message_dict): log_record.setdefault("cf_connecting_ip", record.args["{cf-connecting-ip}i"]) log_record.setdefault("cf_connecting_ipv6", record.args["{cf-connecting-ipv6}i"]) log_record.setdefault("cf_ray", record.args["{cf-ray}i"]) + log_record.setdefault("asn", record.args["{x-ip-src-asnum}i"]) diff --git a/k8s/nginx-logging.conf b/k8s/nginx-logging.conf index 3c4ade46..0bc7deca 100644 --- a/k8s/nginx-logging.conf +++ b/k8s/nginx-logging.conf @@ -1,4 +1,6 @@ -# Define JSON log format - must be loaded before config that references it +# Define JSON log format - must be loaded before config that references it. +# Note that each line is fully enclosed in single quotes. Commas in arrays are +# intentionally inside the single quotes. log_format ietfjson escape=json '{' '"time":"$${keepempty}time_iso8601",' @@ -16,5 +18,6 @@ log_format ietfjson escape=json '"x_forwarded_proto":"$${keepempty}http_x_forwarded_proto",' '"cf_connecting_ip":"$${keepempty}http_cf_connecting_ip",' '"cf_connecting_ipv6":"$${keepempty}http_cf_connecting_ipv6",' - '"cf_ray":"$${keepempty}http_cf_ray"' + '"cf_ray":"$${keepempty}http_cf_ray",' + '"asn":"$${keepempty}http_x_ip_src_asnum"' '}';