Как установить Grafana и Prometheus на Ubuntu 24.04

Grafana – это многоплатформенная платформа визуализации данных с открытым исходным кодом, разработанная Grafana Labs. Grafana представляет собой интерактивное веб-приложение для визуализации данных, включающее в себя графики, диаграммы и оповещения. С помощью Grafana вы можете запрашивать, визуализировать, настраивать оповещения и исследовать метрики, журналы и трассы TSDB. Это мощный инструмент, который превращает данные базы данных временных рядов (TSDB) в наглядные графики и визуализации.

В Grafana вы можете добавить данные из базы данных временных рядов через “Источник данных”. Grafana поддерживает множество источников данных, таких как Prometheus, InfluxDB, PostgreSQL, Loki, Jaeger, Graphite, Google Cloud Monitoring, AWS CloudWatch, Azure Monitor и многие другие.

В этом руководстве вы узнаете, как установить Grafana, Prometheus и node_exporter на серверы Ubuntu 24.04. Вы также установите Nginx в качестве обратного прокси для Grafana, интегрируете node_exporter и Prometheus, а затем добавите Prometheus в качестве источника данных на приборную панель Grafana.

Предварительные условия

Прежде чем приступить к работе, убедитесь, что у вас есть:

  • Два или три сервера Ubuntu 24.04.
  • Некорневой пользователь с правами администратора.

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

Grafana – это веб-приложение для визуализации данных. Чтобы установить Grafana, необходимо добавить репозиторий Grafana. В этом примере вы также установите Nginx в качестве обратного прокси для Grafana.

Установка зависимостей и добавление репозитория

В этом разделе вы установите зависимости, включая Nginx, а затем добавите репозиторий Grafana.

Сначала выполните приведенную ниже команду для установки зависимостей для Grafana. Введите Y , чтобы подтвердить установку.

sudo apt install gnupg2 apt-transport-https software-properties-common wget nginx

установить deps

Теперь добавьте ключ Grafana GPG и репозиторий с помощью следующей команды.

wget -q -O - https://packages.grafana.com/gpg.key > grafana.key cat grafana.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/grafana.gpg > /dev/null
echo ‘deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://packages.grafana.com/oss/deb stable main’ | sudo tee /etc/apt/sources.list.d/grafana.list

Затем обновите индекс пакетов с помощью следующей команды:

sudo apt update

добавить репо и обновить

Установка и настройка Grafana

После добавления репозитория Grafana вы установите пакет Grafana с помощью менеджера пакетов APT. Затем настройте Grafana на запуск по адресу localhost с доменом, например unixsru.local.

Чтобы установить Grafana, выполните следующие действия apt команду. Введите Y для продолжения установки.

sudo apt install grafana

установить grafana

После завершения установки перезагрузите менеджер systemd с помощью следующей команды:

sudo systemctl daemon-reload

Теперь вы можете запустить и включить grafana-server с помощью следующих действий systemctl командой. Затем проверьте, запущена ли служба.

sudo systemctl enable --now grafana-server
sudo systemctl status grafana-server

В следующем выводе вы можете увидеть grafana-server запущен и включен.

start enable verify grafana

С помощью grafana-server , вы настроите его на запуск на localhost.

Откройте конфигурацию Grafana /etc/grafana/grafana.ini с помощью nano редактор.

sudo nano /etc/grafana/grafana.ini

Измените конфигурацию по умолчанию следующим образом. Обязательно измените domain на имя вашего локального домена для Grafana. В этом примере вы запустите Grafana в домене unixsru.local.

[server]

# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost

# The http port  to use
http_port = 3000

# The public facing domain name used to access grafana from a browser
domain = unixsru.local

После завершения сохраните файл и выйдите из редактора.

Теперь выполните приведенную ниже команду для перезапуска grafana-server и примените изменения. После этого Grafana должна быть запущена на localhost с HTTP-портом по умолчанию 3000.

sudo systemctl restart grafana-server

Настройка Nginx в качестве обратного прокси-сервера

В этом разделе вы создадите новый блок сервера Nginx в качестве обратного прокси для grafana-server , который работает на localhost с портом 3000.

Создайте новую конфигурацию блока сервера Nginx /etc/nginx/sites-available/grafana.conf с nano редактор.

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

Добавьте следующую конфигурацию, чтобы настроить Nginx в качестве обратного прокси для Grafana. Обязательно измените server_name на имя домена Grafana.

# this is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

server {
    listen      80;
    server_name unixsru.local;

  root /usr/share/nginx/html;
  index index.html index.htm;


  access_log /var/log/nginx/grafana-access.log;
  error_log /var/log/nginx/grafana-error.log;

  location / {
    proxy_set_header Host $http_host;
    proxy_pass http://localhost:3000/;
  }

  # Proxy Grafana Live WebSocket connections.
  location /api/live {
    rewrite  ^/(.*)  /$1 break;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $http_host;
    proxy_pass http://localhost:3000/;
  }
}

