diff --git a/stack/.env b/stack/.env new file mode 100644 index 0000000..182664a --- /dev/null +++ b/stack/.env @@ -0,0 +1 @@ +host=p8o.ru \ No newline at end of file diff --git a/stack/data/grafana/.env b/stack/data/grafana/.env new file mode 100644 index 0000000..c138cdd --- /dev/null +++ b/stack/data/grafana/.env @@ -0,0 +1,16 @@ +GRAFANA_TOKEN= +GRAFANA_ADMIN_ACCOUNT=admin +GRAFANA_ADMIN_PASSWORD=admin + +VERIFY_SSL=false +GRAFANA_URL=http://grafana-edu:3000 + +AWS_S3_BUCKET_NAME=grafana +AWS_S3_BUCKET_KEY=grafana-backup +AWS_DEFAULT_REGION= +AWS_ACCESS_KEY_ID=grafana-user +AWS_SECRET_ACCESS_KEY=grafana-user +AWS_ENDPOINT_URL=https://s3.domain.ru + +RESTORE=false +ARCHIVE_FILE= diff --git a/stack/data/grafana/datasources.yaml b/stack/data/grafana/datasources.yaml new file mode 100644 index 0000000..0529510 --- /dev/null +++ b/stack/data/grafana/datasources.yaml @@ -0,0 +1,7 @@ +apiVersion: 1 +datasources: +- access: proxy + isDefault: true + name: loki-main + type: loki + url: http://loki-edu:3100 diff --git a/stack/data/local-config.yaml b/stack/data/local-config.yaml new file mode 100644 index 0000000..92bb428 --- /dev/null +++ b/stack/data/local-config.yaml @@ -0,0 +1,62 @@ +auth_enabled: false + +server: + http_listen_port: 3100 + grpc_listen_port: 9095 + grpc_server_max_concurrent_streams: 1000 + +compactor: + retention_delete_delay: 2h + retention_delete_worker_count: 150 + retention_enabled: true + delete_request_store: filesystem + working_directory: /loki/chunks + +ingester: + chunk_block_size: 262144 + chunk_idle_period: 3m + chunk_retain_period: 1m + lifecycler: + ring: + kvstore: + store: inmemory + replication_factor: 1 + wal: + dir: /loki/wal + +limits_config: + max_query_lookback: 672h # 28 days + retention_period: 672h # 28 days + +common: + instance_addr: 127.0.0.1 + path_prefix: /loki + storage: + filesystem: + chunks_directory: /loki/chunks + rules_directory: /loki/rules + replication_factor: 1 + ring: + kvstore: + store: inmemory + +schema_config: + configs: + - from: 2020-10-24 + store: tsdb + object_store: filesystem + schema: v13 + index: + prefix: index_ + period: 24h + +pattern_ingester: + enabled: true + metric_aggregation: + loki_address: localhost:3100 + +ruler: + alertmanager_url: http://alertmanager:9093 + +frontend: + encoding: protobuf diff --git a/stack/docker-compose.yml b/stack/docker-compose.yml new file mode 100644 index 0000000..a0f70b1 --- /dev/null +++ b/stack/docker-compose.yml @@ -0,0 +1,65 @@ +version: "3.9" + +services: + grafana: + image: grafana/grafana:latest + container_name: grafana-edu + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.http.routers.grafana-edu.entrypoints=https" + - "traefik.http.routers.grafana-edu.rule=Host(`grafana-edu.${HOST}`)" + - "traefik.http.routers.grafana-edu.tls=true" + - "traefik.http.routers.grafana-edu.tls.certresolver=regru" + - "traefik.http.services.grafana-edu-service.loadbalancer.server.port=3000" + - "traefik.docker.network=webproxy" + environment: + - GF_PATHS_DATA=/var/lib/grafana/data + - GF_PATHS_LOGS=/var/log/grafana + - GF_PATHS_PLUGINS=/var/lib/grafana/plugins + - GF_PATHS_PROVISIONING=/etc/grafana/provisioning + - GF_AUTH_ANONYMOUS_ENABLED=false + - GF_USERS_ALLOW_SIGN_UP=false + - GF_USERS_ALLOW_ORG_CREATE=false + volumes: + - ./data/grafana/grafana.ini:/etc/grafana/grafana.ini + - ./data/grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml + - grafana-edu-storage:/var/lib/grafana + expose: + - 3000 + networks: + - loki-edu + - webproxy + + loki: + image: grafana/loki:3.3.2 + container_name: loki + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.http.routers.loki-edu.entrypoints=https" + - "traefik.http.routers.loki-edu.rule=Host(`loki-edu.${HOST}`)" + - "traefik.http.routers.loki-edu.tls=true" + - "traefik.http.routers.loki-edu.tls.certresolver=regru" + - "traefik.http.services.loki-service.loadbalancer.server.port=3100" + - "traefik.docker.network=webproxy" + command: -config.file=/etc/loki/local-config.yaml + volumes: + - loki-edu-storage:/loki + - ./data/local-config.yaml:/etc/loki/local-config.yaml + expose: + - 3100 + networks: + - loki-edu + - webproxy + +networks: + loki-edu: + name: loki-edu + webproxy: + external: true + + +volumes: + grafana-edu-storage: + loki-edu-storage: