From 6dfe3975d9005cad0951d94c885c312ffc4ecb99 Mon Sep 17 00:00:00 2001 From: Anton Bobkov Date: Sat, 28 Dec 2024 16:32:53 +0300 Subject: [PATCH] Added information on the Prometheus configuration file --- ydb/docs/en/core/devops/manual/monitoring.md | 66 ++++++++++++++++---- ydb/docs/ru/core/devops/manual/monitoring.md | 64 ++++++++++++++++--- 2 files changed, 109 insertions(+), 21 deletions(-) diff --git a/ydb/docs/en/core/devops/manual/monitoring.md b/ydb/docs/en/core/devops/manual/monitoring.md index 013242c5e67f..351de186da6a 100644 --- a/ydb/docs/en/core/devops/manual/monitoring.md +++ b/ydb/docs/en/core/devops/manual/monitoring.md @@ -1,34 +1,40 @@ -# Setting up monitoring for a local {{ ydb-short-name }} cluster +# Setting up monitoring for a {{ ydb-short-name }} cluster -This page provides instructions on how to set up monitoring for a local {{ ydb-short-name }} cluster that is deployed using [Quick start](../../quickstart.md). +This page provides instructions on how to set up monitoring for a {{ ydb-short-name }} cluster. {{ ydb-short-name }} has multiple system health sensors. Instant sensor values are available in the web interface: ```http -http://localhost:31002/counters/ +http://:/counters/ ``` -Linked sensors are grouped into a subgroup (such as `counters auth`). To only view sensor values for a particular subgroup, follow a URL like: +- `` – the {{ ydb-short-name }} server address. + + For a local {{ ydb-short-name }} cluster that is deployed using [Quick start](../../quickstart.md) use the `localhost` address. + +- `` – the {{ ydb-short-name }} port. Default value: 8765. + +Linked sensors are grouped into subgroups (such as `counters auth`). To only view sensor values for a particular subgroup, follow a URL like: ```http -http://localhost:31002/counters/counters=/ +http://:/counters/counters=/ ``` -* ``: Sensor subgroup name. +- ``: Sensor subgroup name. > For example, data about the utilization of server hardware resources is available at the URL: > > ```http -> http://localhost:31002/counters/counters=utils +> http://:/counters/counters=utils > ``` You can collect metric values using [Prometheus](https://prometheus.io/), a popular open-source tool. {{ ydb-short-name }} sensor values in [Prometheus format](https://prometheus.io/docs/instrumenting/exposition_formats/) are available at a URL in the following format: ```http -http://localhost:31002/counters/counters=/prometheus +http://:/counters/counters=/prometheus ``` -* ``: Sensor subgroup name. +- ``: Sensor subgroup name. To visualize data, use any system that supports Prometheus, such as [Zabbix](https://www.zabbix.com/), [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/), or [Grafana](https://grafana.com/): @@ -36,12 +42,50 @@ To visualize data, use any system that supports Prometheus, such as [Zabbix](htt ## Setting up monitoring with Prometheus and Grafana {#prometheus-grafana} -To set up monitoring for a local single-node {{ ydb-short-name }} cluster using [Prometheus](https://prometheus.io/) and [Grafana](https://grafana.com/): +To set up monitoring for a {{ ydb-short-name }} cluster using [Prometheus](https://prometheus.io/) and [Grafana](https://grafana.com/): 1. [Install and run](https://prometheus.io/docs/prometheus/latest/getting_started/#downloading-and-running-prometheus) Prometheus via a [configuration file](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/grafana_dashboards/local_ydb_prometheus.yml). + + Edit the configuration file before running Prometheus: + + 1. In the `targets` section specify addresses of all servers of the {{ ydb-short-name }} cluster and ports for each nodes (static and dynamic) that runs on the server. + + For example, for the {{ ydb-short-name }} cluster that contains three servers, each server running one static and two dynamic nodes, specify nine addresses for all sensor subgroups, except for the disk subgroups (for disk sensor subgroups, specify only static node addresses): + + ```json + static_configs: + - targets: + - ydb-s1.example.com:8765 + - ydb-s1.example.com:8766 + - ydb-s1.example.com:8767 + - ydb-s2.example.com:8765 + - ydb-s2.example.com:8766 + - ydb-s2.example.com:8767 + - ydb-s3.example.com:8765 + - ydb-s3.example.com:8766 + - ydb-s3.example.com:8767 + ``` + + For a local single-node {{ ydb-short-name }} cluster, specify one address in the `targets` section: + + ```json + - targets: ["localhost:8765"] + ``` + + 1. If necessary, specify the TLS certificate in the `tls_config` section: + + ```json + tls_config: + ca_file: '' + ``` + + Skip this step for a local single-node {{ ydb-short-name }} cluster. + 1. [Install and start](https://grafana.com/docs/grafana/latest/getting-started/getting-started/) the Grafana. + 1. [Create](https://prometheus.io/docs/visualization/grafana/#creating-a-prometheus-data-source) a data source of the `prometheus` type in Grafana and attach it to a running Prometheus instance. -1. Upload [{{ ydb-short-name }} dashboards](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/grafana_dashboards/) to Grafana. + +1. Upload [{{ ydb-short-name }} dashboards](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/helm/ydb-prometheus/dashboards) to Grafana. To upload dashboards, use the Grafana UI [Import](https://grafana.com/docs/grafana/latest/dashboards/export-import/#import-dashboard) tool or run a [script](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/grafana_dashboards/local_upload_dashboards.sh). Please note that the script uses [basic authentication](https://grafana.com/docs/grafana/latest/http_api/create-api-tokens-for-org/#authentication) in Grafana. For other cases, modify the script. diff --git a/ydb/docs/ru/core/devops/manual/monitoring.md b/ydb/docs/ru/core/devops/manual/monitoring.md index f7edde427445..d198de20e985 100644 --- a/ydb/docs/ru/core/devops/manual/monitoring.md +++ b/ydb/docs/ru/core/devops/manual/monitoring.md @@ -1,34 +1,42 @@ -# Настройка мониторинга локального кластера {{ ydb-short-name }} +# Настройка мониторинга кластера {{ ydb-short-name }} -На этой странице рассказано, как настроить мониторинг локального однонодового кластера YDB, запущенного с помощью инструкции по [Быстрому началу работы](../../quickstart.md). +На этой странице рассказано, как настроить мониторинг кластера {{ ydb-short-name }}. {{ ydb-short-name }} предоставляет множество сенсоров состояния системы. Мгновенные значения сенсоров можно посмотреть в веб-интерфейсе: ```text -http://localhost:31002/counters/ +http://:/counters/ ``` +где: + +- `` – адрес сервера {{ ydb-short-name }}. + + Для локального однонодового кластера YDB, запущенного с помощью инструкции по [Быстрому началу работы](../../quickstart.md), используйте адрес `localhost`. + +- `` – порт {{ ydb-short-name }}. Значение по умолчанию: 8765. + Связанные сенсоры объединены в подгруппы (например `counters auth`). Чтобы посмотреть значения сенсоров только определенной подгруппы, перейдите по URL следующего вида: ```text -http://localhost:31002/counters/counters=/ +http://:/counters/counters=/ ``` -* `` — имя подгруппы сенсоров. +- `` — имя подгруппы сенсоров. Например, данные об утилизации аппаратных ресурсов сервера доступны по следующему URL: ```text -http://localhost:31002/counters/counters=utils +http://:/counters/counters=utils ``` Для сбора значений метрик вы можете использовать популярный инструмент с открытым исходным кодом [Prometheus](https://prometheus.io/). Значения сенсоров {{ ydb-short-name }} в [формате Prometheus](https://prometheus.io/docs/instrumenting/exposition_formats/) доступны по URL следующего вида: ```text -http://localhost:31002/counters/counters=/prometheus +http://:/counters/counters=/prometheus ``` -* `` — имя подгруппы сенсоров. +- `` — имя подгруппы сенсоров. Визуализировать данные можно с помощью любой системы, которая поддерживает формат Prometheus, например [Zabbix](https://www.zabbix.com/ru/), [Amazon CloudWatch](https://aws.amazon.com/ru/cloudwatch/) или [Grafana](https://grafana.com/): @@ -36,12 +44,48 @@ http://localhost:31002/counters/counters=/prometheus ## Настройка мониторинга с помощью Prometheus и Grafana {#prometheus-grafana} -Чтобы настроить мониторинг локального однонодового кластера {{ ydb-short-name }} с помощью [Prometheus](https://prometheus.io/) и [Grafana](https://grafana.com/): +Чтобы настроить мониторинг кластера {{ ydb-short-name }} с помощью [Prometheus](https://prometheus.io/) и [Grafana](https://grafana.com/): 1. [Установите и запустите](https://prometheus.io/docs/prometheus/latest/getting_started/#downloading-and-running-prometheus) Prometheus, используя [файл конфигурации](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/grafana_dashboards/local_ydb_prometheus.yml). + + Перед использованием, файл конфигурации Prometheus необходимо отредактировать: + + 1. В секции `targets` укажите адреса всех серверов кластера {{ ydb-short-name }} и порты каждого из узлов (статического и динамического), работающих на сервере. + + Например, для кластера из трёх серверов, где на каждом сервере работает один статический и два динамических узла, необходимо прописать девять адресов для всех подгрупп сенсоров, кроме дисковых (для дисковых подгрупп сенсоров необходимо указать только адреса статических узлов): + + ```json + static_configs: + - targets: + - ydb-s1.example.com:8765 + - ydb-s1.example.com:8766 + - ydb-s1.example.com:8767 + - ydb-s2.example.com:8765 + - ydb-s2.example.com:8766 + - ydb-s2.example.com:8767 + - ydb-s3.example.com:8765 + - ydb-s3.example.com:8766 + - ydb-s3.example.com:8767 + ``` + + Для локального однонодового кластера YDB, в секции `targets` прописывается один адрес: + + ```json + - targets: ["localhost:8765"] + ``` + + 1. При необходимости, укажите TLS сертификат в секции `tls_config`: + + ```json + tls_config: + ca_file: '' + ``` + + Пропустите этот шаг для локального однонодового кластера {{ ydb-short-name }}. + 1. [Установите и запустите](https://grafana.com/docs/grafana/latest/getting-started/getting-started/) Grafana. 1. [Создайте](https://prometheus.io/docs/visualization/grafana/#creating-a-prometheus-data-source) источник данных с типом `prometheus` в Grafana и подсоедините его к запущенному экземпляру Prometheus. -1. Загрузите [дашборды {{ ydb-short-name }}](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/grafana_dashboards/) в Grafana. +1. Загрузите [дашборды {{ ydb-short-name }}](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/helm/ydb-prometheus/dashboards) в Grafana. Вы можете загрузить дашборды с помощью инструмента [Import](https://grafana.com/docs/grafana/latest/dashboards/export-import/#import-dashboard) Grafana UI или выполнить [скрипт](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/grafana_dashboards/local_upload_dashboards.sh). Обратите внимание, что скрипт использует [базовую аутентификацию](https://grafana.com/docs/grafana/latest/http_api/create-api-tokens-for-org/#authentication) в Grafana. Для других случаев модифицируйте скрипт.