Сохраните файл и выйдите из редактора.

Теперь выполните следующую команду, чтобы активировать grafana.conf блока сервера и проверки синтаксиса Nginx. Если синтаксис правильный, вы увидите вывод test is Successful - syntax is OK.

sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
sudo nginx -t

настройка nginx

Далее выполните команду systemctl команду ниже, чтобы перезапустить и проверить состояние веб-сервера Nginx.

sudo systemctl restart nginx
sudo systemctl status nginx

Вы увидите, что веб-сервер Nginx запущен:

проверить nginx

Далее перейдите на доменное имя Grafana, например http://unixsru.local/. Если установка прошла успешно, вам будет предложено перейти на страницу входа в Grafana.

Войдите в систему под пользователем по умолчанию admin и паролем admin.

логин grafana

Войдя в систему, введите новый пароль для вашей установки Grafana и нажмите кнопку Отправить для подтверждения.

изменить пароль

Вы увидите приборную панель Grafana, как показано ниже:

dashboard

Установка и настройка Prometheus

Prometheus – это платформа для мониторинга и оповещения. Запустив Grafana, вы установите Prometheus на сервер. 192.168.5.16.

Установка “Прометея

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

Сначала выполните приведенную ниже команду, чтобы добавить нового пользователя и группу prometheus.

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

Создайте новый каталог данных /var/lib/prometheus и директории конфигурации /etc/prometheus.

sudo mkdir -p /var/lib/prometheus
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

Загрузите последнюю версию Prometheus для Linux с помощью следующей команды.

curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest|grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -

После загрузки распакуйте двоичный файл Prometheus с помощью команды tar и зайдите в него.

tar xvf prometheus*.tar.gz
cd prometheus*/

Перемещение двоичного файла prometheus и promtool к /usr/local/bin каталог. Затем переместите каталоги конфигурации и файл prometheus.yml на . /etc/prometheus каталог.

sudo mv prometheus promtool /usr/local/bin/
sudo mv consoles console_libraries prometheus.yml /etc/prometheus/

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

for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/

установить прометий

Настройка “Прометея

После установки Prometheus вы обеспечите безопасность Prometheus с помощью команды basic_auth или базовой аутентификации.

Установите apache2-utils пакет, используя следующее apt командой.

sudo apt install apache2-utils -y

установить apache2-utils

Теперь запустите программу htpasswd команду ниже, чтобы сгенерировать пароль bcrypt для пользователя admin. Введите пароль и повторите, а затем скопируйте сгенерированный пароль.

htpasswd -nB admin

Далее выполните команду nano команду ниже, чтобы создать новый файл /etc/prometheus/web.yml.

sudo nano /etc/prometheus/web.yml

Добавьте следующую конфигурацию и не забудьте изменить пароль bcrypt.

# basic_auth
basic_auth_users:
  admin: $2y$05$s8U/BrE5JhSO31XKSbtj8u8cPECULs3emEhlDfCB2GW1UefQ9x00C

Сохраните и выйдите из файла после завершения.

Теперь откройте конфигурацию Prometheus по умолчанию /etc/prometheus/prometheus.yml с nano.

sudo nano /etc/prometheus/prometheus.yml

Изменить значение по умолчанию job_name для prometheus , как показано ниже, и обязательно измените basic_auth пользователя и пароль.

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    # add settings for certificate and authentication
    scheme: http
    basic_auth:
      username: "admin"
      password: "password"

    static_configs:
      # if using a valid certificate, set the same hostname in the certificate
      - targets: ["localhost:9090"]

Сохраните и выйдите из файла.

Наконец, выполните приведенную ниже команду, чтобы изменить права собственности на файлы prometheus.yml и web.yml пользователю prometheus.

sudo chown prometheus: /etc/prometheus/{prometheus.yml,web.yml}

Запуск Prometheus в качестве службы systemd

Создайте новый файл службы systemd /etc/systemd/system/prometheus.service со следующими параметрами nano редактор.

sudo nano /etc/systemd/system/prometheus.service

Добавьте в файл следующие строки. Таким образом, вы запустите Prometheus в фоновом режиме как службу systemd и безопасную веб-консоль через web.yml файл.

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
 --config.file=/etc/prometheus/prometheus.yml \
 --storage.tsdb.path=/var/lib/prometheus \
 --web.console.templates=/etc/prometheus/consoles \
 --web.console.libraries=/etc/prometheus/console_libraries \
 --web.listen-address=0.0.0.0:9090 \
 --web.config.file=/etc/prometheus/web.yml \

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

Сохраните файл и выйдите из редактора.

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

sudo systemctl daemon-reload

