We have developed a plug-and-play Grafana's LGTM stack that will assist individuals in rapidly familiarizing themselves with it.
Make sure you have Helm 3+
and MinIO
Create MinIO Server on cluster outside if you need
docker run -it -d --name minio \
-p 9900:9900 \
-p 9990:9990 \
-v minio:/data \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=changeme" \
quay.io/minio/minio server /data --console-address ":9990" --address ":9900"
and create below buckets:
- tempo
- loki
- mimir-tsdb
- mimir-ruler
- phlare
modify /etc/hosts
## Change below to you want
192.168.X.X minio.homelab.test
192.168.X.X grafana.homelab.test
192.168.X.X alertmanager.homelab.test
192.168.X.X prometheus.homelab.test
192.168.X.X mimir.homelab.test
# file name: values-ingresses.yaml
kubeprometheusstack:
alertmanager:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- alertmanager.homelab.test
tls: []
prometheus:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- prometheus.homelab.test
tls: []
grafana:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- grafana.homelab.test
tls: []
mimir:
nginx:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: mimir.homelab.test
paths:
- path: /
pathType: Prefix
tls: []
minio:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: minio.homelab.test
tls: []
## values-object-storages.yaml
## such as:
s3:
endpoint: minio.homelab.test:9900
insecure: true
access_key: admin
secret_key: changeme
bucket: tempo
helm upgrade --install lgtm-aio ./
--namespace observability --create-namespace \
-f ./LGTM/values-grafana.yaml \
-f ./LGTM/values-loki.yaml \
-f ./LGTM/values-tempo.yaml \
-f ./LGTM/values-phlare.yaml \
-f ./LGTM/values-mimir.yaml \
-f ./LGTM/values-object-storages.yaml \
-f ./LGTM/values-ingresses.yaml
helm upgrade --install lgtm-aio ./
--namespace observability --create-namespace \
-f ./LGTM/values-grafana.yaml \
-f ./LGTM/values-ingresses.yaml
helm upgrade --install lgtm-aio ./
--namespace observability --create-namespace \
-f ./LGTM/values-grafana.yaml \
-f ./LGTM/values-phlare.yaml \
-f ./LGTM/values-object-storages.yaml \
-f ./LGTM/values-ingresses.yaml
- create directory in dashboards, such as
custom
- place dashboard json in above created direcroy, like
custom-default.json
- config
values-grafana.yaml
kubeprometheusstack: grafana: dashboardProviders: dashboardroviders.yaml: apiVersion: 1 providers: ## ... appended - name: 'custom' folder: 'custom' allowUiUpdates: true disableDeletion: false editable: true options: path: /var/lib/grafana/dashboards/custom ## ... dashboardsConfigMaps: custom: "custom-dashboards" ## ... appended