homelab-nomad/core/syslogng.nomad

181 lines
3.2 KiB
Plaintext
Raw Normal View History

2022-07-25 17:46:16 +00:00
job "syslogng" {
datacenters = ["dc1"]
type = "service"
group "promtail" {
count = 1
network {
mode = "bridge"
port "main" {
to = 1514
}
port "metrics" {
to = 9080
}
}
service {
name = "syslogng-promtail"
port = "main"
connect {
sidecar_service {
proxy {
2022-07-25 22:49:29 +00:00
local_service_port = 1514
2022-07-25 17:46:16 +00:00
upstreams {
destination_name = "loki"
local_bind_port = 1000
}
}
}
sidecar_task {
resources {
cpu = 50
2022-07-25 23:35:30 +00:00
memory = 20
memory_max = 50
2022-07-25 17:46:16 +00:00
}
}
}
}
task "promtail" {
driver = "docker"
meta = {
"diun.sort_tags" = "semver"
"diun.watch_repo" = true
"diun.include_tags" = "^[0-9]+\\.[0-9]+\\.[0-9]+"
}
2022-07-25 17:46:16 +00:00
config {
image = "grafana/promtail:2.7.1"
2022-07-25 17:46:16 +00:00
ports = ["main", "metrics"]
args = ["--config.file=/etc/promtail/promtail.yml"]
mount {
type = "bind"
target = "/etc/promtail/promtail.yml"
source = "local/promtail.yml"
}
}
template {
data = <<EOF
---
server:
http_listen_address: 0.0.0.0
http_listen_port: 9080
clients:
2022-07-25 22:49:29 +00:00
- url: http://{{ env "NOMAD_UPSTREAM_ADDR_loki" }}/loki/api/v1/push
2022-07-25 17:46:16 +00:00
scrape_configs:
# TCP syslog receiver
- job_name: syslog
syslog:
2022-07-25 22:49:29 +00:00
listen_address: 0.0.0.0:{{ env "NOMAD_PORT_main" }}
2022-07-25 17:46:16 +00:00
labels:
job: syslog
relabel_configs:
- source_labels: ['__syslog_message_hostname']
target_label: hostname
EOF
destination = "local/promtail.yml"
}
resources {
cpu = 50
2022-07-25 23:35:30 +00:00
memory = 20
2022-07-25 17:46:16 +00:00
}
}
}
group "syslogng" {
count = 1
network {
mode = "bridge"
port "main" {
to = 514
2022-07-25 17:46:16 +00:00
}
}
service {
name = "syslogng"
port = "main"
connect {
sidecar_service {
proxy {
local_service_port = 514
2022-07-25 17:46:16 +00:00
upstreams {
destination_name = "syslogng-promtail"
local_bind_port = 1000
}
}
}
sidecar_task {
resources {
cpu = 50
2022-07-25 23:35:30 +00:00
memory = 20
memory_max = 50
2022-07-25 17:46:16 +00:00
}
}
}
}
task "syslogng" {
driver = "docker"
config {
2022-07-25 22:49:29 +00:00
image = "balabit/syslog-ng:3.37.1"
2022-07-25 17:46:16 +00:00
ports = ["main"]
args = ["--no-caps"]
mount {
type = "bind"
target = "/etc/syslog-ng/syslog-ng.conf"
source = "local/syslog-ng.conf"
}
}
template {
data = <<EOF
@version: 3.37
@include "scl.conf"
2022-07-25 17:46:16 +00:00
source s_network {
default-network-drivers(
);
2022-07-25 17:46:16 +00:00
};
source s_internal {
internal();
};
destination d_loki {
# Forward to Connect proxy to Promtail
2022-07-25 22:49:29 +00:00
syslog("{{ env "NOMAD_UPSTREAM_IP_syslogng-promtail" }}" transport("tcp") port({{ env "NOMAD_UPSTREAM_PORT_syslogng-promtail" }}));
2022-07-25 17:46:16 +00:00
};
log { source(s_internal); destination(d_loki); };
log { source(s_network); destination(d_loki); };
2022-07-25 17:46:16 +00:00
EOF
destination = "local/syslog-ng.conf"
}
resources {
cpu = 50
2022-07-25 23:35:30 +00:00
memory = 10
2022-07-25 17:46:16 +00:00
}
}
}
}