Настройка grafana на windows

Уровень сложностиПростой

Время на прочтение5 мин

Количество просмотров42K

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

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

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

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

  • Grafana

  • Prometheus

  • Windows_exporter

  • Blackbox_exporter

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

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

Затем скачаем и установим 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

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

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

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

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

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

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

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

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

Начинаем с Grafana:

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

Перейдя по ссылке: 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

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

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

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

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

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

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

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

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

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

  1. 14510

  2. 14694

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

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

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

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

При добавлении новых пк для мониторинга, достаточно внести строки в конфигурационный файл 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.

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

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

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

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

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

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

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

Общие положения

Grafana используется для построения интерактивных отчетов по временным рядам журналов Оркестратора и Робота с визуализацией результата в виде различных диаграмм.

Grafana – отдельное приложение с веб-интерфейсом, работающее как служба Windows. По умолчанию служба слушает 3000 порт. Вовне этот порт не открывается, обращение к Grafana осуществляется через Front (nginx или IIS). Опционально Front может устанавливать для Grafana заголовок авторизации, чтобы не требовалось вводить логин и пароль.

Схема интеграции Grafana с Оркестратором:

alt

Интеграция с Grafana осуществляется следующим образом:

  1. Устанавливается приложение Grafana. Например, на том же сервере, где и WebApi.
  2. Средствами интерфейса Grafana настраивается источник данных для отчетов – БД ltoolslogs с журналами Оркестратора и Робота.
  3. Настраивается конфигурационный файл Grafana (для возможности настроить проксирование через Front, который является общим с Оркестратором).
  4. Создается ApiKey, который прописывается далее в конфигурационном файле nginx (не обязательный шаг).
  5. Настраивается проксирование с установкой заголовка авторизации в Front. Как было сказано выше, настройка заголовка авторизации необязательна *.
  6. Средствами интерфейса Grafana создаются или импортируются отчеты **, отчеты публикуются. При публикации отчетов Grafana формирует внешние ссылки на них. Возможно, некоторые отчеты потребуют создания view в БД.
  7. Ссылки на опубликованные отчеты добавляются в конфигурационный файл WebApi, чтобы они открывались через интерфейс Оркестратора. Больше никакой связи Оркестратор с Grafana не имеет.

* — В некоторых случаях нежелательна, так как ослабляет безопасность
** — Документация по созданию отчетов (дашбордов в терминах Grafana) находится на официальном сайте Grafana . Там же можно скачать дистрибутив с последней версией Grafana.

Установка Grafana

Далее предполагается что Grafana устанавливается на сервере Оркестратора.

Установочный файл Grafana может быть скачан с официального сайта Grafana .

  1. Запускаем установочный файл C:\Install\grafana-8.0.6.windows-amd64.msi. Принимаем лицензионное соглашение (ставим галочку), все настройки оставляем по умолчанию, дожидаемся окончания установки:

alt

alt

alt

alt

alt

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

alt

  1. Заходим в веб-интерфейс Grafana по адресу http://localhost:3000 со встроенной учетной записью admin/admin:

alt

  1. Меняем пароль по умолчанию на новый (Grafana сама предложит это сделать):

alt

  1. Откроется панель управления Grafana. Установка Grafana завершена:

alt

Настройка источника данных для отчетов

Переходим в раздел Configuration/Data Sources. Для только что установленной Grafana можно перейти из раздела General/Home.
Можно воспользоваться левым боковым меню «шестеренка»:

alt

Выбираем поставщика данных PostgreSQL или Microsoft SQL Server (в зависимости от вендора БД Оркестратора):

alt

Настраиваем подключение к БД ltoolslogs:

Для PostgreSQL:
* Name – оставляем по умолчанию PostgreSQL (можно выбрать произвольное);
* Host – IP-адрес и порт сервера БД (уточнить в конфигурационном файле WebApi);
* Database – ltoolslogs;
* User/Password – пользователь/пароль БД (уточнить в конфигурационном файле WebApi);
* TLS/SSL Mode – disable;
* Connection limits – все параметры этого блока оставляем по умолчанию;
* Version – 12;
* TimescaleDB* – false;
* Min time interval – оставляем по умолчанию 1m;

