Моніторинг стану сервера за допомогою Prometheus та Grafana на Ubuntu 22.04

В даний час моніторинг додатків та інфраструктури є невід’ємною частиною будь-якого проєкту, особливо в умовах стрімкого розвитку цифрових технологій. Незважаючи на те, що ринок моніторингових рішень досить насичений, Prometheus та Grafana досі залишаються одними з найпопулярніших інструментів для моніторингу та аналізу метрик додатків і інфраструктури.

В цій статті ми розглянемо, що таке Prometheus та Grafana, і як їх можна використовувати для моніторингу та аналізу метрик додатків і інфраструктури. Ми також розглянемо процес встановлення та налаштування Prometheus та Grafana на Ubuntu 22.04.

Також вам буде корисно ознайомитись зі статтею, в якій розповідається як встановити та налаштувати систему моніторингу Zabbix в Ubuntu 22.04

Що таке Prometheus?

Prometheus — це система моніторингу з відкритим вихідним кодом, яка використовує модель метрик з метаданими часових рядів для збору, агрегування та аналізу даних моніторингу. Prometheus була розроблена для вирішення проблем, пов’язаних з масштабуванням і управлінням метриками, які зазвичай виникають у великих розподілених системах.

Prometheus використовує мову запитів PromQL, яка дозволяє аналізувати та порівнювати часові ряди. Він також підтримує алертинг, який дозволяє сповіщати адміністраторів про проблеми в режимі реального часу.

Що таке Grafana?

Grafana — це платформа для візуалізації даних з відкритим вихідним кодом, яка дозволяє створювати та налаштовувати графіки, діаграми та панелі для моніторингу метрик. Вона інтегрується з різними джерелами даних, включаючи Prometheus, і дозволяє аналізувати та візуалізувати дані в режимі реального часу.

Як встановити та налаштувати Prometheus та Grafana на Ubuntu 22.04?

Встановлення Prometheus

Першим кроком є встановлення Prometheus на сервер. Для цього виконайте наступні дії:

  1. Оновіть список пакетів та встановіть менеджер завантажень wget:
    sudo apt-get update
    sudo apt-get install wget
  2. Завантажте останню версію Prometheus з офіційного репозиторію та розпакуйте архів:
    wget https://github.com/prometheus/prometheus/releases/download/v2.32.0/prometheus-2.32.0.linux-amd64.tar
    tar xvfz prometheus-2.32.0.linux-amd64.tar.gz
    
  3. Перейдіть у директорію з розпакованими файлами:
    cd prometheus-2.32.0.linux-amd64
    
  4. Створіть користувача prometheus:
    sudo useradd --no-create-home --shell /bin/false prometheus
    
  5. Скопіюйте виконувані файли в директорію /usr/local/bin/:
    sudo cp prometheus /usr/local/bin/
    sudo cp promtool /usr/local/bin/
    
  6. Скопіюйте файл конфігурації в директорію /etc/prometheus/:
    sudo mkdir /etc/prometheus
    sudo cp prometheus.yml /etc/prometheus/
    
  7. Призначте власника та права на файли і директорії:
    sudo chown prometheus:prometheus /usr/local/bin/prometheus
    sudo chown prometheus:prometheus /usr/local/bin/promtool
    sudo chown -R prometheus:prometheus /etc/prometheus/
    
  8. Створіть службу systemd для автоматичного запуску Prometheus:
    sudo nano /etc/systemd/system/prometheus.service

    Вставте в нього наступний текст:

    [Unit]
    Description=Prometheus
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    User=prometheus
    Group=prometheus
    Type=simple
    ExecStart=/usr/local/bin/prometheus \
      --config.file /etc/prometheus/prometheus.yml \
      --storage.tsdb.path /var/lib/prometheus/data \
      --web.console.templates=/etc/prometheus/consoles \
      --web.console.libraries=/etc/prometheus/console_libraries
    
    [Install]
    WantedBy=multi-user.target
    
  9. Збережіть і закрийте файл, потім перезавантажте systemd:
    sudo systemctl daemon-reload
    
  10. Запустіть Prometheus та додайте його до автозапуску:
    sudo systemctl start prometheus
    sudo systemctl enable prometheus

Встановлення Grafana

