Мониторинг состояния сервера при помощи 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 вы можете быстро и эффективно мониторить и анализировать метрики приложений и инфраструктуры, что позволяет быстро выявлять проблемы и улучшать производительность системы.

Оцените статью