Как установить и настроить Prometheus на Linux сервере

2 года назад·1 мин. на чтение

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

В этой статье установим и настроим Prometheus. Это первый шаг настройки сбора и отображения метрик. Метрики будем собирать на сервере Ubuntu, а Grafana, для экономии ресурсов на сервере, установим на локальном компьютере. Весь процесс можно разделить на три части:
  1. Установка Prometheus (рассмотрим в этой статье)
  2. Установка Node exporter
  3. Установка Grafana
Prometheus получает метрики из разных сервисов и собирает их в одном месте. В нашем случае Prometheus будет собирать данные из экземпляра Node Exporter. Node exporter собирает метрики операционной системы и через HTTP предоставляет к ним доступ. Grafana отображает данные, полученные из Prometheus. Эти данные можно отобразить в виде диаграмм и графиков, объединив в дашборды.

Установка Prometheus

Для установки Prometheus выясним свежую версию prometheus на github и скопируем адрес ссылки на выбранную версию. В нашем случае это https://github.com/prometheus/prometheus/releases/download/v2.40.2/prometheus-2.40.2.linux-amd64.tar.gz. Скачать архив, распаковать и переименовать папку.
wget https://github.com/prometheus/prometheus/releases/download/v2.40.2/prometheus-2.40.2.linux-amd64.tar.gz
tar -xvf prometheus-2.40.2.linux-amd64.tar.gz
mv prometheus-2.40.2.linux-amd64 prometheus-files
Создать пользователя prometheus, необходимые папки, и сделать пользователя prometheus владельцем этих папок.
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
Скопировать бинарные файлы prometheus и promtool из prometheus-files в /usr/local/bin и изменить владельца на пользователя prometheus.
sudo cp prometheus-files/prometheus /usr/local/bin/
sudo cp prometheus-files/promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
Переместить папки consoles и console_libraries из prometheus-files в /etc/prometheus и изменить владельца на пользователя prometheus.
sudo cp -r prometheus-files/consoles /etc/prometheus
sudo cp -r prometheus-files/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

Конфигурация Prometheus

Создать файл prometheus.yml.
sudo vi /etc/prometheus/prometheus.yml
Вставить конфиг в файл prometheus.yml. Порт 9090.
global:
  scrape_interval: 10s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']
Изменить владельца на пользователя prometheus.
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

Запуск службы Prometheus

Создать файл prometheus.service для службы prometheus.
sudo vi /etc/systemd/system/prometheus.service
Добавить в файл 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/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target
Перезапустить службу systemd для регистрации службы prometheus и запустить службу prometheus.
sudo systemctl daemon-reload
sudo systemctl start prometheus
Проверить статус службы prometheus.
sudo systemctl status prometheus
Статус должен быть active (running). Статус службы prometheus active (running) Теперь интерфейс Prometheus должен быть доступен через порт 9090.
http://localhost:9090/graph
Интерфейс Prometheus На следующем шаге установим Node Exporter.

Мониторинг Linux сервера с Prometheus Node Exporter

2 года назад·2 мин. на чтение

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

В этой статье установим и настроим Node exporter. Это второй шаг настройки сбора и отображения метрик. Метрики будем собирать на сервере Ubuntu, а Grafana, для экономии ресурсов на сервере, установим на локальном компьютере. Весь процесс можно разделить на три части:
  1. Установка Prometheus
  2. Установка Node exporter (рассмотрим в этой статье)
  3. Установка Grafana
Prometheus получает метрики из разных сервисов и собирает их в одном месте. В нашем случае Prometheus будет собирать данные из экземпляра Node Exporter. Node exporter собирает метрики операционной системы и через HTTP предоставляет к ним доступ. Grafana отображает данные, полученные из Prometheus. Эти данные можно отобразить в виде диаграмм и графиков, объединив в дашборды.

Установка Node Exporter

Для установки Node Exporter выясним свежую версию Node Exporter на github и скопируем адрес ссылки на выбранную версию. В нашем случае это https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-386.tar.gz. Скачать архив, распаковать и переименовать папку.
wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-386.tar.gz
tar -xvf node_exporter-1.4.0.linux-386.tar.gz
Переместить бинарные файлы Node Exporter в /usr/local/bin.
sudo mv node_exporter-1.4.0.linux-386/node_exporter /usr/local/bin/

Запуск службы Node Exporter

Создать пользователя node_exporter для запуска службы Node Exporter.
sudo useradd -rs /bin/false node_exporter
Создать файл node_exporter.service для службы node_exporter.
sudo vi /etc/systemd/system/node_exporter.service
Добавить в файл node_exporter.service следующее содержимое.
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target    
Перезапустить службу systemd для регистрации службы node_exporter и запустить службу node_exporter.
sudo systemctl daemon-reload
sudo systemctl start node_exporter
Проверить статус службы node_exporter.
sudo systemctl status node_exporter
Запустить службу при запуске системы.
sudo systemctl enable node_exporter
Теперь Node exporter будет экспортировать метрики по адресу
http://localhost:9100/metrics
Теперь нужно отредактировать файл /etc/prometheus/prometheus.yml, добавив новый job_name в scrape_configs с этим адресом.
- job_name: 'node_exporter_metrics'
  scrape_interval: 10s
  static_configs:
    - targets: ['localhost:9100']
Перезапустить службу prometheus для того, чтобы изменения вступили в силу.
sudo systemctl restart prometheus
Теперь, если перейти по адресу http://localhost:9090/targets, то можно увидеть следующий статус. Интрерфейс Prometheus На следующем шаге установим Grafana.