Тепер, коли у вас встановлено Prometheus, ви можете встановити Grafana. Для цього виконайте наступні дії:

  1. Додайте ключ та репозиторій Grafana в систему:
    sudo apt-get install -y apt-transport-https gnupg
    wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
    echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
    
  2. Оновіть список пакетів та встановіть Grafana:
    sudo apt-get update
    sudo apt-get install grafana
    
  3. Призначте власника та права на файли і директорії:
    sudo chown -R grafana:grafana /etc/grafana
    sudo chown -R grafana:grafana /var/lib/grafana
    sudo chown -R grafana:grafana /var/log/grafana
    
  4. Запустіть Grafana та додайте його до автозапуску:
    sudo systemctl start grafana-server
    sudo systemctl enable grafana-server
    
  5. Відкрийте порти у брандмауері, щоб дозволити доступ до інтерфейсу Grafana. Для цього виконайте наступні команди:
    sudo ufw allow 3000/tcp
    sudo ufw reload
    

Налаштування Prometheus та Grafana

Тепер, коли Prometheus та Grafana встановлено, ви можете розпочати налаштування для моніторингу та аналізу метрик додатків та інфраструктури. Налаштування складається з кількох кроків:

Налаштування Prometheus

Перейдіть у директорію /etc/prometheus/ та відредагуйте файл prometheus.yml:

sudo nano /etc/prometheus/prometheus.yml

Вставте наступний текст:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9100']

У цьому прикладі налаштування Prometheus визначено дві роботи (job): prometheus і node. Робота prometheus збирає метрики самого Prometheus, а робота node збирає метрики вузла (node) у вашій інфраструктурі.

Налаштування Grafana

Відкрийте веб-інтерфейс Grafana у браузері, перейшовши за адресою http://<IP-адреса сервера>:3000/. Увійдіть у систему за допомогою облікових даних за замовчуванням admin/admin.

Після входу в систему ви побачите сторінку «Налаштування джерел даних». Натисніть кнопку «Додати джерело даних».

Виберіть «Prometheus» як тип джерела даних та введіть URL-адресу http://localhost:9090/. Натисніть кнопку «Зберегти та перевірити».

На наступній сторінці ви побачите повідомлення «Джерело даних успішно додано».

Створення панелей моніторингу

Тепер ви можете створювати панелі моніторингу, використовуючи метрики, зібрані Prometheus. Для цього виконайте наступні дії:

  1. Натисніть кнопку «Створити» на панелі навігації зліва.
  2. Виберіть «Панель» як тип.
  3. Натисніть кнопку «Додати запит» та виберіть метрику, яку ви хочете відобразити на панелі.
  4. Налаштуйте запит та додаткові параметри
  5. Натисніть кнопку «Зберегти панель», щоб додати панель на сторінку моніторингу.

Приклади використання Prometheus та Grafana для моніторингу та аналізу метрик

Для прикладу, розглянемо моніторинг метрик системи. Prometheus та Grafana можуть використовуватись для моніторингу таких метрик, як CPU, пам’ять, дисковий простір тощо.

Моніторинг CPU

Для моніторингу використання CPU вам потрібно налаштувати роботу node у файлі prometheus.yml:

scrape_configs:
  - job_name: 'node'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9100']

Потім ви можете створити панель моніторингу у Grafana, використовуючи наступний запит PromQL:

100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Цей запит обчислює відсоток використання CPU на вузлі.

Моніторинг пам’яті

Для моніторингу використання пам’яті вам потрібно використати наступний запит PromQL:

sum(node_memory_MemTotal) - sum(node_memory_MemFree + node_memory_Buffers + node_memory_Cached)

Цей запит обчислює використання пам’яті на вузлі.

Моніторинг дискового простору

Для моніторингу дискового простору вам потрібно використати наступний запит PromQL:

node_filesystem_size{fstype="ext4"} - node_filesystem_free{fstype="ext4"}

Цей запит обчислює використання дискового простору на вузлі.

Висновок

В цій статті ми розглянули, як використовувати Prometheus та Grafana для моніторингу та аналізу метрик додатків та інфраструктури. Ми розпочали з опису Prometheus та Grafana та кроків з їх встановлення на Ubuntu 22.04. Потім ми розглянули налаштування Prometheus та Grafana для моніторингу та аналізу метрик. Ми також навели кілька прикладів використання Prometheus та Grafana для моніторингу метрик системи.

За допомогою Prometheus та Grafana ви можете швидко та ефективно моніторити та аналізувати метрики додатків та інфраструктури, що дозволяє оперативно виявляти проблеми та покращувати продуктивність системи.

Оцініть статтю