# Мониторинг кластера Global ERP ![metrics](img/metrics.png) Система мониторинга состоит из Prometheus, Loki, Tempo и Grafana. ## Телеметрия k8s Для сбора системной телеметрии кластера k8s используется [kube-prometheus-stack](https://github.com/prometheus-operator/kube-prometheus) ### Собственный кластер k8s При разворачивании кластера Global ERP в собственном кластере k8s требуется требуется установить [kube-prometheus-stack](https://github.com/prometheus-operator/kube-prometheus) по [официальной документации](https://github.com/prometheus-operator/kube-prometheus#quickstart) ### VK Cloud При разворачивании кластера Global ERP в VK Cloud требуется установить аддон "kube-prometheus-stack" из панели управления кластером. В конфигурации аддона для компонента prometheus-node-exporter требуется добавить блок "extraArgs" для получения телеметрии ФС нод кластера. ```yaml prometheus-node-exporter: image: repository: "prometheus/node-exporter" tag: v1.7.0 namespaceOverride: "monitoring" resources: limits: cpu: 200m memory: 50Mi requests: cpu: 100m memory: 30Mi extraArgs: - --collector.filesystem - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$ ``` # Внешняя система мониторинга Для настройки отправки логов во внешний инстанс Loki при [конфигурировании](./020_install.md#Шаг-4.-Настройте-группы-ресурсов) групп ресурсов и книг ресурсов кластера Global в поле "Дополнительно отсылать метрики во внешнюю систему" требуется выставить "Да". ## Настройка Prometheus Prometheus устанавливается по [официальной документации](https://prometheus.io/docs/prometheus/latest/installation/). Для получения метрик сервера Global Prometheus настраивается на сбор метрик с внутреннего инстанса через [федерацию](https://prometheus.io/docs/prometheus/latest/federation/). Пример [config.yaml](https://prometheus.io/docs/prometheus/latest/configuration/configuration/) ```yaml global: scrape_interval: 5s evaluation_interval: 5s scrape_configs: - job_name: 'federate' scrape_interval: 15s honor_labels: true metrics_path: '/federate' params: 'match[]': - '{__name__=~"^[^go_].+"}' static_configs: - targets: - ':9090' ``` ## Настройка Loki Loki устанавливается по [официальной документации](https://grafana.com/docs/loki/latest/setup/install/). Простейший конфиг приведён ниже. При его использовании требуется задать корректные значения параметров *path_prefix*, *chunks_directory* и *rules_directory*. Пример [config.yaml](https://grafana.com/docs/loki/latest/configure/) ```yaml auth_enabled: false server: http_listen_port: 3100 grpc_listen_port: 9096 common: instance_addr: 127.0.0.1 path_prefix: #/mnt/data/loki storage: filesystem: chunks_directory: #/mnt/data/loki/chunks rules_directory: #/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 ``` ## Настройка Grafana Grafana [устанавливается](https://grafana.com/docs/grafana/latest/setup-grafana/installation/) и [настраивается](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/) по официальной документации.