Loki and Promtail from Grafana Labs are new kids in the observability community. Are they good enough to replace Elasticsearch and Logstash? I would like to see.
Here’s a sample ArgoCD Application to deploy Loki, Promtail, Prometheus and Grafana all from 1 Helm chart: grafana/loki-stack. Some settings of my installations are:
- loki, grafana and prometheus are deployed separately in their own namespaces
- loki, grafana and prometheus use existing PVCs. This is more portable if I want to opt out this Helm chart later and keep the data
- do not use configMap reloader because everything is sync’ed by ArgoCD
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: loki-stack-charts
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
namespace: loki
server: https://kubernetes.default.svc
project: default
source:
chart: loki-stack
repoURL: https://grafana.github.io/helm-charts
targetRevision: 2.5.0
helm:
values: |
loki:
enabled: true
persistence:
type: pvc
enabled: true
existingClaim: loki
securityContext:
runAsGroup: 10001
runAsUser: 10001
promtail:
enabled: true
fluent-bit:
enabled: false
grafana:
enabled: true
namespaceOverride: grafana
sidecar:
datasources:
enabled: false
image:
tag: 8.2.2
persistence:
type: pvc
enabled: true
existingClaim: grafana
securityContext:
runAsUser: 472
runAsGroup: 472
initChownData:
enabled: false
prometheus:
enabled: true
forceNamespace: prometheus
configmapReload:
prometheus:
enabled: false
alertmanager:
enabled: false
server:
persistentVolume:
enabled: true
existingClaim: prometheus-server
accessModes:
- ReadWriteMany
resources:
limits:
cpu: 800m
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi
alertmanager:
persistentVolume:
enabled: true
existingClaim: prometheus-alertmanager
accessModes:
- ReadWriteMany
resources:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 50m
memory: 50Mi
nodeExporter:
enabled: true
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
resources:
limits:
cpu: 200m
memory: 50Mi
requests:
cpu: 100m
memory: 30Mi
filebeat:
enabled: false
logstash:
enabled: falseFor namespace, persistentVolume and Istio resources needed for loki-stack, please see these files.
🙂
