
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
Теперь добавьте ключ 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
После завершения установки перезагрузите менеджер systemd с помощью следующей команды:
sudo systemctl daemon-reload
Теперь вы можете запустить и включить grafana-server
с помощью следующих действий systemctl
командой. Затем проверьте, запущена ли служба.
sudo systemctl enable --now grafana-server sudo systemctl status grafana-server
В следующем выводе вы можете увидеть grafana-server
запущен и включен.
С помощью 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
Далее выполните команду systemctl
команду ниже, чтобы перезапустить и проверить состояние веб-сервера Nginx.
sudo systemctl restart nginx sudo systemctl status nginx
Вы увидите, что веб-сервер Nginx запущен:
Далее перейдите на доменное имя Grafana, например http://unixsru.local/. Если установка прошла успешно, вам будет предложено перейти на страницу входа в Grafana.
Войдите в систему под пользователем по умолчанию admin
и паролем admin
.
Войдя в систему, введите новый пароль для вашей установки Grafana и нажмите кнопку Отправить для подтверждения.
Вы увидите приборную панель Grafana, как показано ниже:
Установка и настройка 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
Теперь запустите программу 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
службу, используя systemctl
и убедитесь, что служба запущена.
sudo systemctl enable --now prometheus sudo systemctl status 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
Перезагрузите менеджер 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 в 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, введите node_memory_Active_bytes
в запросе и нажмите кнопку Выполнить. Вы увидите график текущего активной памяти например, следующее:
Наконец, нажмите Статус > Цели и убедитесь, что оба prometheus
и node_exporter
цели активны и работают следующим образом:
Интеграция Prometheus с Grafana в качестве источника данных
Теперь, когда Prometheus готов, вы добавите и интегрируете Promethues в Grafana в качестве источника данных. Затем вы создадите новую систему дашбордов для мониторинга.
На панели инструментов Grafana нажмите Подключения > Источники данных > Добавить источник данных для добавления нового источника данных в Grafana.
Выберите Прометей в качестве источника данных.
Введите URL-адрес Prometheus следующим образом http://192.168.5.16:9090/ и введите имя пользователя и пароль для вашего сервера Prometheus.
Прокрутите страницу в самый низ и нажмите Сохранить & проверить. В случае успеха вы увидите сообщение Successfully queried the Prometheus API
.
После добавления Prometheus в качестве источника данных вы создадите новую панель Grafana для мониторинга системы.
Нажмите на меню Приборная панель > Создать приборную панель.
Выберите Импорт приборной панели для импорта приборной панели.
Посетите https://grafana.com/grafana/dashboards/ и найдите подходящую приборную панель. В этом примере вы загрузите приборную панель Grafana с идентификатором 15172.
Нажмите Загрузить чтобы импортировать приборную панель.
Теперь выберите Прометей бэкэнд и нажмите Импорт для подтверждения.
Если все прошло успешно, должна быть создана панель Grafana. Ниже приведен скриншот панели Grafana с мониторингом Prometheus и node_exporter:
Заключение
Поздравляем! Вы завершили установку Grafana, Prometheus и node_exporter на серверы Ubuntu 24.04. Вы запустили Grafana с Nginx в качестве обратного прокси, обеспечили безопасность Prometheus с помощью парольной аутентификации, интегрировали node_exporter с Prometheus, добавили Prometheus в качестве источника данных в Grafana и импортировали панель Grafana.