Установка GMONIT
Инструкция по разворачиванию GMONIT
Заголовок раздела «Инструкция по разворачиванию GMONIT»Разворачивание GMONIT через Docker Compose
Заголовок раздела «Разворачивание GMONIT через Docker Compose»С помощью Docker Compose можно просто и удобно разворачивать, настраивать и обновлять GMONIT в рамках одного хоста.
Шаги установки:
-
Запросить у команды GMONIT
ключдля доступа кdocker-репозиториюи залогиниться выполнив на хосте команду:
cat key.json | docker login \ --username json_key \ --password-stdin \ cr.yandex- Создать конфигурационный файл -
Caddyfileдля настройки реверсивного прокси-сервера Caddy:
gmonit.example.ru { reverse_proxy grafana:3000 tls /gmonit/ssl/server.crt /gmonit/ssl/server.key # подключение TLS-сертификата на домен}
gmonit-collector.example.ru { reverse_proxy collector:8080 tls /gmonit/ssl/server.crt /gmonit/ssl/server.key # подключение TLS-сертификата на домен}если удалить строчки с подключением сертификатов, Caddy сгенерирует их через Let’s encrypt.
Все URL вида
*.example.ruзаменить на реальные адреса для Grafana и коллектора
- Создать файл
docker-compose.yml:
services: clickhouse: restart: unless-stopped image: clickhouse/clickhouse-server:23.3 environment: CLICKHOUSE_USER: <<SOME_CLICKHOUSE_USER>> CLICKHOUSE_PASSWORD: <<SOME_CLICKHOUSE_PASSWORD>> healthcheck: test: wget --spider -q localhost:8123/ping interval: 10s timeout: 5s retries: 10
postgres: restart: unless-stopped image: postgres:13.1 environment: - POSTGRES_PASSWORD=<<SOME_POSTGRES_PASSWORD>> healthcheck: test: pg_isready -U postgres interval: 10s timeout: 5s retries: 10
redis: restart: unless-stopped image: redis:6 healthcheck: test: redis-cli ping interval: 10s timeout: 5s retries: 10
grafana: restart: unless-stopped image: cr.yandex/crpih7d63vpcj5dfn8jj/grafana:v2 environment: GF_SERVER_ROOT_URL: https://gmonit.example.ru
GF_SECURITY_ADMIN_PASSWORD: <<SOME_GRAFANA_ADMIN_PASSWORD>> GMONIT_GRAFANA_TEMPO_URL: https://gmonit-collector.example.ru/tempo GMONIT_GRAFANA_TEMPO_CA_CERT__FILE: /gmonit/ssl/rootCA.crt
GMONIT_GRAFANA_CLICKHOUSE_DATASOURCE_URL: http://clickhouse:8123 GMONIT_GRAFANA_CLICKHOUSE_DATABASE: default GMONIT_GRAFANA_CLICKHOUSE_USER: <<SOME_CLICKHOUSE_USER>> GMONIT_GRAFANA_CLICKHOUSE_PASSWORD: <<SOME_CLICKHOUSE_PASSWORD>>
GF_DATABASE_TYPE: postgres GF_DATABASE_HOST: postgres:5432 GF_DATABASE_NAME: postgres GF_DATABASE_USER: postgres GF_DATABASE_PASSWORD: <<SOME_POSTGRES_PASSWORD>> # GF_DATABASE_MAX_OPEN_CONN: 5
healthcheck: test: wget --spider -q localhost:3000/api/health interval: 10s timeout: 5s retries: 10 depends_on: clickhouse: condition: service_healthy postgres: condition: service_healthy volumes: - ./ssl:/gmonit/ssl # extra_hosts: # - "gmonit-collector.example:<example docker0 ip>172.17.0.1</>"
collector: restart: unless-stopped image: cr.yandex/crpih7d63vpcj5dfn8jj/collector:v2 environment: NEW_RELIC_LOG: stdout NEW_RELIC_LICENSE_KEY: 0123456789-123456789-123456789-123456789 NEW_RELIC_HOST: gmonit-collector.example.ru NEW_RELIC_CA_BUNDLE_PATH: /gmonit/ssl/rootCA.crt NEW_RELIC_APP_NAME: "[GMONIT] Collector"
LICENSE_KEY: <<YOUR_LICENSE_KEY>> # указать актуальный ключ лицензии GMONIT
PORT: 8080 CLICKHOUSE_URL: http://clickhouse:8123 CLICKHOUSE_USER: <<SOME_CLICKHOUSE_USER>> CLICKHOUSE_KEY: <<SOME_CLICKHOUSE_PASSWORD>> CLICKHOUSE_DB: default
REDIS_HOST: redis REDIS_PORT: 6379
SECRET_TOKEN: <<SOME_SECRET_TOKEN>> # случайная последовательность из 128 символов (цифры и латинские буквы)
# METRIC_DATA_TTL_DAY: 30 # ANALYTIC_EVENT_DATA_TTL_DAY: 30 # ERROR_DATA_TTL_DAY: 30 # AGENTS_TTL_DAY: 30
# SPAN_EVENT_DATA_TTL_DAY: 8 # TRANSACTION_SAMPLE_DATA_TTL_DAY: 8 healthcheck: test: curl -f localhost:8080/health interval: 10s timeout: 5s retries: 10 depends_on: clickhouse: condition: service_healthy postgres: condition: service_healthy redis: condition: service_healthy volumes: - ./ssl:/gmonit/ssl # extra_hosts: # - "gmonit-collector.example:<example docker0 ip>172.17.0.1</>"
caddy: restart: unless-stopped image: caddy:2.5.0 volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./ssl:/gmonit/ssl - caddy_data:/data ports: - 80:80 - 443:443 networks: default: aliases: - gmonit.exampleс.ru - gmonit-collector.example.ru depends_on: grafana: condition: service_healthy collector: condition: service_healthy
# docker volume create gmonit_caddy_datavolumes: caddy_data: external: true name: gmonit_caddy_dataДля всех заглушек вида
<<SOME_VALUE>>нужно задать конкретные значения.
Все URL вида
*.example.ruзаменить на реальные адреса для Grafana и коллектора
Список монтируемых директорий:
- ./ssl - сертификаты для выделенных доменов
- Caddyfile - файл с настройками для Caddy
Нужно создать внешние вольюмы:
docker volume create gmonit_caddy_data
- Запросить у команды GMONIT актуальный
лицензионный колюч.