Skip to content

Commit ac42178

Browse files
committed
feat: Adding configuration files related to collecting logs from loki
1 parent 36124aa commit ac42178

File tree

5 files changed

+180
-1
lines changed

5 files changed

+180
-1
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
discovery.docker "linux" {
2+
host = "unix:///var/run/docker.sock"
3+
}
4+
5+
discovery.relabel "container_logs" {
6+
targets = discovery.docker.linux.targets
7+
rule {
8+
source_labels = ["__meta_docker_container_name"]
9+
target_label = "container_name"
10+
}
11+
rule {
12+
source_labels = ["__meta_docker_container_id"]
13+
target_label = "container_id"
14+
}
15+
rule {
16+
source_labels = ["__meta_docker_network_ip"]
17+
target_label = "container_network_ip"
18+
}
19+
rule {
20+
source_labels = ["__meta_docker_container_network_mode"]
21+
target_label = "container_network_mode"
22+
}
23+
}
24+
25+
26+
loki.source.docker "docker" {
27+
host = "unix:///var/run/docker.sock"
28+
targets = discovery.relabel.container_logs.output
29+
forward_to = [loki.write.docker.receiver]
30+
}
31+
32+
loki.write "docker" {
33+
endpoint {
34+
url = "http://localhost:3100/loki/api/v1/push"
35+
}
36+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
loki.relabel "journal" {
2+
forward_to = []
3+
4+
rule {
5+
source_labels = ["__journal__systemd_unit"]
6+
target_label = "unit"
7+
}
8+
rule {
9+
source_labels = ["unit"]
10+
action = "keep"
11+
regex = "ntp.service"
12+
}
13+
}
14+
15+
loki.source.journal "journal" {
16+
forward_to = [loki.write.journal.receiver]
17+
relabel_rules = loki.relabel.journal.rules
18+
}
19+
20+
loki.write "journal" {
21+
endpoint {
22+
url ="http://localhost:3100/loki/api/v1/push"
23+
}
24+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
apiVersion: v1
2+
data:
3+
config.alloy: |
4+
discovery.kubernetes "pods" {
5+
role = "pod"
6+
}
7+
8+
discovery.relabel "pod_logs" {
9+
targets = discovery.kubernetes.pods.targets
10+
rule {
11+
source_labels = ["__meta_kubernetes_namespace"]
12+
target_label = "namespace"
13+
}
14+
rule {
15+
source_labels = ["__meta_kubernetes_pod_name"]
16+
target_label = "pod"
17+
}
18+
rule {
19+
source_labels = ["__meta_kubernetes_pod_container_name"]
20+
target_label = "container"
21+
}
22+
rule {
23+
source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_name"]
24+
separator = "/"
25+
target_label = "job"
26+
}
27+
rule {
28+
source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
29+
separator = "/"
30+
action = "replace"
31+
replacement = "/var/log/pods/*$1/*.log"
32+
target_label = "__path__"
33+
}
34+
rule {
35+
action = "replace"
36+
source_labels = ["__meta_kubernetes_pod_container_id"]
37+
regex = "^(\\w+):\\/\\/.+$"
38+
replacement = "$1"
39+
target_label = "tmp_container_runtime"
40+
}
41+
}
42+
43+
local.file_match "pod_logs" {
44+
path_targets = discovery.relabel.pod_logs.output
45+
}
46+
47+
loki.source.file "pod_logs" {
48+
targets = local.file_match.pod_logs.targets
49+
forward_to = [loki.process.pod_logs.receiver]
50+
}
51+
52+
loki.process "pod_logs" {
53+
stage.match {
54+
selector = "{namespace=~\"(ngin|ngim)x\"}"
55+
stage.regex {
56+
expression = "(?P<method>GET|PUT|DELETE|POST)"
57+
}
58+
stage.regex {
59+
expression = "(?P<status_code_with_http_version>HTTP.{6}\\d{3})"
60+
}
61+
stage.regex {
62+
expression = "(?P<status_code>\\d{3})"
63+
source = "status_code_with_http_version"
64+
}
65+
stage.labels {
66+
values = {
67+
method = "",
68+
status_code = "",
69+
}
70+
}
71+
}
72+
stage.match {
73+
selector = "{tmp_container_runtime=\"containerd\"}"
74+
stage.cri {}
75+
stage.labels {
76+
values = {
77+
flags = "",
78+
stream = "",
79+
}
80+
}
81+
}
82+
stage.match {
83+
selector = "{tmp_container_runtime=\"docker\"}"
84+
stage.docker {}
85+
stage.labels {
86+
values = {
87+
stream = "",
88+
}
89+
}
90+
}
91+
stage.label_drop {
92+
values = ["tmp_container_runtime"]
93+
}
94+
95+
forward_to = [loki.write.loki.receiver]
96+
}
97+
98+
loki.write "loki" {
99+
endpoint {
100+
url = "http://loki-gateway.loki.svc.cluster.local/loki/api/v1/push"
101+
}
102+
}
103+
kind: ConfigMap
104+
metadata:
105+
name: alloy-config
106+
namespace: alloy-logs

collecting-logs-from-loki/local.alloy

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
local.file_match "local" {
2+
path_targets = [{"__path__" = "/var/log/auth.log"}]
3+
}
4+
5+
loki.source.file "local" {
6+
targets = local.file_match.local.targets
7+
forward_to = [loki.write.local.receiver]
8+
}
9+
10+
loki.write "local" {
11+
endpoint {
12+
url = "http://localhost:3100/loki/api/v1/push"
13+
}
14+
}

test

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)