* — Grafana поддерживает TimescaleDB, что находит свое отражение при создании отчетов.
За подробной информацией необходимо обратиться к официальной документации на официальном сайте Grafana .

alt

Для Microsoft SQL Server:
* Name – оставляем по умолчанию Microsoft SQL Server (можно выбрать произвольное);
* Host – IP-адрес (или имя хоста) и порт сервера БД (уточнить в конфигурационном файле WebApi);
* Database – ltoolslogs;
* Authentication – SQL Server Authentication
* User/Password – пользователь/пароль БД (уточнить в конфигурационном файле WebApi);
* Encrypt – false;
* Connection limits – все параметры этого блока оставляем по умолчанию;
* Min time interval – оставляем по умолчанию 1m;

alt

Внизу формы настройки подключения нажимаем кнопку «Save & test»:

alt

Если все сделано верна и БД ltoolslogs доступна, отобразится сообщение об удачном подключении к БД:

alt

В разделе Configuration/Data Sources будет отображаться созданное подключение с наименованием PostgreSQL (Microsoft SQL Server):

alt

Настройка конфигурационного файла Grafana

В WordPad (или аналогичной программе, не Notepad!!!) открываем конфигурационный файл Grafana C:\Program Files\GrafanaLabs\grafana\conf\defaults.ini

alt

В секции [server] (можно найти писком по файлу, Ctrl + F) меняем дефолтные значения параметров на:
* root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/
* serve_from_sub_path = true

Сохраняем файл и перезапускаем службу Grafana:

alt

Создание Api Key (необязательно)

ApiKey создается в интерфейсе Grafana в разделе Configuration/Api keys (боковое левое меню «шестеренка»). Кликаем по кнопке «New API key»:

alt

Задаем параметры нового ApiKey:
* Key name – key1 (произвольное наименование на латинице);
* Role – оставляем по умолчанию Viewer (только просмотр);
* Time to life – 1000d. Время в днях, через которое ApiKey станет неактивным и авторизация посредством него работать перестанет. Выбирать следует большим.

Нажимаем кнопку «Add»:

alt

Сохраняем где-то отдельно полученный ApiKey, так как через интерфейс Grafana увидеть его больше будет невозможно:

alt

Закрываем модальное окно с новым ApiKey. Этот ApiKey под наименованием key1, которое ему дали ранее, будет отображаться в списке всех ApiKey:

alt

Настройка Front

nginx

Открываем файл C:\Primo\nginx-1.21.1\conf\nginx.conf и добавляем следующие правила:

После секции upstream app_server добавляем секцию:

upstream grafana {
        server localhost:3000;
}

alt

После правила перенаправления location/api/ добавляем правило:

location /grafana/ {
            proxy_set_header Authorization "Bearer {ApiKey}";            
            proxy_pass http://grafana;                        
}

ApiKey (без фигурных скобок) подставляем созданный в пункте выше.

Если не нужна автоматическая авторизация в Grafana, заголовок proxy_set_header Authorization можно не устанавливать (удалить всю строку).

alt

Из cmd перезапускаем nginx:

C:\Primo\nginx-1.21.1>nginx -s reload

IIS

Добавляем серверную переменную AUTHORIZATION:

alt

Открываем файл C:\Primo\UI\web.config и добавляем следующее правило после правила «Reverse Proxy to API»:

<rule name="Grafana" stopProcessing="false">
                <match url="^grafana(.*)" />
                <action type="Rewrite" url="http://localhost:3000/grafana{R:1}" />
                <serverVariables>
                      <set name="AUTHORIZATION" value="Bearer eyJrIjoickxTcUFDTWVvajlGNVVBT3pDUUxtQXBhMHFRbmVrOEEiLCJuIjoia2V5MSIsImlkIjoxfQ==" />
                </serverVariables>
 </rule>

alt

Создание или импорт отчетов

Создание отчетов – отдельная большая тема. Для этого требуется, как минимум:
* владение средствами Grafana;
* владение SQL, в частности, его диалектом для PostgreSQL или Microsoft SQL Server и
SQL-образным DSL Grafana;
* понимание структуры и семантики данных БД ltoolslogs.

