github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/examples/getting-started/docker-compose.yaml (about) 1 --- 2 version: "3" 3 4 networks: 5 loki: 6 7 services: 8 read: 9 image: grafana/loki:2.6.1 10 command: "-config.file=/etc/loki/config.yaml -target=read" 11 ports: 12 - 3101:3100 13 - 7946 14 - 9095 15 volumes: 16 - ./loki-config.yaml:/etc/loki/config.yaml 17 depends_on: 18 - minio 19 networks: &loki-dns 20 loki: 21 aliases: 22 - loki 23 24 write: 25 image: grafana/loki:2.6.1 26 command: "-config.file=/etc/loki/config.yaml -target=write" 27 ports: 28 - 3102:3100 29 - 7946 30 - 9095 31 volumes: 32 - ./loki-config.yaml:/etc/loki/config.yaml 33 depends_on: 34 - minio 35 networks: 36 <<: *loki-dns 37 38 promtail: 39 image: grafana/promtail:2.6.1 40 volumes: 41 - ./promtail-local-config.yaml:/etc/promtail/config.yaml:ro 42 - /var/run/docker.sock:/var/run/docker.sock 43 command: -config.file=/etc/promtail/config.yaml 44 depends_on: 45 - gateway 46 networks: 47 - loki 48 49 minio: 50 image: minio/minio 51 entrypoint: 52 - sh 53 - -euc 54 - | 55 mkdir -p /data/loki-data && \ 56 mkdir -p /data/loki-ruler && \ 57 minio server /data 58 environment: 59 - MINIO_ACCESS_KEY=loki 60 - MINIO_SECRET_KEY=supersecret 61 - MINIO_PROMETHEUS_AUTH_TYPE=public 62 - MINIO_UPDATE=off 63 ports: 64 - 9000 65 volumes: 66 - ./.data/minio:/data 67 networks: 68 - loki 69 70 grafana: 71 image: grafana/grafana:latest 72 environment: 73 - GF_PATHS_PROVISIONING=/etc/grafana/provisioning 74 - GF_AUTH_ANONYMOUS_ENABLED=true 75 - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin 76 depends_on: 77 - gateway 78 entrypoint: 79 - sh 80 - -euc 81 - | 82 mkdir -p /etc/grafana/provisioning/datasources 83 cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml 84 apiVersion: 1 85 datasources: 86 - name: Loki 87 type: loki 88 access: proxy 89 url: http://gateway:3100 90 jsonData: 91 httpHeaderName1: "X-Scope-OrgID" 92 secureJsonData: 93 httpHeaderValue1: "tenant1" 94 EOF 95 /run.sh 96 ports: 97 - "3000:3000" 98 networks: 99 - loki 100 101 gateway: 102 image: nginx:latest 103 depends_on: 104 - read 105 - write 106 entrypoint: 107 - sh 108 - -euc 109 - | 110 cat <<EOF > /etc/nginx/nginx.conf 111 user nginx; 112 worker_processes 5; ## Default: 1 113 114 events { 115 worker_connections 1000; 116 } 117 118 http { 119 resolver 127.0.0.11; 120 121 server { 122 listen 3100; 123 124 location = / { 125 return 200 'OK'; 126 auth_basic off; 127 } 128 129 location = /api/prom/push { 130 proxy_pass http://write:3100\$$request_uri; 131 } 132 133 location = /api/prom/tail { 134 proxy_pass http://read:3100\$$request_uri; 135 proxy_set_header Upgrade \$$http_upgrade; 136 proxy_set_header Connection "upgrade"; 137 } 138 139 location ~ /api/prom/.* { 140 proxy_pass http://read:3100\$$request_uri; 141 } 142 143 location = /loki/api/v1/push { 144 proxy_pass http://write:3100\$$request_uri; 145 } 146 147 location = /loki/api/v1/tail { 148 proxy_pass http://read:3100\$$request_uri; 149 proxy_set_header Upgrade \$$http_upgrade; 150 proxy_set_header Connection "upgrade"; 151 } 152 153 location ~ /loki/api/.* { 154 proxy_pass http://read:3100\$$request_uri; 155 } 156 } 157 } 158 EOF 159 /docker-entrypoint.sh nginx -g "daemon off;" 160 ports: 161 - "3100:3100" 162 networks: 163 - loki 164 165 flog: 166 image: mingrammer/flog 167 command: -f json -d 1s -l 168 networks: 169 - loki