Установка и настройка Prometheus и Grafana

11 марта 2023
Сегодня мы поговорим с вами о развёртывании системы мониторинга Prometheus и подключение к ней системы визуализации Grafana.
Содержание

Prometheus (https://prometheus.io/) это open-source решение, состоящее из нескольких компонентов, самым главным из них является сервер, который хранит собранные метрики и alertmanager и который отвечает за отправку уведомлений. Для сбора данных необходимо настраивать экспортёры, специализирующиеся на разных сервисах и системах, например:

· Для мониторинга СУБД – MSSQL, MongoDB, PostgreSQL, Redis и пр.

· Для мониторинга железа – IBM, NVIDIA, Netgear, DELL и пр.

· Для мониторинга ITSM – Jira, BitBucket, Jenkins и пр.

· Для мониторинга систем сообщений – Apache Kafka, RabbitMQ, Mirth и пр.

· Для мониторинга хранилищ – Ceph, NetApp, HPE, GPFS и пр.

· Для мониторинга web – apache, nginx, squid и пр.

· Для мониторинга огромного количества систем, которые взаимодействуют с Prometheus – Kubernetes, Dovecot, Docker, Ansible и пр.

Более того, есть большое комьюнити специалистов, которые постоянно разрабатывают новые и новые экспортёры. Для удобства мониторинга, как правило, используют различные системы визуализации, т.к. сам Prometheus собирает данные в текстовом виде, который тяжело воспринимать. Наиболее часто используемым для визуализации решением является Grafana (https://grafana.com/).

Устанавливать Prometheus мы будем на машину под управлением Debian 11. Последнюю версию всегда берём с github Prometheus:

Wget https://github.com/prometheus/prometheus/releases/download/v2.41.0/prometheus-2.41.0.linux-amd64.tar.gz

Затем нужно распаковать архив:

Tar xvf Prometheus-2.41.0.linux-amd64.tar.gz


Затем скопируйте исполняемые файлы prometheus и promtool в папку /usr/local/bin: 

sudo cp prometheus-2.41.0.linux-amd64/prometheus /usr/local/bin
sudo cp prometheus-2.41.0.linux-amd64/promtool /usr/local/bin

Для конфигурационных файлов необходимо создать папку /etc/prometheus:

sudo mkdir /etc/prometheus

Затем скопируйте туда такие папки с конфигурационными файлами:

sudo cp -r prometheus-2.41.0.linux-amd64/consoles /etc/prometheus
sudo cp -r prometheus-2.41.0.linux-amd64/console_libraries /etc/Prometheus

Для запуска программы понадобится пользователь prometheus:

sudo useradd --no-create-home --shell /bin/false prometheus

Осталось только создать файл systemd службы для удобного запуска prometheus. Для этого выполните команду:

sudo systemctl edit --full --force 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

Нужно создать папку для логов:

Sudo mkdir /var/lib/prometheus
Sudo chown -R prometheus:prometheus /var/lib/Prometheus

Кроме того, нужно создать конфигурационный файл /etc/prometheus/prometheus.yml со следующим содержимым:

sudo nano /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']

После этого можно запустить Prometheus и проверить его работу. Для этого выполните:

sudo systemctl start prometheus

Затем для того, чтобы убедиться что всё запустилось, выполните:

sudo systemctl status Prometheus
x84xmi4br0ucuyfegmv62exgt83bznes.png

Если программа запущена, вы можете получить доступ к веб-интерфейсу в браузере. Откройте порт 9090 на сервере, куда вы устанавливали Prometheus


r90q6agmdb1ibpa4eux1h36yg9uvux3o.png

Далее мы займёмся установкой Grafana, установив перед этим несколько компонентов:

sudo apt install -y apt-transport-https
sudo apt install -y software-properties-common

Для установки Grafana придётся обойти geo-fancing, в этом нам может помочь расширение для Firefox BrowSec. Нужно зайти на официальную страницу Grafana и скачать там dpkg-пакет напрямую, через браузер, а потом уже установить пакет используя команду:

sudo dpkg -i grafana-enterprise_9.3.2_amd64.deb

Далее выполним команды для первого запуска:

sudo /bin/systemctl enable grafana-server
sudo systemctl start grafana-server

По умолчанию Grafana доступна на порту 3000. Логин и пароль при первом входе: admin и admin соответственно.

aupatphg657gf2cpokh05l1djh94wmd0.png

Далее нужно настроить подключение к Prometheus, откройте Configuration -> Data Sources и нажмите кнопку Add Data Source:

gfeg0wxugvq2d4lxudi5d793cu8ghs3e.png

В открывшемся окне выберите тип Data Source - Prometheus:

На шаге настройки подключения необходимо в поле URL ввести адрес сервера, на котором доступен Prometheus и его порт. Если Grafana находится на той же машине, что и Prometheus, можно использовать localhost, а порт по умолчанию 9090:

deit4kpn1xyhvjdm7h9e17794d36jak6.png

Доску для метрик, собираемых по умолчанию сервером Prometheus, можно взять https://grafana.com/grafana/dashboards/3662. На этой странице вам нужен только идентификатор 3362, который находится под надписью Get this dashboard:

Эта доска специально разработана для экспортера Prometheus и отображает с него данные. Для её добавления в интерфейсе Grafana откройте Dashboards -> Manage -> Import и введите идентификатор доски

c33tcgi41doikwwjsw24l753mf22ujqm.png

Затем нажмите кнопку Load и на следующей странице введите имя доски и выберите ранее созданный источник данных (Data source)

После нажатия на кнопку Import перед вами откроется доска с метриками

lugjyy0rfn45e34fbkmpw8pkqxl42fz3.png

Теперь у вас есть настроенная связка из Prometheus и Grafana. Далее необходимо настроить экспортёры для сбора данных со своих сервером и сервисов.

Для подробной информации об этом процессе и возможности настроить всё в живую приглашаем вас на курс PROMETHEUS+GRAFANA - МОНИТОРИНГ ИНФРАСТРУКТУРЫ И ПРИЛОЖЕНИЙ
Автор статьи
Иван Климарёв
Преподаватель:
УЦ АйТи Клауд по направлениям администрирование систем, DevOps, Менеджмент ИТ

Курсы к статье

Затрудняетесь
с выбором курса?

Оставьте заявку на консультацию

Отправляя заявку, вы соглашаетесь с условиями обработки персональных данных

Хотите преподавать в АйТи Клауд?

Если вы имеете компетенции и хотите работать тренером курсов в АйТи Клауд - оставьте ваши данные, мы свяжемся с вами!