Digital Products

Loki is an amazing log aggregation tool, and we’ve fully migrated our services here at Vokke. We’re all in. That said, we run Loki and the corresponding Grafana stack on our own infrastructure, and the setup was a little painful, primarily because of a lack of consistent documentation for the most recent version.

So here’s the config that worked for us, using a local MinIO object store. If you need a hand, feel free to email me at [email protected] and I’ve see if I can help!

auth_enabled: false

server:
  http_listen_port: 3100

  # We needed to increase this to send/receive large messages
  grpc_server_max_recv_msg_size: 20971520
  grpc_server_max_send_msg_size: 20971520
distributor:
  ring:
    kvstore:
      store: memberlist

ingester:
  wal:
    enabled: false
  lifecycler:
    ring:
      kvstore:
        store: memberlist
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s

memberlist:
  abort_if_cluster_join_fails: false

  # Expose this port on all distributor, ingester
  # and querier replicas.
  bind_port: 7946

  # You can use a headless k8s service for all distributor,
  # ingester and querier components.
  join_members:
  - loki:7946

  max_join_backoff: 1m
  max_join_retries: 10
  min_join_backoff: 1s

schema_config:
  configs:
  - from: 2020-05-15
    store: boltdb-shipper
    object_store: s3
    schema: v11
    index:
      prefix: index_
      period: 24h

storage_config:
 boltdb_shipper:
   active_index_directory: /loki/index
   cache_location: /loki/index_cache
   resync_interval: 5s
   shared_store: s3

 aws:
   s3: s3://PASSWORD_HERE:USERNAME_HERE@HOST_HERE/loki-logs
   s3forcepathstyle: true

limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h

 

Back to Blog