Search  
Always will be ready notify the world about expectations as easy as possible: job change page
yesterday

Система визуализации и мониторинга. Grafana + Prometheus

Система визуализации и мониторинга. Grafana + Prometheus
Author:
Source:
Views:
75
Система визуализации и мониторинга. Grafana + Prometheus favorites 0

Немного расскажу про установку Grafana на windows и настройку базовых метрик системы.

Пару слов о самой Grafana и для чего она нужна.

Grafana – это платформа для мониторинга, анализа данных и визуализации собранных данных с открытым исходным кодом. По сути она используется для визуального представления собранных метрик для более комфортного слежения за состоянием системы.

В данной статье буду использовать:

  • Grafana
  • Prometheus
  • Windows_exporter
  • Blackbox_exporter

Для начала скачаем актуальный дистрибутив самой Grafana и установим его (Для скачивания, может потребоваться VPN).

Переходим по ссылке: https://grafana.com/grafana/download и выбираем необходимую версию для скачивания.

Download Grafana

Затем скачаем и установим Prometheus.

Prometheus по сути является сборщиком метрик. Установив на один пк, который будет выступать в качестве сервера для Grafana, достаточно будет только запускать сбор метрик с других машин (вносить соответствующий блок в файл конфигурации Prometheus), а Prometheus в свою очередь подготовит метрики уже для самой Grafana.

Prometheus: https://prometheus.io/download

Для установки потребуется NSSM - это сервисный помощник, который помогает установить служебные вспомогательные программы.

Ссылка NSSM: https://www.nssm.cc/download

Приступим к установке Prometheus.

Переходим в CMD и вводим следующие команды (запускаем CMD от админа):

  1. Переходим в директорию с пакетом NSSM:

    cd C:\GrafanaSetup\nssm-2.24\win64
     
  2. Выполняем установку сервиса Prometheus:

    nssm.exe install prometheus C:\GrafanaSetup\prometheus-2.43.0.windows-amd64\prometheus.exe

NSSM setup

На данном этапе служба Prometheus должны быть установлена, Далее установим службы для сбора метрик.

Установим Windows_exporter – сборщик метрик, который как раз собирает статистику с системы и составляет своего рода «логи».

Ссылка для скачивания Windows exporter: https://github.com/prometheus-community/windows_exporter/releases

Выбираем подходящую нам версию и устанавливаем

Windows exporter

После установки, так же проверяем в службах, что установка прошла успешно и служба запущена (название службы по умолчанию windows_exporter).

Теперь можно проверить сбор метрик по ссылке к порту службы: http://localhost:9182/metrics

Metrics

На данном этапе можем установить Blackbox exporter - используется для мониторинга статуса доступности URL-ов. Переходим по ссылка и скачиваем нужную нам версию Blackbox: https://prometheus.io/download/ и устанавливаем.

Blackbox exporter

Теперь приступим к настройке установленных сервисов.

Начинаем с Grafana:

Переходим в папку C:\Program Files\GrafanaLabs\grafana\conf и открываем файл defaults.ini при помощи текстового редактора и меняем значение в блоке smtp в поле enabled на true и сохраняем изменения. Запускаем службу Grafana, если она уже запущена, просто делаем перезапуск для вступления изменений в силу.

defaults.ini

Перейдя по ссылке: http://localhost:3000 увидим активный интерфейс Grafana. Для входа по умолчанию используется комбинация admin / admin, затем попопросит Вас изменить пароль и направит на домашнюю страницу управления Grafana.

Далее приступаем к настройке Prometheus: нам необходимо внести изменения в конфигурацию, включив метрики в конфиг. Для этого переходим в каталог prometheus») и открываем файл prometheus.yml и вносим следующие изменения:

Добавляем блок для подключения windows_exporter:

