{"id":13587759,"url":"https://github.com/unguiculus/loki-minio-demo","last_synced_at":"2025-04-10T13:41:33.877Z","repository":{"id":147749510,"uuid":"323371111","full_name":"unguiculus/loki-minio-demo","owner":"unguiculus","description":"Demo setup for Grafana Loki in microservices mode using MinIO as storage backend","archived":false,"fork":false,"pushed_at":"2021-03-25T18:21:27.000Z","size":50,"stargazers_count":26,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-02-14T21:56:34.031Z","etag":null,"topics":["grafana","helm","kind","kubernetes","loki","minio","prometheus","promtail"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unguiculus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-21T15:12:33.000Z","updated_at":"2024-08-01T16:33:45.405Z","dependencies_parsed_at":"2023-05-18T14:02:36.681Z","dependency_job_id":null,"html_url":"https://github.com/unguiculus/loki-minio-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unguiculus%2Floki-minio-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unguiculus%2Floki-minio-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unguiculus%2Floki-minio-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unguiculus%2Floki-minio-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unguiculus","download_url":"https://codeload.github.com/unguiculus/loki-minio-demo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248226051,"owners_count":21068120,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grafana","helm","kind","kubernetes","loki","minio","prometheus","promtail"],"created_at":"2024-08-01T15:06:20.970Z","updated_at":"2025-04-10T13:41:33.849Z","avatar_url":"https://github.com/unguiculus.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# loki-minio-demo\n\nDemo setup for Grafana Loki in microservices mode using MinIO as storage backend.\n\n## Pre-requisites\n\nThe following pre-requisites must be installed:\n\n* [Helm 3](https://helm.sh/)\n* [kubectl](https://kubernetes.io/de/docs/tasks/tools/install-kubectl/)\n* [Docker](https://www.docker.com/)\n* [kind](https://github.com/kubernetes-sigs/kind/)\n\n## Usage\n\nRun `./setup.sh`.\nThis will create a kind cluster and install all services.\n\n## What's Included?\n\nA kind cluster with one master and three worker nodes is created.\nThe cluster uses a local pull-through Docker registry for faster image pulling on the various kind nodes and to avoid rate-limiting issue with Docker hub.\n\nThe setup creates an _almost_ production-ready, highly available, distributed Loki setup.\nHowever, there are no resources configured for pods in this setup because we have to be able to spin up a lot of pods on a local Docker setup.\nYou may want to tweak your Docker configuration increasing the number of CPUs and the amount of memory it can use.\nIn a production setup resources should definitely be configured.\n\nPort 30123 is mapped to the same port on the master node in order to enable ingress.\n\n### The following Helm charts are installed:\n\n* [ingress-nginx](https://github.com/kubernetes/ingress-nginx/tree/master/charts/ingress-nginx)\n* [metrics-server](https://github.com/bitnami/charts/tree/master/bitnami/metrics-server)\n* [kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack)\n* [minio](https://github.com/minio/charts/tree/master/minio)\n* [loki-distributed](https://github.com/grafana/helm-charts/tree/main/charts/loki-distributed)\n* [Heptio Eventrouter](https://github.com/heptiolabs/eventrouter)\n* [promtail](https://github.com/grafana/helm-charts/tree/main/charts/promtail)\n* [loki-canary](https://github.com/grafana/helm-charts/tree/main/charts/loki-canary)\n* [test-logger](charts/test-logger)\n\n### Loki is installed with the following components:\n\n* gateway\n* ingester\n* distributor\n* querier\n* query-frontend\n* table-manager\n* compactor\n* ruler\n* memcached-chunks\n* memcached-frontend\n* memcached-index-queries\n\nSingle-Store (boltdb-shipper) is used for index storage with MinIO as storage backend.\n\n### The following services are reachable via ingress:\n\n* Grafana: http://localhost:30123/grafana\n* Prometheus: http://localhost:30123/prom\n* Alertmanager: http://localhost:30123/alerts\n* MinIO: http://localhost:30123/minio\n\n  MinIO access key and secret key for logging into the UI can be retrieved with the following commands.\n  ```console\n  kubectl get secret -n minio minio-credentials -o jsonpath=\"{.data.accesskey}\" | base64 --decode | xargs echo\n  kubectl get secret -n minio minio-credentials -o jsonpath=\"{.data.secretkey}\" | base64 --decode | xargs echo\n  ```\n\n### Test Loggers\n\nTwo instances of the test-logger chart are installed which simply log test messages for demo purposes, one in JSON format and one in logfmt format.\nThe Promtail configuration demonstrates how to extract the log level as label.\n\n### Grafana Dashboards\n\nBesides a number of dashboards that come with the kube-prometheus-stack, the following dashboards are provided for Loki:\n\n* Loki Operational (adapted from Grafana's Tanka setup): http://localhost:30123/grafana/d/loki-operational/\n* Loki Canary: http://localhost:30123/grafana/d/loki-canary/\n* Kubernetes Events: http://localhost:30123/grafana/d/kubernetes-events/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funguiculus%2Floki-minio-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funguiculus%2Floki-minio-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funguiculus%2Floki-minio-demo/lists"}