re init
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
DOMAIN_NAME=knast.cc
|
||||
DEFAULT_NETWORK=traefik
|
||||
@@ -0,0 +1,36 @@
|
||||
# Grafana logging
|
||||
|
||||
in order to feed docker logs, which is kind of a big deal in this use case, we need to go through a few steps.
|
||||
By default, setting up grafana, loki and promtail, we will be able to see the `/var/log/` files on the host machine.
|
||||
|
||||
Very nice & convienient, but we really want the docker logs as well.
|
||||
|
||||
|
||||
## Install the plugin
|
||||
|
||||
First installing the docker plugin for the loki driver.
|
||||
|
||||
```bash
|
||||
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
|
||||
```
|
||||
|
||||
After which you may need to restart the docker service.
|
||||
|
||||
```bash
|
||||
sudo systemctl restart docker.service
|
||||
```
|
||||
|
||||
Check if the plugin is installed.
|
||||
|
||||
```bash
|
||||
docker plugin ls
|
||||
```
|
||||
|
||||
We can then add the log pushing on a per container basis, by adding the follwing to each docker-compose.yml file.
|
||||
|
||||
```yaml
|
||||
logging:
|
||||
driver: loki
|
||||
options:
|
||||
loki-url: "http://localhost:3100/loki/api/v1/push"
|
||||
```
|
||||
@@ -0,0 +1,57 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
loki:
|
||||
image: grafana/loki:2.4.2
|
||||
ports:
|
||||
- "3100:3100"
|
||||
volumes:
|
||||
- ./loki-config.yaml:/etc/loki/loki-config.yaml
|
||||
- loki-data:/loki
|
||||
command: -config.file=/etc/loki/loki-config.yaml
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.grafana_loki.entrypoints=websecure"
|
||||
|
||||
promtail:
|
||||
image: grafana/promtail:2.4.2
|
||||
volumes:
|
||||
- /var/log:/var/log
|
||||
- ./promtail-config.yaml:/etc/promtail/config.yml
|
||||
command: -config.file=/etc/promtail/config.yml
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.grafana_promtail.entrypoints=websecure"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:latest
|
||||
ports:
|
||||
- "3333:3000"
|
||||
volumes:
|
||||
- grafana-data:/var/lib/grafana
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.grafana.entrypoints=websecure"
|
||||
- "traefik.http.routers.grafana.rule=Host(`logs.$DOMAIN_NAME`)"
|
||||
- "traefik.http.routers.grafana.tls.certresolver=letsencr"
|
||||
- "traefik.http.services.grafana.loadbalancer.server.port=3100"
|
||||
- traefik.docker.network=traefik
|
||||
|
||||
volumes:
|
||||
grafana-data:
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: /srv/grafana/grafana-data
|
||||
loki-data:
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: /srv/grafana/loki-data
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
||||
@@ -0,0 +1,68 @@
|
||||
auth_enabled: false
|
||||
|
||||
server:
|
||||
http_listen_port: 3100
|
||||
grpc_listen_port: 9096
|
||||
|
||||
ingester:
|
||||
wal:
|
||||
enabled: true
|
||||
dir: /tmp/wal
|
||||
lifecycler:
|
||||
address: 127.0.0.1
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
replication_factor: 1
|
||||
final_sleep: 0s
|
||||
chunk_idle_period: 1h # Any chunk not receiving new logs in this time will be flushed
|
||||
max_chunk_age: 1h # All chunks will be flushed when they hit this age, default is 1h
|
||||
chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
|
||||
chunk_retain_period: 30s # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m)
|
||||
max_transfer_retries: 0 # Chunk transfers disabled
|
||||
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2020-10-24
|
||||
store: boltdb-shipper
|
||||
object_store: filesystem
|
||||
schema: v11
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
|
||||
storage_config:
|
||||
boltdb_shipper:
|
||||
active_index_directory: /tmp/loki/boltdb-shipper-active
|
||||
cache_location: /tmp/loki/boltdb-shipper-cache
|
||||
cache_ttl: 24h # Can be increased for faster performance over longer query periods, uses more disk space
|
||||
shared_store: filesystem
|
||||
filesystem:
|
||||
directory: /tmp/loki/chunks
|
||||
|
||||
compactor:
|
||||
working_directory: /tmp/loki/boltdb-shipper-compactor
|
||||
shared_store: filesystem
|
||||
|
||||
limits_config:
|
||||
reject_old_samples: true
|
||||
reject_old_samples_max_age: 168h
|
||||
|
||||
chunk_store_config:
|
||||
max_look_back_period: 0s
|
||||
|
||||
table_manager:
|
||||
retention_deletes_enabled: false
|
||||
retention_period: 0s
|
||||
|
||||
ruler:
|
||||
storage:
|
||||
type: local
|
||||
local:
|
||||
directory: /tmp/loki/rules
|
||||
rule_path: /tmp/loki/rules-temp
|
||||
alertmanager_url: http://localhost:9093
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
enable_api: true
|
||||
@@ -0,0 +1,18 @@
|
||||
server:
|
||||
http_listen_port: 9080
|
||||
grpc_listen_port: 0
|
||||
|
||||
positions:
|
||||
filename: /tmp/positions.yaml
|
||||
|
||||
clients:
|
||||
- url: http://loki:3100/loki/api/v1/push
|
||||
|
||||
scrape_configs:
|
||||
- job_name: system
|
||||
static_configs:
|
||||
- targets:
|
||||
- localhost
|
||||
labels:
|
||||
job: varlogs
|
||||
__path__: /var/log/**/*
|
||||
Reference in New Issue
Block a user