- job_name: "Любое комфортное имя"

      static_configs:

            #IP-адрес и порт, где собираются метрики window_exporter\

            - targets: ["localhost:9182”]

При добавлении нескольких машин, можно добавить блок lables, который изменит отображаемый IP-адрес на свое описание:

  static_configs:

      - targets: ["localhost:9182"]

        labels:

            instance: Server-1

      - targets: ["192.168.0.254:9182"]    

        labels:

            instance: Server-2

Сразу добавим блок для blackbox_exporter:

- job_name: 'blackbox'

      metrics_path: /probe

      params:

            module: [http_2xx]  # Look for a HTTP 200 response.

    static_configs:

      - targets:

            -https://youtube.com

            -https://google.com

    relabel_configs:

      - source_labels: [__address__]

            target_label: __param_target

      - source_labels: [__param_target]

            target_label: instance

      - target_label: __address__

            replacement: localhost:9115  # The blackbox exporter's real hostname:port

В блоке targets перечисляем необходимые URL-адреса.

Только обратите внимание, для того, что бы блок корректно заработал и не было ошибок при запуске службы, необходимо строго соблюдать табуляцию строк.
Добавив необходимые блоки можем запускать prometheus.

Затем убедитесь, что все службы запущены:

  1. Grafana
  2. Prometheus
  3. Windows_exporter
  4. Blackbox_exporter

и теперь проверяем статус сервисов по ссылке: http://localhost:9090/targets

Targets

В целом мы настроили базовые метрики, осталось включить отображение метрик в Grafana.

Переходим на главную страницу grafana ( по умолчанию: http://localhost:3000 ).

Подключаем источник данных Prometheus:

На главной странице, переходим в меню Data sources

Data sources

Выбираем наш Prometheus

Add data source

И указываем наш URL. В нашем случае, всё находится на одной локальной машине и можем прописывать через формат: http://localhost:port/

HTTP localhost

И нажимаем кнопку: Save & test

Data source is working

Теперь необходимо настроить панели мониторинга для метрик windows exporter. Для настройки переходим на главную страницу и добавляем панель:

Import dashboard

На момент написания статьи, нашёл два наиболее охватывающих Dashboard`а:

  1. 14510
  2. 14694

Можете использовать их или же настроить всё самостоятельно.

Для добавления Dashboard`а указываем в поле ID и нажимаем на кнопку Load.

Import dashboard

Затем нас направляет на панель настроек, где мы указываем источник данных Prometheus и можем изменить имя самой панели. Затем жмём кнопку Import.

И у нас уже готовая, настроенная панель мониторинга, которую уже можно добавлять необходимым функционалом. Не нужные графики можно удалить или расставить в нужном для себя порядке.

Dashboard

При добавлении новых пк для мониторинга, достаточно внести строки в конфигурационный файл Prometheus.yml и перезапустить службу Prometheus. Служба самостоятельно разберёт метрики и добавить новый пк к мониторингу на уже готовый dashboard, где уже не составит труда переключаться между пк.

Далее уже можно поиграть с конкретными метриками, и отображением конкретных служб с различных машин. К примеру: на главном экране нажимаем ADD » Visualization и попадаем в меню создания панели. В поле Metrics browser вносим выбранную метрику и указываем параметры, которые хотим получить (ну или отобразить). Сделаем на примере службы windows:

  1. Name - имя службы
  2. State - вид статуса, который относится к метрике windows_service_state
  3. Instance - с какой конкретной машины брать метрику.
windows_service_state{name="нужная служба", state="running", instance="Server-1"}

и в правом верхнем углу выбираем нужный вид панели, в моем случае это Stat:

Панель

В параметрах панели в меню Value mappings и меняем цифровые значения метрик на удобные для восприятия слова, к примеру: Ok/Bad Up/Down.

Value mappings

Сохраняем и получаем такую панель:

Wake up configuration

Ну и настроим метрику для получения статусов HTTP:

Используем метрику: probe_http_status_code и настроим Value mapping:

probe_http_status_code{instance="https://youtube.com"}

Value mappings

И в итоге получаем такую панель:

Status OK

Далее можно самостоятельно зайти в http://localhost:9090/targets выбрать нужные для своих задач метрики и настроить нужные под свои задачи.

Думаю, на этом можно закончить. Базовая настройка не так сложна, но когда ты сталкиваешься с этим в первый раз, могут возникнуть трудности, поэтому хотел поделиться пошаговой настройкой. Надеюсь, кому-то это поможет и сократить достаточно времени на поиске информации и первичной настройки.

Similar
24 марта 2024 г.
Автор: Владимир Фрадков
Содержание О чём статья Визуализация данных, что это? Контрастность Комплиментарные цвета Web Safe палитра Последовательность использования цветов Выделение цветов индикации Смягчение оттенка для элементов с заливкой Итог Всем привет, меня зовут Владимир Фрадков, я дизайнер в компании Bimeister и сегодня...
Jan 31, 2023
Author: Arkaprava Sinha
Today we will see, how to enable Logging directly to Loki via Serilog for a .NET Core Microservice and visualize the logs in Grafana.   Before we start, What is Loki? Loki is a horizontally scalable, highly available, multi-tenant log...
Feb 20, 2023
Author: Favour Daniel, Ankit Anand
Both Kibana and Grafana are data visualization tools providing users capabilities to explore, analyze and visualize data with dashboards. The difference between Kibana and Grafana lies in their genesis. Kibana was built on top of the Elasticsearch stack, famous for...
Send message
Type
Email
Your name
*Message