Внешняя система мониторинга#

metrics

Система мониторинга состоит из Prometheus, Loki, Tempo и Grafana.

Сервер Global, развёрнутый в кластере Kubernetes, отправляет метрики, трейсы и логи во внутреннюю систему мониторинга. Также возможно настроить кластер Global так, чтобы он отсылал телеметрию во внешнюю систему. Для этого, при конфигурировании кластера Global требуется:

  • В визарде установки характристик (./resgroup.sh init_spec) задать значение true для полей «Отслеживать метрики» и «Дополнительно отсылать метрики во внешнюю систему».

  • В визарде установки значений (./resgroup.sh init_values) задать параметры для полей «Введите адрес доступа к внешнему prometheus», «Введите адрес доступа к внешнему loki» и «Введите адрес доступа к внешнему tempo» для каждой книги ресурсов.

Настройка Prometheus#

Prometheus устанавливается по официальной документации. Для получения метрик сервера Global дополнительные настройки не требуются.

Пример config.yaml

global:
  scrape_interval:     5s
  evaluation_interval: 5s

Настройка Loki#

Loki устанавливается по официальной документации.

Простейший конфиг приведён ниже. При его использовании требуется задать корректные значения параметров path_prefix, chunks_directory и rules_directory.

Пример config.yaml

auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096
  
common:
  instance_addr: 127.0.0.1
  path_prefix: {path}          #/mnt/data/loki
  storage:
    filesystem:
      chunks_directory: {path} #/mnt/data/loki/chunks
      rules_directory: {path}  #/mnt/data/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100

schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

ruler:
  alertmanager_url: http://localhost:9093

analytics:
  reporting_enabled: false

Настройка Tempo#

Tempo устанавливается по официальной документации. Простейший конфиг приведён ниже. При его использовании требуется задать корректные значения параметров path.

Пример config.yaml

stream_over_http_enabled: true
server:
  http_listen_address: 0.0.0.0
  http_listen_port: 3200

distributor:
  receivers:
    otlp:
      protocols:
        http:
          endpoint: 0.0.0.0:3201

storage:
  trace:
    backend: local
    wal:
      path: {path} #/mnt/data/tempo/wal
    local:
      path: {path} #/mnt/data/tempo/blocks          

Настройка Grafana#

Grafana устанавливается и настраивается по официальной документации.