Поэтому для примера рассмотрим импорт готового отчета в Grafana.

Вообще говоря, наличие view в БД для отчетов в Grafana не обязательно. Но, для этого примера потребуется создать view – v_AllWorked-postgres (или v_AllWorked-mssql).
Скрипт создания v_AllWorked-postgres.sql (v_AllWorked-mssql.sql) включен в поставку. Этот скрипт требуется выполнить в БД ltoolslogs.

Для импорта отчета переходим в раздел Dashboards/Manage и нажимаем кнопку «Import»:

alt

В открывшейся форме нажимаем кнопку «Upload JSON file»:

alt

Выбираем идуший в комплекте поставки пример отчета – файл
Роботы-1627543691525.json – и нажимаем кнопку «Import»:

alt

Если все выполнено верно, и файл отчета корректный, сразу откроется сам отчет:

alt

Далее публикуем его, чтобы получить внешнюю ссылку на этот отчет. Нажимаем на кнопку «Share dashboard or panel»:

alt

В открывшейся форме ставим Shorted URL = true и копируем адрес ссылки:

alt

Окончательная ссылка на отчет получается после ручной корректировки как

https://{IP Оркестратора}:44392/grafana/goto/zDhfKuZnz?orgId=1

Добавление в конфигурационный файл WebApi ссылок на опубликованные отчеты

Ссылки на опубликованные отчеты добавляются в конфигурационный файл C:\Primo\WebApi\appsettings.ProdWin.json в секцию Grafana:ReportItems:

alt

Задается Url отчета, полученный в п.6, и произвольное наименование отчета. После этого службу WebApi нужно перезапустить.

Проверить, что все настроено верно, можно через интерфейс Оркестратора в разделе Журнал/Отчеты:

alt

По клику по кнопке Robots («Robots» – наименование отчета из конфигурационного файла) откроется отчет в Grafana.

In this article, How to Install Grafana on Windows | we’ll guide you through the straightforward process of installing Grafana on a Windows system, unlocking its powerful data visualization capabilities.

Table of Contents

What is Grafana?

How to add Prometheus Data Source in Grafana 1

Grafana is an open source tool for performing data analytics, retrieving metrics that make sense of large amounts of data, and monitoring our apps using nice configurable dashboards.

Grafana integrates with a wide range of data sources, including Graphite, Prometheus, Influx DB, ElasticSearch, MySQL, PostgreSQL, and others. When connected to supported data sources, it provides web-based charts, graphs, and alerts.

Prerequisites

  • Windows EC2 instance running.
  • A Windows computer with special permission to make changes (like an admin).
  • A file to install Grafana that fits your computer (it might be 32-bit or 64-bit).

Step #1:Download Grafana on Windows Server

First, go to the Grafana website and get the right version for Windows. You can choose either the 32-bit or 64-bit one. Once you pick, download the file to your computer. We’ll be downloading the enterprise edition.

How to Install Grafana on Windows 1

Step#2:Install Grafana on Windows Server

Find the file you downloaded and open it. This will start the installation process. Just follow what the computer tells you to do. Click on the “Next”.

How to Install Grafana on Windows 2

Accept the terms in the license agreement by clicking the checkbox.

How to Install Grafana on Windows 3

Step#3:Choose Installation Location

While it’s installing, you’ll be asked where you want to put Grafana. Usually, the computer knows where to put it, but if you want to put it somewhere else, you can choose a different spot.

How to Install Grafana on Windows 4

Step#4:Select the components to Install

Next, you can pick what parts of Grafana you want to put on your computer. The default choices are usually fine, so you can just click “Next.”

Step#5:Install Grafana on Windows

Once you’ve chosen everything, click “Install” to start putting Grafana on your computer.

How to Install Grafana on Windows 5

Step#6: Complete the Installation

After it’s done, you’ll see a message that says Grafana is installed. You can choose to start it up right away. Just click “Finish” when you’re ready.

How to Install Grafana on Windows 6

Step#7:Access Grafana on Browser

Then, open your web browser and type in “server IP or localhost:3000 to get to Grafana.

http://server_ip:3000

When you open Grafana in your web browser, you’ll need to log in. The default username and password are both “admin.” It’s a good idea to change these to something else for safety.

