Personal/linux/Prometheus, Grafana, node_e...

91 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# В данном личном гайде на гите я рассмотрю установку трёх сервисов (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 есть [небольшое руководство](https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/), рассматривающее создание собственной доски.
В своём-же случае я воспользуюсь уже готовой доской с оффициального сайта 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_ВАШЕГО_КОНТЕЙНЕРА`