Skip to main content

Установка мониторинга Grafana, Prometheus и Node Exporter.

· 4 min read
Vladimir Gordeev

Установка и настройка сервера мониторинга

Мониторинг серверов: Grafana, Prometheus и Node Exporter.

Grafana - это платформа для визуализации и мониторинга данных. Она предоставляет возможность создавать гибкие и интерактивные дэшборды, интегрировать различные источники данных и отслеживать метрики производительности в реальном времени.

Prometheus спроектирована для сбора, агрегации и визуализации разнообразных данных о состоянии приложений и инфраструктуры. Она использует модель HTTP/Metrics для сбора данных и обладает встроенной поддержкой для мониторинга контейнеризованных приложений.

Node Exporter - это инструмент, разработанный для экспорта системных метрик с узлов (например, серверов) для мониторинга. Он предоставляет доступ к различным метрикам, таким как использование ЦП, загрузка системы, использование памяти, сетевой трафик и другие характеристики производительности, что позволяет отслеживать состояние и работу узлов в реальном времени.

Для начала подготовим нашу директорию, куда будем скачивать все архивы:

mkdir elk && cd elk

Node Exporter

Первым делом устанавливаем Node Exporter. Скачайте архив по следующей ссылке: Node Exporter wget

Выполните следующие команды для скачивания и разархивирования:

wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz

При помощи команды tar -xvf архив разархивируется в текущую директорию, а затем удален архив.

tar -xvf node_exporter-1.7.0.linux-amd64.tar.gz && rm node_exporter-1.7.0.linux-amd64.tar.gz

Переходим в директорию node_exporter-1.7.0.linux-amd64:

cd node_exporter-1.7.0.linux-amd64

Пробуем запустить Node Exporter:

./node_exporter
note

Если все выполнено правильно, то при доступе к ip_address:9100 в браузере вы должны увидеть страницу с версией и метриками.

Теперь мы копируем наш Node Exporter в /usr/local/bin:

sudo cp node_exporter /usr/local/bin

Далее необходимо создать systemd службу для работы Node Exporter в фоновом режиме и чтобы она автоматически включалась после перезапуска сервера.

Создайте нового пользователя с ограниченными привилегиями для безопасности выполнением следующей команды:

sudo useradd --no-create-home --shell /usr/sbin/nologin node_exporter

Проверьте, что пользователь был создан:

id node_exporter

Должен быть выведен идентификатор пользователя (uid).

Задайте владельца /usr/local/bin/node_exporter для нового пользователя:

sudo chown -R node_exporter:node_exporter /usr/local/bin/node_exporter

Теперь создайте службу systemd для Node Exporter:

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

Вставьте следующий код в открытый файл:

[Unit]
Description=NodeExporter

[Service]
TimeoutStartSec=0
User=node_exporter
ExecStart=/usr/local/bin/node_exporter --web.listen-address=:9100

[Install]
WantedBy=multi-user.target

Перезагрузите демон systemd и запустите созданную службу node_exporter.service:

sudo systemctl daemon-reload
sudo systemctl start node_exporter.service

Проверьте статус службы и удостоверьтесь, что она запустилась без ошибок:

sudo systemctl status node_exporter.service

Вывод без ошибок должен иметь такой вид:

Теперь Node Exporter будет запускаться автоматически при перезагрузке сервера. Чтобы добавить его в автозагрузку, выполните следующую команду:

sudo systemctl enable node_exporter.service

Теперь у вас полностью готовый Node Exporter, развернутый на вашем сервере. Вы можете получить доступ к метрикам по адресу :9100/metrics.





Prometheus

Далее приступаем к установке Prometheus.

note

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

Переходим в официальный GitHub-репозиторий Prometheus: Prometheus, читаем документацию и приступаем к скачиванию и установке.

Прямая ссылка wget: Prometheus wget

После скачивания вытаскиваем из архива

tar xvfz prometheus-*.tar.gz
cd prometheus-*

Переносим нашу директорию в /usr/local/bin

sudo mv prometheus-2.48.0.linux-amd64/ /usr/local/bin/prometheus

Так же создаем отдельно юзера для Prometheus

sudo useradd -M -U prometheus

Назначаем владельца директории:

sudo chown prometheus:prometheus -R /usr/local/bin/prometheus

Нужно настроить Prometheus на сбор метрик из двух сервисов, себя и node_exporter В директории есть файл prometheus.yml в него мы добавляем наши строчки:

note

Замените IP на ваш.

    static_configs:
- targets: ['192.168.0.36:9090', 192.168.0.36:9100']

Создаем systemd сервис в /etc/systemd/system/prometheus.service для автозапуска.

[Unit]
Description=Prometheus Service
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart=/usr/local/bin/prometheus/prometheus \
--config.file=/usr/local/bin/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/bin/prometheus/data \
--storage.tsdb.retention.time=30d

[Install]
WantedBy=multi-user.target
danger

Не забываем сделать релоад systemd.

sudo systemctl daemon-reload
sudo systemctl start prometheus.service

Добавляем в автозагрузку:

sudo systemctl enable prometheus.service

Ребутаем сервер

sudo reboot

После ребута проверяем все ли правильно запустилось

sudo systemctl status node_exporter.service
sudo systemctl status prometheus.service

Если все запустилось без ошибок, то в браузере переходим по нашему ip:port http://192.168.0.36:9090 и наблюдаем наш рабочий Prometheus

Grafana

Ну вот наконец мы дошли с Вами и до Grafana. Работа Grafana заключается в том, чтобы подключиться к Prometheus и визуализировать собранные метрики.

Официальный репозиторий Grafana: Ссылка В этой статье я использовал версию OSS 10.2.2

Скачиваем .deb пакет и распакововаем его, но перед этим установим зависимости которые требуются для Grafana:

sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/oss/release/grafana_10.2.2_amd64.deb
sudo dpkg -i grafana_10.2.2_amd64.deb

После установки пакета делаем sudo systemctl daemon-reload и sudo systemctl enable grafana-server.service и проверим статус sudo systemctl status grafana-server.service Если все получилось, то вывод будет таким:

tip

Теперь все готово к настройке и работе. Настройку и объяснения к дашборду я объясню в следующей статье.

Переходим по нашему айпи и порту 3000: 192.168.0.36:3000

tip

Заходим в веб-панель по стандартному логину паролю admin:admin