commit d2ccbe048bf183158e7f0d5b29f6e90a3b9910b7
parent 4212b597fea46af43c2386d2aba7ed168ba351da
Author: MTRNord <mtrnord1@gmail.com>
Date: Tue, 6 Jun 2023 15:26:57 +0200
Add loki stack
Diffstat:
5 files changed, 174 insertions(+), 0 deletions(-)
diff --git a/apps/base/loki-stack/kustomization.yaml b/apps/base/loki-stack/kustomization.yaml
@@ -0,0 +1,6 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: monitoring
+resources:
+ - repository.yaml
+ - release.yaml
diff --git a/apps/base/loki-stack/release.yaml b/apps/base/loki-stack/release.yaml
@@ -0,0 +1,125 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: loki-stack
+ namespace: monitoring
+spec:
+ interval: 5m
+ chart:
+ spec:
+ version: "2.9.x"
+ chart: loki-stack
+ sourceRef:
+ kind: HelmRepository
+ name: loki-stack
+ interval: 60m
+ install:
+ crds: Create
+ upgrade:
+ crds: CreateReplace
+ # Force recreation due to Helm not properly patching Deployment with e.g. added port,
+ # causing spurious drift detection
+ force: true
+ # https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml
+ values:
+ loki:
+ enabled: true
+ isDefault: false
+ config:
+ storage_config:
+ boltdb_shipper:
+ active_index_directory: /data/loki/boltdb-shipper-active
+ cache_location: /data/loki/boltdb-shipper-cache
+ resync_interval: 5s
+ cache_ttl: 24h
+ shared_store: s3
+ compactor:
+ compaction_interval: 10m
+ retention_enabled: true
+ deletion_mode: filter-and-delete
+ retention_delete_delay: 2h
+ retention_delete_worker_count: 150
+ limits_config:
+ retention_period: 336h
+ frontend:
+ max_outstanding_per_tenant: 2048
+ query_scheduler:
+ max_outstanding_requests_per_tenant: 2048
+ persistence:
+ enabled: false
+ accessModes:
+ - ReadWriteOnce
+ size: 10Gi
+ annotations: {}
+ labels: {}
+
+ promtail:
+ enabled: true
+ config:
+ lokiAddress: http://{{ .Release.Name }}:3100/loki/api/v1/push
+
+ fluent-bit:
+ enabled: false
+
+ grafana:
+ enabled: false
+ sidecar:
+ datasources:
+ enabled: true
+ maxLines: 1000
+ image:
+ tag: 8.3.5
+
+ prometheus:
+ enabled: false
+ isDefault: false
+
+ filebeat:
+ enabled: false
+ filebeatConfig:
+ filebeat.yml: |
+ # logging.level: debug
+ filebeat.inputs:
+ - type: container
+ paths:
+ - /var/log/containers/*.log
+ processors:
+ - add_kubernetes_metadata:
+ host: ${NODE_NAME}
+ matchers:
+ - logs_path:
+ logs_path: "/var/log/containers/"
+ output.logstash:
+ hosts: ["logstash-loki:5044"]
+ logstash:
+ enabled: false
+ image: grafana/logstash-output-loki
+ imageTag: 1.0.1
+ filters:
+ main: |-
+ filter {
+ if [kubernetes] {
+ mutate {
+ add_field => {
+ "container_name" => "%{[kubernetes][container][name]}"
+ "namespace" => "%{[kubernetes][namespace]}"
+ "pod" => "%{[kubernetes][pod][name]}"
+ }
+ replace => { "host" => "%{[kubernetes][node][name]}"}
+ }
+ }
+ mutate {
+ remove_field => ["tags"]
+ }
+ }
+ outputs:
+ main: |-
+ output {
+ loki {
+ url => "http://loki:3100/loki/api/v1/push"
+ #username => "test"
+ #password => "test"
+ }
+ # stdout { codec => rubydebug }
+ }
+
diff --git a/apps/base/loki-stack/repository.yaml b/apps/base/loki-stack/repository.yaml
@@ -0,0 +1,8 @@
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+ name: loki-stack
+ namespace: monitoring
+spec:
+ interval: 120m
+ url: https://grafana.github.io/helm-charts
diff --git a/apps/production/kustomization.yaml b/apps/production/kustomization.yaml
@@ -5,6 +5,7 @@ resources:
- ../base/cosign
- ../base/woodpecker
- ../base/kube-prometheus-stack
+ - ../base/loki-stack
- ../base/rook
- ../base/postgres-operator
- ../base/matrix
@@ -15,6 +16,7 @@ patchesStrategicMerge:
- vaultwarden-values.yaml
- woodpecker-values.yaml
- kube-prometheus-stack-values.yaml
+ - loki-stack-values.yaml
- postgres-operator-values.yaml
- media-repo-values.yaml
- sliding-proxy-values.yaml
diff --git a/apps/production/loki-stack-values.yaml b/apps/production/loki-stack-values.yaml
@@ -0,0 +1,33 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: loki-stack
+ namespace: monitoring
+spec:
+ values:
+ loki:
+ config:
+ storage_config:
+ aws:
+ s3: http://loki:gae9vohtaiyohchaexaephooh7fah4coo1jeeNookiPob3phahzeexadeechuxei@loki-hl.monitoring.svc.cluster.local.:9000/loki
+ s3forcepathstyle: true
+sops:
+ kms: []
+ gcp_kms: []
+ azure_kv: []
+ hc_vault: []
+ age:
+ - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArU3dKK0YzOGF3Qkd5UHM5
+ dzV4UG12THFzY2pUdjdmam81T1V2dnlFRXcwCk5SR0V2cjIrU2tNdFh5Y2NSRTZP
+ bVVGMzNpOUM0L21mZ091VTUxUmhwWGMKLS0tIExzRmVWYXN2SURrd3Fxdm1uOHpX
+ R05BUk5takMwSGx3L3BHOHh6blVicVkK2G4gcxBV2VBTv9QDhj9JuBSz0BDmNEXN
+ 2sO1/t7M2hAQ9sLi+7UZfwjC0vX+rV6W7Td8eJH2uhcVXowOBWJeNg==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2023-06-06T13:19:48Z"
+ mac: ENC[AES256_GCM,data:0Aqu2d3G9/+A/bXdRVWMaGKBB/KgvxCVBdQ/F4TQFEdCyipKzuUzr2SpeaO50SFQs7YABnBjUsD98zIAcCreGNHlz57NPy3He1RTELr8Dfkx+8V7lo5ASHhKYr5IqAiE6uoHN8JSdOe0nWM4KfM0tWdqa8ONA6j/fGptKu4sEPg=,iv:zZ7fe0axSjDGW+dVsPvWIiPiVCDIrPRnAEvvepgHjW0=,tag:DACwNylVJhTS8x6fRk84/g==,type:str]
+ pgp: []
+ encrypted_regex: ^(data|stringData|password|registration_shared_secret|shared_secret)$
+ version: 3.7.3