How to Install Grafana on Windows 7

Change the default security credentials for enhanced security or you can just skip it.

How to Install Grafana on Windows 8

Now that Grafana is set up, you can start making charts and graphs with your data. You can configure data sources and create dashboards to visualize your data. Grafana supports various data sources, including databases, cloud services, and monitoring systems.

How to Install Grafana on Windows 9

Conclusion:

We’ve successfully installed Grafana on our Windows machine. Grafana’s intuitive interface and powerful visualization capabilities empower to create insightful dashboards for monitoring and analyzing data. Explore Grafana’s features and create visualizations that help to gain valuable insights from metrics and time-series data.

Related Articles:

Secure Grafana with Nginx, Reverse Proxy and Certbot

Reference:

Grafana Installation official page

In this guide we will se how to

  • A Brief Introduction
  • Download Grafana
  • Configure Grafana
  • Run Grafana (as a Service)
  • Access Grafana

A Brief Introduction

Grafana is an open-source platform for monitoring that allows to query, visualize and create alerts from data stored in lots of different sources.
Its main components are dashboards, which can be created from scratch or imported, there are lots of official and community-made dashboards ready to use, visit grafana dashboards and have a look at them.
Grafana can run on any platform, Windows, Linux, Docker and Mac.

Download Grafana

To download Grafana follow this link, you will have two options, download the installer or download the standalone binaries.
I will use the standalone binaries.

Once downloaded extract the archive into the desired folder, I will extract it in a folder called “grafana”.

Configure Grafana

It is important to put all the custom configuration in a separate file and not in the default one. The default configuration file “defaults.ini” can be found in the subfolder “conf”.
make a copy of this file and call it “custom.ini”.
The custom configuration will override the default one, Grafana will automatically read the file called “custom.ini”

Edit “custom.ini” and change the http port to 8080 or any other non reserved/occupied value.

# The http port to use
http_port = 8080

The default configuration of Grafana is really nice and you don’t need to change anything else, the log is already written to a rotated file and the basic authentication is already active.
Grafana supports other authentication methods and lots of other configurations (i.e SMTP configuration), you can find all in the docs.

Run Grafana (as a Service)

To run Grafana you just need to execute “grafana-server.exe”.
important: Grafana will create his folder relatively to the working directory, once started it will output the path to the created folders

.\grafana-server.exe

