Expand description
§Grafana
§docker
services:
grafana:
container_name: grafana
hostname: grafana
image: grafana/grafana:10.2.3 # https://hub.docker.com/r/grafana/grafana/tags
environment:
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_SECURITY_ALLOW_EMBEDDING=true
# настройки источника - TimescaleDB
- TIMESCALEDB_HOST=timescaledb
- TIMESCALEDB_PORT=5432
- TIMESCALEDB_DB_DATA=db_data
# настройки источника - логгер loki
- LOKI_HOST=loki
- LOKI_PORT=3100
# настройки источника - InfluxDB
- INFLUXDB_HOST=influxdb
- INFLUXDB_PORT=8086
- INFLUXDB_ORG=org
- INFLUXDB_BUCKET=bucket
- INFLUXDB_TOKEN=token
ports:
- "3000:3000"
profiles:
- dev
- target
volumes:
- ./config_services/grafana/datasources:/etc/grafana/provisioning/datasources
- ./config_services/grafana/dashboards:/etc/grafana/provisioning/dashboards
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- network_internal
networks:
network_internal:
§Файлы конфигурации
§datasources/
В папке хранятся файлы для настройки источников данных.
influxdb.yaml:
apiVersion: 1
datasources:
- name: InfluxDB
type: influxdb
access: proxy
url: http://${INFLUXDB_HOST}:${INFLUXDB_PORT}
jsonData:
version: Flux
organization: ${INFLUXDB_ORG}
defaultBucket: ${INFLUXDB_BUCKET}
tlsSkipVerify: true
secureJsonData:
token: ${INFLUXDB_TOKEN}
loki.yaml:
apiVersion: 1
datasources:
- name: loki
type: loki
access: proxy
orgId: 1
url: http://${LOKI_HOST}:${LOKI_PORT}
basicAuth: false
isDefault: true
version: 1
editable: false
timescaledb.yaml:
apiVersion: 1
datasources:
- name: timescaledb
type: postgres
url: ${TIMESCALEDB_HOST}:${TIMESCALEDB_PORT}
user: postgres
secureJsonData:
password: "postgres"
jsonData:
database: ${TIMESCALEDB_DB_DATA}
sslmode: "disable" # disable/require/verify-ca/verify-full
maxOpenConns: 100 # Grafana v5.4+
maxIdleConns: 100 # Grafana v5.4+
maxIdleConnsAuto: true # Grafana v9.5.1+
connMaxLifetime: 14400 # Grafana v5.4+
postgresVersion: 1500 # 903=9.3, 904=9.4, 905=9.5, 906=9.6, 1000=10
timescaledb: true
editable: false
§datasources/
В папке хранятся все дашбоарды. Структура папок переносится в структуру дашбоардов. В корне папки нужно разместить файл config.yaml:
apiVersion: 1
providers:
- name: dashboards
type: file
updateIntervalSeconds: 5
options:
path: /etc/grafana/provisioning/dashboards
foldersFromFilesStructure: true