From b1baa98b43030b5d20fd30aceafff2e0c4a0fcd6 Mon Sep 17 00:00:00 2001 From: Hannes Feldt <feldt@astron.nl> Date: Thu, 13 Mar 2025 13:28:17 +0000 Subject: [PATCH] L2SS-2171: Fix logging in dev environment --- infra/dev/nomad/config/nomad/client.hcl | 11 +++++++++++ infra/dev/services/services.hcl | 22 +++++++++++----------- infra/jobs/station/logging.levant.nomad | 15 ++++++++++++--- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/infra/dev/nomad/config/nomad/client.hcl b/infra/dev/nomad/config/nomad/client.hcl index ee27a3bf6..d68fc99e0 100644 --- a/infra/dev/nomad/config/nomad/client.hcl +++ b/infra/dev/nomad/config/nomad/client.hcl @@ -96,3 +96,14 @@ advertise { rpc = "{{ GetInterfaceIP \"eth0\" }}" serf = "{{ GetInterfaceIP \"eth0\" }}" } + +plugin "docker" { + config { + allow_privileged = true + volumes { + enabled = true + } + allow_caps = ["all"] + extra_labels = ["job_name", "job_id", "task_group_name", "task_name", "namespace", "node_name", "node_id"] + } +} diff --git a/infra/dev/services/services.hcl b/infra/dev/services/services.hcl index 77bb8a1e8..ce72e23e5 100644 --- a/infra/dev/services/services.hcl +++ b/infra/dev/services/services.hcl @@ -9,17 +9,17 @@ resource "nomad_job" "monitoring" { } } -# resource "nomad_job" "logging" { -# cluster = variable.nomad_cluster -# -# paths = ["../jobs/station/logging.nomad"] -# depends_on = ["resource.nomad_job.monitoring"] -# -# health_check { -# timeout = "300s" -# jobs = ["log-scraping"] -# } -# } +resource "nomad_job" "logging" { + cluster = variable.nomad_cluster + + paths = ["../jobs/station/logging.nomad"] + depends_on = ["resource.nomad_job.monitoring"] + + health_check { + timeout = "300s" + jobs = ["log-scraping"] + } +} resource "ingress" "grafana" { port = 3000 diff --git a/infra/jobs/station/logging.levant.nomad b/infra/jobs/station/logging.levant.nomad index 8b1797abc..bad27a101 100644 --- a/infra/jobs/station/logging.levant.nomad +++ b/infra/jobs/station/logging.levant.nomad @@ -84,17 +84,20 @@ healthchecks.require_healthy = true address = "0.0.0.0:8686" playground = false +[[ if ne .station "dev" ]] [sources.syslog-remote] type = "syslog" address = "0.0.0.0:514" mode = "tcp" permit_origin = [ "10.99.0.0/16" ] +[[ end ]] [sources.docker-local] type = "docker_logs" docker_host = "/var/run/docker.sock" exclude_containers = ["vector-"] +[[ if ne .station "dev" ]] [transforms.syslog-parse] inputs = ["syslog-remote"] type = "remap" @@ -123,13 +126,14 @@ healthchecks.require_healthy = true # delete labels that vary too much or are duplicates del(.procid) ''' +[[ end ]] [transforms.docker-parse] inputs = ["docker-local"] type = "remap" source = ''' # parse_key_value only supports \", not a literal \n, so we replace them with actual newlines instead. - .message = replace!(.message,"\\n","\n") + .message = replace!(.message, "\\n", "\n") # parse trying various formats structured = @@ -164,14 +168,19 @@ healthchecks.require_healthy = true ''' [transforms.postprocess] - inputs = ["docker-parse", "syslog-parse"] + [[ if ne .station "dev" ]] + inputs = ["docker-parse", "syslog-parse"] + [[ else ]] + inputs = ["docker-parse"] + [[ end ]] + type = "remap" source = ''' # hard limit on message size to prevent explosion .message = truncate!(.message, limit: 8192, suffix: "...") # standard labels - .labels.level = .level + .labels.level = .level || "info" .labels.source_type = .source_type ''' -- GitLab