# example of folder path returned once Grafana is running
[32mINFO[0m[11-18|16:13:22] Path Home                                [32mlogger[0m=settings [32mpath[0m=C:\\Projects\\monitoring_sample\\grafana
[32mINFO[0m[11-18|16:13:22] Path Data                                [32mlogger[0m=settings [32mpath[0m=C:\\Projects\\monitoring_sample\\grafana\\data
[32mINFO[0m[11-18|16:13:22] Path Logs                                [32mlogger[0m=settings [32mpath[0m=C:\\Projects\\monitoring_sample\\grafana\\data\\log

To run it as a service use nssm and configure the service

.\nssm.exe install

You can now find “Grafana service” in windows services and run it.
If the startup directory is the subfolder “bin”, Grafana will create the following folders and files:

data
│   grafana.db
│
├───log
│       grafana.log
│
├───plugins
└───png

Access Grafana

To access Grafana head to the configured url, for me http://localhost:8080/login, if you are not sure about the port you can find it in the configuration file or in the log file.

The default user is “admin” with password “admin”, after logging in Grafana will ask you to change that password.

The End

Now Grafana is up and running, I hope you found this guide useful

Что такое Grafana

Grafana — инструмент с открытым исходным кодом для визуализации данных из различных систем сбора статистики. Его используют для представления в графическом виде временных рядов и текстовой информации.

Grafana поддерживает установку на самые популярные операционные системы: Linux (Debian, Ubuntu, CentOS, Fedora, OpenSuse, RedHat), Mac и Windows. Доступные базы данных, в которых можно хранить информацию о пользователях и дашбордах, — SQLite (используется по умолчанию), MySQL и PostgreSQL.

Подготовка серверов

В качестве демонстрации инструмента будем использовать облачные серверы на CentOS Stream и Ubuntu, на которые установим Grafana с базой данных SQLite.

1. В панели управления перейдем в раздел Облачная платформа и нажмем кнопку Создать сервер.

Создание сервера в панели управления Selectel.

Создание сервера в панели управления Selectel.

2. Регион и пул рекомендуем выбрать исходя из местоположения ваших пользователей и других обстоятельств. В рамках инструкции использовали регион Москва с пулом ru-7a. Конфигурацию сервера выбираем фиксированную с 1 vCPU и 1 ГБ RAM. В качестве ОС используем CentOS 8 64-bit. Для демонстрации будет достаточно жесткого диска на 10 ГБ (выбран по умолчанию).

Конфигурация сервера на CentOS8 Stream 64-bit в разделе Облачная платформа.

Конфигурация сервера на CentOS8 Stream 64-bit в разделе Облачная платформа.

3. Прокручиваем страницу вниз и нажимаем кнопку Создать.

Характеристики сервера и финальная стоимость.

4. Аналогичным образом создаем сервер с Ubuntu 20.04 LTS 64-bit. Здесь меняем только разделы Источник и Имя.

Конфигурация сервера на Ubuntu 20.04 LTS 64-bit в разделе Облачная платформа.

Конфигурация сервера на Ubuntu 20.04 LTS 64-bit в разделе Облачная платформа.

5. Готово. Оба сервера появятся в разделе Облачная платформа → Серверы.

Установка Grafana на Ubuntu

1. Скачиваем GPG-ключ из репозитория производителя и добавляем его в список надежных:

    wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

2. Добавляем в систему репозиторий Grafana:

    sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

3. Обновляем кэш APT и установим Grafana:

    sudo apt update
sudo apt install grafana

4. Включаем автозагрузку и запускаем демон Grafana:

    sudo systemctl enable grafana-server
sudo systemctl start grafana-server

5. Установка завершена. Grafana на Ubuntu 20.04 готова к использованию. Проверим текущий статус сервиса:

    sudo systemctl status grafana-server

6. Получаем вывод:

    grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-01-25 09:44:26 MSK; 10s ago

Установка Grafana на CentOS Stream

Установка Grafana на CentOS Stream выполняется из репозитория разработчиков. Скачать дистрибутив можно с официального сайта. 

1. Создаем новую конфигурацию репозитория:

    sudo nano /etc/yum.repos.d/grafana.repo

2. Вписываем в файл следующие переменные со значениями:

    [grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

3. Устанавливаем Grafana:

    sudo yum install grafana -y

4. Включаем автозагрузку и запускаем демон Grafana:

    sudo systemctl enable grafana-server
sudo systemctl start grafana-server

5. Установка завершена и Grafana на CentOS Stream готова к использованию. Проверяем статус сервиса:

    sudo systemctl status grafana-server

6. Получаем вывод, что Grafana работает корректно:

    grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-01-25 09:48:04 MSK; 5s ago

Настройка брандмауэра для доступа к Grafana

По умолчанию Grafana доступна на порте 3000. При использовании firewalld или iptables необходимо разрешить сетевой доступ к этому порту из внешнего мира. Опишем наборы команд для каждого случая.

Команды для firewalld. Они добавляют новое правило и перезагружают сервис для применения конфигурации:

    firewall-cmd --zone=public --add-port=3000/tcp --permanent
systemctl reload firewalld

Набор команд для iptables:

    nano /etc/sysconfig/iptables

Также вписываем строку в раздел OUTPUT ACCEPT, после чего перезапускаем iptables:

    -A INPUT -p tcp -m tcp --dport 3000 -m state --state NEW -j ACCEPT
sudo systemctl restart iptables

После выполнения описанных шагов сетевой экран будет разрешать подключения по порте 3000. В этом можно убедиться, открыв в браузере интерфейс Grafana. Логин и пароль по умолчанию — admin.

Стартовая страница Grafana при входе через браузер.

Стартовая страница Grafana при входе через браузер.

Если же войти в Grafana не удается или вы поменяли пароль и не можете его вспомнить, то через CLI можно сбросить административный пароль веб-интерфейса:

    grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" новый_пароль

Теперь можно входить с новым паролем.

Источники данных Grafana и установка плагинов

Мониторинг — одно из основных назначений использования Grafana. Сервис «из коробки» поддерживает различные источники данных. Среди наиболее популярных:

  • Prometheus,
  • Graphite,
  • OpenTSDB,
  • InfluxDB,
  • Elasticsearch.
Список источников данных в интерфейсе Grafana.

Список источников данных в интерфейсе Grafana.

Полный список можно посмотреть в официальной документации. Однако и он может быть расширен сторонними плагинами — например, Zabbix. 

1. Установим плагин в Grafana и перезагрузим сервис: 

    grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server

2. В Grafana переходим в Configuration → Plugins. Находим здесь плагин для Zabbix.

Раздел Configuration, вкладка Plugins в интерфейсе Grafana.

Раздел Configuration, вкладка Plugins в интерфейсе Grafana.

3. Переходим на страницу плагина и нажимаем на кнопку Enable.

Страница плагина Zabbix.

Страница плагина Zabbix.

4. После включения плагина в меню Data Sources появится новый источник данных. Нажимаем на кнопку Select и переходим к его настройке.

Zabbix в разделе Data Sources.

Zabbix в разделе Data Sources.

5. В настройках плагина указываем URL-адрес, имя пользователя и пароль для доступа по API.

Страница настроек плагина.

Страница настроек плагина.

6. Нажимаем на кнопку Save & Test и получаем подтверждение, что произвели настройку корректно.

Завершение настройки плагина.

6. Готово. Теперь данные из Zabbix можно использовать для создания визуализаций.

Создание и настройка панелей и дашбордов

Панели и дашборды — основные сущности представлений внутри Grafana. Каждый дашборд состоит из набора панелей. Для создания дашбордов переходим в представление Dashboards и нажимаем на кнопку New Dashboard.

Раздел Dashboards.

Раздел Dashboards.

На следующем шаге будет предложено добавить на дашборд новую панель.

Добавление новой панели в окне New dashboard.

Добавление новой панели в окне New dashboard.

В Grafana есть встроенные панели, которые можно использовать сразу. Разберемся в их типах.

  • Graph — панель с графиками. Можно комбинировать несколько метрик на одной панели.
  • Stat (ранее SingleStat) — одиночный график с возможностью отображения моментального значения метрики.
  • Gauge — панель в формате спидометра, в которой можно ограничить верхнее значение на шкале.
  • Bar Gauge — отображает несколько метрик на вертикальной гистограмме.
  • Table — представлена в виде таблицы, где можно отображать значения нескольких метрик.
  • Text —  отображает произвольного текста (подписи).
  • Heatmap — визуализирует тепловую карту значений метрик.
  • Alert list — демонстрирует события из внешних систем.
  • Dashboard list — комбинированная панель, которая отображает избранные дашборды.
  • News — показывает новостную ленты из внешних источников.
  • Zabbix problems — демонстрирует события из системы мониторинга Zabbix.
  • Logs — показывает строки лога, которые собираются одной из внешних систем.
Набор встроенных панелей в интерфейсе Grafana.

Набор встроенных панелей в интерфейсе Grafana.

Выберем в выпадающем меню источник данных Zabbix и укажем группу, хост, приложение и элемент данных. Если все выполнено верно — на графике появятся данные.

Данные на графике с отображением информации о группе, хосте, приложении и элементе данных.

Grafana поддерживает различные типы визуализаций, среди которых:

  • графические,
  • табличные,
  • гистограммы,
  • тепловые карты,
  • карты сетевого взаимодействия в Grafana.

При создании новой панели в разделе Visualization можно выбрать тип визуализации. Перейдем к созданию SingleStat (отображается как Stat) — панели с комбинацией численного и графического представлений. После ввода данных для Zabbix нажмем кнопку Apply.

Типы визуализаций в Grafana.

Типы визуализаций в Grafana.

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

Всплывающее меню настроек панели.

Окно настройки дашборда.

Окно настройки дашборда.

Импорт и экспорт дашбордов

В Grafana можно импортировать и экспортировать дашборды. Для импорта нужно перейти в представление Dashboards и нажать кнопку Import.

Раздел Dashnoards.

Здесь доступно две опции: загрузка произвольного JSON и импорт готовых дашбордов из официального сайта. Во втором случае нужно указывать ID дашборда.

Окно импорта дашборда.

Окно импорта дашборда.

Чтобы экспортировать любой дашборд, необходимо открыть окно Share с помощью иконки в верхней части экрана и нажать Save to file. Дашборд будет сохранен в формате JSON.

Окно экспорта дашборда.

Окно экспорта дашборда.

Обратный прокси-сервер и SSL

Для настройки SSL в Grafana нужно использовать обратный прокси-сервер. В рамках инструкции расскажем, как настроить его на базе Nginx. Для демонстрации мы зарегистрировали домен grafana.tk, для которого выпустили сертификат Let’s Encrypt.

Зарегистрированный домен grafana.tk в freenom.

Зарегистрированный домен grafana.tk в freenom.

После создания сервера мы настроили веб-сервер Nginx для работы через SSL. Теперь перенаправим трафик на порт 3000, по которому доступна Grafana. 

1. Открываем конфигурационный файл веб-сервера:

    sudo nano /etc/nginx/sites-available/grafana.tk

2. Здесь будем работать со следующим блоком конфигурации:

    ...
        location / {
                try_files $uri $uri/ =404;
        }
...

3. Заменяем его на другой, чтобы настроить переадресацию на локальный порт 3000.

    ...
        location / {
                try_files $uri $uri/ =404;
        }
...

4. Проверяем корректность конфигурации Nginx и перезапускаем его:

    sudo nginx -t
sudo systemctl reload nginx

5. Теперь тестовая Grafana доступна по URL. Проверим:

Доступ по URL из браузера.

Доступ по URL из браузера. 

Кроме настроек SSL, для повышения безопасности в Grafana можно отключить анонимный доступ и создание новых учетных записей.

Конфигурационный файл Grafana

Конфигурационный файл (по умолчанию /etc/grafana/grafana.ini) позволяет добиться тонкой настройки Grafana. Здесь хранятся параметры, которые можно менять в зависимости от задач. Рассмотрим основные блоки файла.

[paths]

В директории data Grafana хранит БД sqlite3 и другие данные. Для хранения логов сервис использует logs. Обе директории задаются в стартовом скрипте init.d.

[server]

http_addr — IP-адрес, на котором будет доступен веб-интерфейс Grafana. Если параметр не указан, то веб-версия будет доступна по всем сетевым интерфейсам сервера.

http_port — порт, на котором будет доступен веб-интерфейс Grafana. По умолчанию номер порта 3000. Если нужно использовать порт 80, можно настроить переадресацию в iptables:

    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

Для переадресации можно также использовать веб-сервер Nginx или Apache.

protocol — протокол, по которому будет доступна Grafana, — HTTP или HTTPS.

domain может использоваться только вместе с опцией root_url (см. ниже). Важно, если вы используете аутентификацию через GitHub или Google OAuth.

enforce_domain — переадресация на корректный домен, если заголовок хоста не соответствует домену. По умолчанию в значении false.

root_url — полный URL-адрес для доступа к Grafana через веб-браузер. Важно, если вы используете аутентификацию через GitHub или Google OAuth.

static_root_path — путь к директории, в которой находятся файлы HTML, JS и CSS.

cert_file — директория с файлом сертификата (если доступ к Grafana по  HTTPS).

cert_key — директория с файлом ключа (если доступ к Grafana осуществляется по протоколу HTTPS).

[database]

Grafana нужна база данных для хранения пользователей, дашбордов и других данных. По умолчанию используется sqlite3, которая включена в дистрибутив Grafana. Рассмотрим параметры блока database.

type — тип БД на выбор. Поддерживаются mysql, postgres и sqlite3.

path — параметр применим только к базе данных sqlite3. Путь к файлу данных.

host — параметр применим только к MySQL или Postgres. Включает IP-адрес или hostname и номер порта. Например, для MySQL запущенной на одном сервере с Grafana, host = 127.0.0.1:3306

name — имя базы данных Grafana.

user — имя пользователя базы данных (не применимо к sqlite3).

password — пароль пользователя базы данных (не применимо к sqlite3).

ssl_mode — применимо только к postgres. Доступны опции: disable, require или verify-full.

[security]

admin_user — имя привилегированного пользователя Grafana. По умолчанию admin.

admin_password — пароль привилегированного пользователя Grafana. По умолчанию admin.

login_remember_days — количество дней, в течении которых не требуется повторный ввод логина и пароля.

disable_gravatar — отключение пользовательской иконки. Для отключения нужно установить в значение true.

[users]

allow_sign_up — устанавливается в false для предотвращения создания новых учетных записей действующими пользователями.

allow_org_create — устанавливается в false для предотвращения создания новых организаций действующими пользователями. По умолчанию в значении true.

auto_assign_org — устанавливается в true для автоматического добавления новых пользователей в основную организацию (id 1). Когда установлено в false, созданные пользователи добавляются в новые организации, которые создаются автоматически.

auto_assign_org_role — роль новых пользователей будет привязана к основной организации.

[auth.anonymous]

enabled — для включения анонимного доступа нужно установить в значение true. По умолчанию false.

org_name — устанавливает имя организации, которое будет использоваться для анонимных пользователей.

org_role — указывает роль для анонимных пользователей. По умолчанию — Viewer, но для выбора доступны Editor и Admin.

[auth.basic]

enabled — когда установлено значение true (по умолчанию), HTTP API будет принимать соединения с флагом basic authentication.

[auth.ldap]

enabled — устанавливается в true для включения интеграции с LDAP. 

config_file — путь к конфигурационному файлу LDAP. По умолчанию /etc/grafana/ldap.toml.

[auth.proxy]

Функция разрешает аутентифицироваться в обратном прокси.

enabled — параметр включения. По умолчанию установлен в false.

header_name — по умолчанию установлено в X-WEBAUTH-USER.

header_property — по умолчанию имя пользователя, но также может принимать значение адреса электронной почты.

auto_sign_up — устанавливается в значение true для включения автоматического входа пользователей, которые отсутствуют в Grafana DB. По умолчанию установлено значение true.

[session]

provider — валидные значения: memory, file, mysql, postgres. По умолчанию установлено значение file.

provider_config — опция должна быть сконфигурирована отдельно в зависимости от того, какой тип провайдера сессии установлен.

  • file — путь к файлу с сессиям. Например, data/sessions.
  • mysql — go-sql-driver/mysql dsn config string. Например, user:password@tcp(127.0.0.1:3306)/database_name
  • postgres — ex: user=a password=b host=localhost port=5432 dbname=c sslmode=disable

cookie_name — имя сессионного cookie в Grafana.

cookie_secure — устанавливается в true, если Grafana находится только за HTTPS-прокси. По умолчанию установлено в значение false.

session_life_time параметр длины сессии в секундах. По умолчанию — 86 400 секунд (24 часа).

[analytics]

reporting_enabled — когда опция включена, Grafana будет отправлять анонимную статистику на stats.grafana.org. Никакие IP-адреса не записываются. Данные отправляются каждые 24 часа. По умолчанию установлено в true.

google_analytics_ua_id — если вы хотите отслеживать активности в Grafana при помощи Google analytics, укажите ваш Universal Analytics ID. По умолчанию функция отключена.

[dashboards.json]

Если у вас есть система, которая автоматически строит дашборды из JSON-файлов, вы можете включить эту опцию. Так новые дашборды будут доступны через поиск в Grafana.

enabled — значение true или false. По умолчанию выключено.
path — полный путь к директории, которая содержит JSON-файлы с дашбордами.

Заключение

Мы рассмотрели подходы к установке, настройке и работе с Grafana. Этот популярный инструмент имеет большое сообщество разработчиков, которые поддерживают и развивают проект, создавая новые плагины и дашборды. У Grafana регулярно выходят обновления и улучшения, поэтому можно без опасений использовать этот инструмент в продакшн-средах.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Служба времени windows не запускается автоматически
  • Установка windows улан удэ
  • Администратор гость windows 10 как снять
  • Windows server 2021 rtm serverstandard retail
  • Ошибка активации windows server 2008 0x8007007b