Skip to content

Commit 7a297b4

Browse files
authored
Merge pull request #1069 from lsst-it/IT-6415_antu_alloy
(fleet/alloy) deploy alloy to ls
2 parents bf58e51 + 0fcf49e commit 7a297b4

File tree

7 files changed

+261
-0
lines changed

7 files changed

+261
-0
lines changed

fleet/lib/alloy/fleet.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,13 @@ targetCustomizations:
3434
helm:
3535
valuesFiles:
3636
- overlays/pukem/values.yaml
37+
- name: antu
38+
clusterSelector:
39+
matchExpressions:
40+
- key: management.cattle.io/cluster-display-name
41+
operator: In
42+
values:
43+
- antu
44+
helm:
45+
valuesFiles:
46+
- overlays/antu/values.yaml
Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
service:
2+
enabled: true
3+
type: LoadBalancer
4+
annotations:
5+
metallb.universe.tf/loadBalancerIPs: 139.229.154.66
6+
7+
controller:
8+
type: deployment
9+
replicaCount: 2
10+
11+
alloy:
12+
mounts:
13+
varlog: false
14+
extraPorts:
15+
- name: syslog-tcp
16+
port: 1514
17+
targetPort: 1514
18+
protocol: TCP
19+
- name: syslog-udp
20+
port: 5141
21+
targetPort: 5141
22+
protocol: UDP
23+
- name: network-udp
24+
port: 5142
25+
targetPort: 5142
26+
protocol: UDP
27+
- name: otelhttp
28+
port: 4318
29+
targetPort: 4318
30+
protocol: TCP
31+
configMap:
32+
content: |
33+
logging {
34+
level = "{{ default "info" (get (default (dict) .ClusterLabels) "log_level") }}"
35+
format = "logfmt"
36+
}
37+
38+
local.file_match "node_logs" {
39+
path_targets = [{
40+
__path__ = "/var/log/*.log",
41+
job = "node/syslog",
42+
node_name = sys.env("HOSTNAME"),
43+
cluster = "${ get .ClusterLabels "management.cattle.io/cluster-display-name" }",
44+
}]
45+
}
46+
47+
loki.source.file "node_logs" {
48+
targets = local.file_match.node_logs.targets
49+
forward_to = [loki.write.send.receiver]
50+
}
51+
52+
discovery.kubernetes "pod" {
53+
role = "pod"
54+
}
55+
56+
discovery.relabel "pod_logs" {
57+
targets = discovery.kubernetes.pod.targets
58+
59+
rule {
60+
source_labels = ["__meta_kubernetes_namespace"]
61+
action = "replace"
62+
target_label = "namespace"
63+
}
64+
65+
rule {
66+
source_labels = ["__meta_kubernetes_pod_name"]
67+
action = "replace"
68+
target_label = "pod"
69+
}
70+
71+
rule {
72+
source_labels = ["__meta_kubernetes_pod_container_name"]
73+
action = "replace"
74+
target_label = "container"
75+
}
76+
77+
rule {
78+
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name"]
79+
action = "replace"
80+
target_label = "app"
81+
}
82+
83+
rule {
84+
source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"]
85+
action = "replace"
86+
target_label = "job"
87+
separator = "/"
88+
replacement = "$1"
89+
}
90+
91+
rule {
92+
source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
93+
action = "replace"
94+
target_label = "__path__"
95+
separator = "/"
96+
replacement = "/var/log/pods/*$1/*.log"
97+
}
98+
99+
rule {
100+
source_labels = ["__meta_kubernetes_pod_container_id"]
101+
action = "replace"
102+
target_label = "container_runtime"
103+
regex = "^(\\S+):\\/\\/.+$"
104+
replacement = "$1"
105+
}
106+
}
107+
108+
loki.source.kubernetes "pod_logs" {
109+
targets = discovery.relabel.pod_logs.output
110+
forward_to = [loki.process.pod_logs.receiver]
111+
}
112+
113+
loki.process "pod_logs" {
114+
stage.static_labels {
115+
values = {
116+
cluster = "${ get .ClusterLabels "management.cattle.io/cluster-display-name" }",
117+
job = "k8s/logs",
118+
}
119+
}
120+
forward_to = [loki.write.send.receiver]
121+
}
122+
123+
loki.source.kubernetes_events "cluster_events" {
124+
job_name = "k8s/events"
125+
log_format = "logfmt"
126+
forward_to = [
127+
loki.process.cluster_events.receiver,
128+
]
129+
}
130+
131+
loki.process "cluster_events" {
132+
forward_to = [loki.write.send.receiver]
133+
stage.regex {
134+
expression = ".*name=(?P<name>[^ ]+).*kind=(?P<kind>[^ ]+).*objectAPIversion=(?P<apiVersion>[^ ]+).*type=(?P<type>[^ ]+).*"
135+
}
136+
stage.labels {
137+
values = {
138+
kubernetes_cluster_events = "job",
139+
name = "name",
140+
kind = "kind",
141+
apiVersion = "apiVersion",
142+
type = "type",
143+
}
144+
}
145+
}
146+
147+
discovery.relabel "syslog" {
148+
targets = []
149+
rule {
150+
source_labels = ["__syslog_message_hostname"]
151+
target_label = "host"
152+
}
153+
rule {
154+
source_labels = ["__syslog_message_app_name"]
155+
target_label = "app_name"
156+
}
157+
}
158+
159+
loki.source.syslog "tcp" {
160+
listener {
161+
address = ":1514"
162+
protocol = "tcp"
163+
labels = {
164+
component = "loki.source.syslog",
165+
protocol = "tcp",
166+
}
167+
}
168+
forward_to = [loki.relabel.relabel.receiver]
169+
}
170+
171+
loki.source.syslog "pfsense" {
172+
listener {
173+
address = ":5141"
174+
protocol = "udp"
175+
labels = { job = "pfsense" }
176+
}
177+
relabel_rules = discovery.relabel.syslog.rules
178+
forward_to = [loki.process.pfsense.receiver]
179+
}
180+
181+
loki.source.syslog "network" {
182+
listener {
183+
address = ":5142"
184+
protocol = "udp"
185+
syslog_format = "rfc3164"
186+
use_incoming_timestamp = true
187+
rfc3164_default_to_current_year = true
188+
labels = { job = "network" }
189+
}
190+
relabel_rules = discovery.relabel.syslog.rules
191+
forward_to = [loki.write.send.receiver]
192+
}
193+
194+
loki.process "pfsense" {
195+
stage.regex {
196+
expression = "^(?P<rule>\\d+),(?P<subrule>[^,]*),(?P<anchor>[^,]*),(?P<tracker>[^,]*),(?P<iface>[^,]*),(?P<reason>[^,]*),(?P<action>[^,]*),(?P<direction>[^,]*),(?P<ipver>\\d),(?P<tos>[^,]*),(?P<ecn>[^,]*),(?P<ttl>\\d+),(?P<id>\\d+),(?P<offset>\\d+),(?P<flags>[^,]*),(?P<proto_id>\\d+),(?P<proto>[^,]*),(?P<length>\\d+),(?P<src_ip>[^,]*),(?P<dst_ip>[^,]*)(?:,(?P<src_port>\\d+),(?P<dst_port>\\d+),(?P<data_len>\\d+)(?:,(?P<tcp_flags>[^,]*),(?P<seq>\\d*),(?P<ack>\\d*),(?P<window>\\d*)(?:,(?P<urg>[^,]*)(?:,(?P<options>[^,]*))?)?)?)?$"
197+
}
198+
199+
stage.labels {
200+
values = {
201+
action = "",
202+
direction = "",
203+
proto = "",
204+
iface = "iface",
205+
rule = "",
206+
dst_port = "dst_port",
207+
dst_ip = "",
208+
}
209+
}
210+
211+
stage.structured_metadata {
212+
values = {
213+
src_ip = "",
214+
dst_ip = "",
215+
src_port = "",
216+
tcp_flags = "",
217+
tracker = "",
218+
}
219+
}
220+
221+
forward_to = [loki.write.send.receiver]
222+
}
223+
224+
otelcol.receiver.otlp "ingest" {
225+
http { endpoint = ":4318" }
226+
output { logs = [otelcol.exporter.loki.to_loki.input] }
227+
}
228+
229+
otelcol.exporter.loki "to_loki" {
230+
forward_to = [loki.write.send.receiver]
231+
}
232+
233+
loki.relabel "relabel" {
234+
rule {
235+
source_labels = ["__syslog_message_hostname"]
236+
target_label = "host"
237+
}
238+
forward_to = [loki.write.send.receiver]
239+
}
240+
241+
loki.write "send" {
242+
endpoint {
243+
url = "http://loki-gateway.loki.svc.cluster.local/loki/api/v1/push"
244+
}
245+
external_labels = { job = "alloy" }
246+
}

fleet/s/ls/c/antu/alloy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../lib/alloy

fleet/s/ls/c/gaw/alloy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../lib/alloy

fleet/s/ls/c/konkong/alloy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../lib/alloy

fleet/s/ls/c/luan/alloy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../lib/alloy

fleet/s/ls/c/manke/alloy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../lib/alloy

0 commit comments

Comments
 (0)