diff --git a/grafana/datasource.yml b/grafana/datasource.yml new file mode 100644 index 0000000..20285e4 --- /dev/null +++ b/grafana/datasource.yml @@ -0,0 +1,12 @@ +apiVersion: 1 + +datasources: + - name: Loki + type: loki + access: proxy + url: http://loki:3100 + editable: false + jsonData: + httpHeaderName1: "X-Scope-OrgID" + secureJsonData: + httpHeaderValue1: "tenant1" diff --git a/grafana/docker-compose.yaml b/grafana/docker-compose.yaml index c047876..9f6f584 100644 --- a/grafana/docker-compose.yaml +++ b/grafana/docker-compose.yaml @@ -5,13 +5,10 @@ networks: loki: services: - read: + loki: image: grafana/loki:2.8.2 - command: "-config.file=/etc/loki/config.yaml -target=read" ports: - 3101:3100 - - 7946 - - 9095 volumes: - ./loki-config.yaml:/etc/loki/config.yaml depends_on: @@ -21,40 +18,6 @@ services: interval: 10s timeout: 5s retries: 5 - networks: &loki-dns - loki: - aliases: - - loki - - write: - image: grafana/loki:2.8.2 - command: "-config.file=/etc/loki/config.yaml -target=write" - ports: - - 3102:3100 - - 7946 - - 9095 - volumes: - - ./loki-config.yaml:/etc/loki/config.yaml - healthcheck: - test: [ "CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3100/ready || exit 1" ] - interval: 10s - timeout: 5s - retries: 5 - depends_on: - - minio - networks: - <<: *loki-dns - - promtail: - image: grafana/promtail:2.8.2 - volumes: - - ./promtail-local-config.yaml:/etc/promtail/config.yaml:ro - - /var/run/docker.sock:/var/run/docker.sock - command: -config.file=/etc/promtail/config.yaml - depends_on: - - gateway - networks: - - loki minio: image: minio/minio @@ -88,26 +51,8 @@ services: - GF_PATHS_PROVISIONING=/etc/grafana/provisioning - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin - depends_on: - - gateway - entrypoint: - - sh - - -euc - - | - mkdir -p /etc/grafana/provisioning/datasources - cat < /etc/grafana/provisioning/datasources/ds.yaml - apiVersion: 1 - datasources: - - name: Loki - type: loki - access: proxy - url: http://gateway:3100 - jsonData: - httpHeaderName1: "X-Scope-OrgID" - secureJsonData: - httpHeaderValue1: "tenant1" - EOF - /run.sh + volumes: + - ./datasource.yml:/etc/grafana/provisioning/datasources/ds.yml ports: - "3000:3000" healthcheck: @@ -115,80 +60,12 @@ services: interval: 10s timeout: 5s retries: 5 - networks: - - loki - - gateway: - image: nginx:latest - depends_on: - - read - - write - entrypoint: - - sh - - -euc - - | - cat < /etc/nginx/nginx.conf - user nginx; - worker_processes 5; ## Default: 1 - - events { - worker_connections 1000; - } - - http { - resolver 127.0.0.11; - - server { - listen 3100; - - location = / { - return 200 'OK'; - auth_basic off; - } - - location = /api/prom/push { - proxy_pass http://write:3100\$$request_uri; - } - - location = /api/prom/tail { - proxy_pass http://read:3100\$$request_uri; - proxy_set_header Upgrade \$$http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location ~ /api/prom/.* { - proxy_pass http://read:3100\$$request_uri; - } - - location = /loki/api/v1/push { - proxy_pass http://write:3100\$$request_uri; - } - - location = /loki/api/v1/tail { - proxy_pass http://read:3100\$$request_uri; - proxy_set_header Upgrade \$$http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location ~ /loki/api/.* { - proxy_pass http://read:3100\$$request_uri; - } - } - } - EOF - /docker-entrypoint.sh nginx -g "daemon off;" - ports: - - "3100:3100" - healthcheck: - test: ["CMD", "service", "nginx", "status"] - interval: 10s - timeout: 5s - retries: 5 - networks: - - loki flog: image: mingrammer/flog command: -f json -d 1s -l - networks: - - loki + logging: + driver: loki + options: + loki-url: http://localhost:3100/loki/api/v1/push + loki-external-labels: job=dockerlogs,owner=ruan,environment=development