настроить prometheus

Затем запустите и включите prometheus службу, используя systemctl и убедитесь, что служба запущена.

sudo systemctl enable --now prometheus
sudo systemctl status prometheus

В следующем выводе вы можете увидеть prometheus служба запущена и включена.

проверить prometheus

Установка node_exporter

Теперь, когда Grafana и Prometheus запущены, вам нужно скачать и установить node_exporter. node_exporter позволяет соскребать данные для базового мониторинга системы.

Загрузите двоичный файл node_exporter с помощью команды curl командой ниже.

curl -s https://api.github.com/repos/prometheus/node_exporter/releases/latest| grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -

После загрузки распакуйте node_exporter и зайдите в него.

tar -xvf node_exporter*.tar.gz cd node_exporter*/

Теперь скопируйте файл node_exporter двоичный файл в /usr/local/bin каталог.

sudo cp node_exporter /usr/local/bin

После этого выполните следующую команду, чтобы создать новый служебный файл systemd /etc/systemd/system/node_exporter.service для node_exporter.

sudo tee /etc/systemd/system/node_exporter.service [Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=default.target
EOF

установить node exporter

Перезагрузите менеджер systemd, выполнив следующие действия:

sudo systemctl daemon-reload

Теперь вы можете запустить и включить службу node_exporter командой ниже. А затем проверьте состояние службы node_exporter.

sudo systemctl enable --now node_exporter sudo systemctl status node_exporter

Вы увидите, что служба node_exporter запущена и начнет собирать и заполнять данные. Служба node_exporter запущена на порту по умолчанию 9100.

запустить проверку node_exporter

Интеграция node_exporter в Prometheus

В этом разделе вы интегрируете и добавите node_exporter в Prometheus.

Откройте конфигурацию Prometheus по умолчанию /etc/prometheus/prometheus.yml.

sudo nano /etc/prometheus/prometheus.yml

Добавить новый job_name с именем node_exporter и укажите цель на target например 192.168.5.16:9100.

  - job_name: "node_exporter"

    static_configs:
      - targets: ["192.168.5.100:9100"]

Сохраните и выйдите из файла, когда закончите.

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

sudo systemctl restart prometheus

Затем получите доступ к серверу Prometheus http://192.168.5.16:9090 через веб-браузер, и вам будет предложено пройти базовую аутентификацию.

Введите свое имя пользователя и пароль и нажмите Войти.

Вход в систему prometheus

Войдя в панель управления Prometheus, введите node_memory_Active_bytes в запросе и нажмите кнопку Выполнить. Вы увидите график текущего активной памяти например, следующее:

приборная панель prometheus

Наконец, нажмите Статус > Цели и убедитесь, что оба prometheus и node_exporter цели активны и работают следующим образом:

список целей

Интеграция Prometheus с Grafana в качестве источника данных

Теперь, когда Prometheus готов, вы добавите и интегрируете Promethues в Grafana в качестве источника данных. Затем вы создадите новую систему дашбордов для мониторинга.

На панели инструментов Grafana нажмите Подключения > Источники данных > Добавить источник данных для добавления нового источника данных в Grafana.

добавить источник данных

Выберите Прометей в качестве источника данных.

prometheus

Введите URL-адрес Prometheus следующим образом http://192.168.5.16:9090/ и введите имя пользователя и пароль для вашего сервера Prometheus.

добавить сведения о prometheus

Прокрутите страницу в самый низ и нажмите Сохранить & проверить. В случае успеха вы увидите сообщение Successfully queried the Prometheus API.

сохранение и тестирование источника данных

После добавления Prometheus в качестве источника данных вы создадите новую панель Grafana для мониторинга системы.

Нажмите на меню Приборная панель > Создать приборную панель.

создать приборную панель

Выберите Импорт приборной панели для импорта приборной панели.

импортировать приборную панель

Посетите https://grafana.com/grafana/dashboards/ и найдите подходящую приборную панель. В этом примере вы загрузите приборную панель Grafana с идентификатором 15172.

Нажмите Загрузить чтобы импортировать приборную панель.

Загрузить идентификатор приборной панели

Теперь выберите Прометей бэкэнд и нажмите Импорт для подтверждения.

выберите prometheus в качестве бэкенда

Если все прошло успешно, должна быть создана панель Grafana. Ниже приведен скриншот панели Grafana с мониторингом Prometheus и node_exporter:

мониторинг дашборда

Заключение

Поздравляем! Вы завершили установку Grafana, Prometheus и node_exporter на серверы Ubuntu 24.04. Вы запустили Grafana с Nginx в качестве обратного прокси, обеспечили безопасность Prometheus с помощью парольной аутентификации, интегрировали node_exporter с Prometheus, добавили Prometheus в качестве источника данных в Grafana и импортировали панель Grafana.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *