2025-06-09 08:50:16 +02:00
2025-06-06 11:02:58 +02:00
2025-06-09 07:53:44 +02:00
2025-06-09 07:53:44 +02:00
2025-06-06 11:02:58 +02:00
2025-06-09 07:53:44 +02:00
2025-06-09 08:50:16 +02:00

Grafana-Loki-Minio

Description

This dokcer run stack grafana, loki, promtail, minio

Container

Name URL Description
<COMPOSE_PROJECT_NAME>-dns-tools-1 - container with dns tools (just use for debug)
<COMPOSE_PROJECT_NAME>-proxy-1 https://<server_fqdn> nginx proxy
<COMPOSE_PROJECT_NAME>-minio-1 UI: https://<server_fqdn>/minio/ui
API: http://127.0.0.1:9000
container minio server UI and API
<COMPOSE_PROJECT_NAME>-grafana-1 https://<server_fqdn>/grafana grafana
<COMPOSE_PROJECT_NAME>-minio-cli-1 - client minio
<COMPOSE_PROJECT_NAME>-prometheus-1 http://<server_fqdn>:9090 prometheus
<COMPOSE_PROJECT_NAME>-node-exporter-1 - node metrics for prometheus

Requirements

Certificats

Create a folder named /home/docker/certs and copy your certificates into it.

sudo mkdir -p /home/docker/certs

Variables

All variables are described in the .env.dist file

Copy the .env.dist file to .env and update it with values appropriate for your setup.

Proxy (nginx)

Create the folder where the ngnix config will be stored and copy the config/nginx.conf into it

sudo mkdir -p /home/docker/nginx
sudo cp ./config/default.conf /home/docker/nginx/.

Minio

Create the folder where the minio data will be stored

sudo mkdir -p /home/docker/minio

Minio client

Create the folder where the minio client comfig will be stored

sudo mkdir -p /home/docker/minio-cli

Grafana

Create the folder where the grafana data will be stored

sudo mkdir -p /home/docker/grafana

Prometheus

Create the folder where the grafana data will be stored

sudo mkdir -p /home/docker/prometheus

Create the folder where the prometheus data will be stored

sudo mkdir -p /home/docker/prometheus-data

Run

docker compose up -d

Config

Minio client

Create an alias

docker exec -it <COMPOSE_PROJECT_NAME>-minio-cli-1 /bin/sh -c "mc alias set myminio http://minio:9000 <MINIO_ACCESS_KEY> <MINIO_SECRET_KEY>"

Create prometheus metrics job

docker exec -it <COMPOSE_PROJECT_NAME>-minio-cli-1 /bin/sh -c "mc admin prometheus generate myminio"

Copy the output into prometheus.yml

scrape_configs:
- job_name: minio-job
  bearer_token: eyJhbGciOiJIUzUxMiIs..InR5cCI6IkpXVCJ9
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['minio:9000']

Restart prometheus

docker compose restart prometheus

Add dashboard 13502 - MinIO Dashboard to grafana

Prometheus

grafana source

http://prometheus:9090

grafana dashboard

3662 - Prometheus 2.0 Overview

Node exporter

grafana dashboard

1860 - Node Exporter Full

Access

dns-tools

docker exec -it <COMPOSE_PROJECT_NAME>-dns-tools /bin/bash
dig minio-server
ping minio-server
nslookup minio-server

minio
https://<server_fqdn>/minio/ui/

minio-cli

docker exec -it <COMPOSE_PROJECT_NAME>-minio-cli-1 /bin/sh

grafana
https://<server_fqdn>/grafana/

prometheus
http://<server_fqdn>:9090

Metrics access

node-exporter

docker exec -it <COMPOSE_PROJECT_NAME>-proxy-1 /bin/sh -c "curl http://node-exporter:9100/metrics"

prometheus

docker exec -it <COMPOSE_PROJECT_NAME>-proxy-1 /bin/sh -c "curl http://prometheus:9090/metrics"

minio

TOKEN=$(echo "Authorization: Bearer $(grep "bearer_token" config/prometheus.yml | cut -d':' -f2 |cut -d' ' -f2)")
docker exec -it gmo-loki-proxy-1 /bin/bash -c "curl -H \"Accept: application/json\" -H \"${TOKEN}\"  http://minio:9000/minio/v2/metrics/cluster"

Sources

Minio

Grafana

Prometheus

Changelog

[1.1.0] - 2025-06-09

Added

  • prometheus container
  • node exporter container
  • grafana dashboard
    • 1860 - Node Exporter Full
    • 3662 - Prometheus 2.0 Overview
    • 13502 - MinIO Dashboard

[1.0.0] - 2025-06-08

Added

  • init docker container
  • proxy with nginx
  • minio container
  • grafana container

Project initialization

  • initialization by GMo
Description
No description provided
Readme 104 KiB