6.8 KiB
В данном личном гайде на гите я рассмотрю установку трёх сервисов (Prometheus, Grafana, node_exporter) и уведомлений в ТГ боте на сервере
В данном гайде все работы будут производиться на ОС Debian 13 и VPS и ресурсах = 1/2/30
Prometheus - мощная система сбора и хранения метрик
Для сбора метрик об оппаратном обеспечении используется и операционой системы серверов используется node_exporter
Grafana - инструмент для виртуализации. Она подключается к Prometheus и позволяет создавать интерактивные дашборды
Для начала работы подготовим среду и необходимое ПО. Развёртка будет происходить при помощи докера
apt update && apt upgrade -y
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
apt install git
Далее выполняем команду
git clone https://github.com/prometheus/prometheus.git
Это скопирует все необходимые файлы для развёртки "Прометея", после того, как процесс завершиться введите следующую команду
docker run --name prometheus -d -p ip_address_of_your_sever:9090:9090 prom/prometheus
После этого переходим в браузере http://ip_address_of_your_sever:9090 и оказываемся на главной странице "Прометея"
Затем мы идём по пути ./prometheus/documentation/examples/prometheus.yml (само собой, что через nano, ну или vim)
Оказавшись в конфигурационном файле мы вставляем туда следующий код не забыв поменять localhost, на реальный IP
# A scrape configuration containing exactly one endpoint to scrape from Node exporter running on a host:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'node'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9100']
После этого перезапустим контейнер docker restart ID_ВАШЕГО_КОНТЕЙНЕРА
Теперь приступим к установке Grafana
Качаем пакет Grafana с файлового зеркала Tencent (т.к. заблокирована установка с IP-адрессов РФ)
Плюс установим необходимые дополнительные пакеты и создадим нунжные зависимости
wget https://mirrors.cloud.tencent.com/grafana/apt/pool/main/g/grafana/grafana_12.0.3_amd64.deb
apt install adduser libfontconfig1 musl -y
dpkg -i grafana_12.0.3_amd64.deb
Так-же на всякий случай ручками запустим графану, добавим её в автозагрузку, и проверим её статус
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo systemctl status grafana-server
После этого Ваша Grafana должна быть доступна по http://ip_address_of_your_sever:3000
По-умолчанию пароль и логин admin + admin, но програма, после первой авторизации предложит нам их поменять
После входа в панель идём по пути
- Connections
- Data Sources
- Add Data source
После этого добавляем новое подключение, выбирая само-собой, Prometheus
Указываем его url и спускаемся в самый низ, нажимая save & test
Если всё прошло успешно, то идём на вкладку Dashboards
Создание доски
В Grafana можно использовать разнообразные доски для отображения метрик. На официальном сайте Grafana есть небольшое руководство, рассматривающее создание собственной доски.
В своём-же случае я воспользуюсь уже готовой доской с оффициального сайта Grafana, которая собирает достаточно стандартные данные системы мониторинга.
Чтобы автоматически добавить таблицу нужно:
- Открыть страницу dashboard
- Нажать кнопку new
- Из выпадающего списка выбрать New Dashboard
- Нажать кнопку import dashboard
- Ввести идентификатор доски, который указан на сайте. В моём случае 3662
- Нажать на кнопку Load
После этого нас перебросит на наш новый дашбоард, который можно конфигурить полностью по своему усмотрению
Настройка экспортера node_exporter
apt install prometheus-node-exporter
systemctl start prometheus-node-exporter
Проверим статус запущенной службы systemctl start prometheus-node-exporter
Так-же можно перейти на http://ip_address_of_your_sever:9090/metrics с целью прверить работоспособность службы
Подключем node_exporter к Prometheus
Прометю нужно явно указать откуда собирать метрики, поэтому идём по старому доброму пути ./prometheus/documentation/examples/prometheus.yml
И вставляем туда
- job_name: 'prometheus_node_exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100'] # указываем адрес сервера и порт, на котором запущена служба Node_exporter
Тут нужно быть очень аккуратными к форматированию, т.к. даже один лишний пробел или отступ будет приводить к ошибке
По классике перезапустим Docker контрейнер docker restart ID_ВАШЕГО_КОНТЕЙНЕРА