Начало работы с Grafana и Prometheus
Prometheus — система мониторинга с открытым исходным кодом, для которой Grafana предоставляет поддержку из коробки. В этой теме описываются шаги по созданию серии дашбордов в Grafana для отображения системных метрик сервера, отслеживаемого Prometheus.
Tip
Ознакомьтесь с нашими Learning Journeys по Prometheus.
- Подключение к источнику данных Prometheus в Grafana Cloud, чтобы визуализировать метрики прямо там, где они хранятся.
- Отправка метрик в Grafana Cloud с помощью Prometheus remote write, чтобы изучить Grafana Cloud без существенных изменений в существующей конфигурации.
Grafana и Prometheus:
- Скачайте Prometheus и Node exporter
- Установите Prometheus Node exporter
- Установите и настройте Prometheus
- Настройте Prometheus для Grafana
- Проверьте метрики Prometheus в представлении Explore в Grafana
- Начните создавать дашборды
Скачайте Prometheus и Node exporter
Скачайте следующие компоненты:
Как и Grafana, Prometheus можно установить во многих разных операционных системах. Список стабильных версий компонентов Prometheus см. на странице загрузки Prometheus.
Установите Prometheus Node exporter
Установите Node exporter на всех хостах, которые вы хотите отслеживать. В этом руководстве показано, как установить его локально.
Prometheus Node exporter — широко используемый инструмент, предоставляющий системные метрики. Инструкции по установке Node exporter см. в разделе Installing and running the Node exporter документации Prometheus.
Когда вы запустите Node exporter локально, перейдите по адресу http://localhost:9100/metrics, чтобы проверить, что он экспортирует метрики.
Note
Инструкции в упомянутой теме предназначены для пользователей Linux. В зависимости от вашей операционной системы инструкции, возможно, придётся немного изменить. Например, если вы работаете в Windows, используйте вместо этого windows_exporter.
Установите и настройте Prometheus
-
После загрузки Prometheus распакуйте его и перейдите в каталог.
tar xvfz prometheus-*.tar.gz cd prometheus-* -
Найдите файл
prometheus.ymlв каталоге. -
Измените файл конфигурации Prometheus, чтобы отслеживать хосты, на которых вы установили Node exporter.
По умолчанию Prometheus ищет файл prometheus.yml в текущем рабочем каталоге. Это поведение можно изменить с помощью флага командной строки --config.file. Например, некоторые установщики Prometheus используют его, чтобы задать файл конфигурации в /etc/prometheus/prometheus.yml.
В следующем примере показан код, который следует добавить. Обратите внимание, что цели статических конфигураций установлены в ['localhost:9100'], чтобы указать на node-exporter при локальном запуске.
# 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']
-
Запустите службу Prometheus:
./prometheus --config.file=./prometheus.yml -
Убедитесь, что Prometheus работает, перейдя по адресу
http://localhost:9090.
Видно, что метрики Node exporter были доставлены в Prometheus. Далее метрики будут отправлены в Grafana.
Настройте Prometheus для Grafana
При локальном запуске Prometheus есть два способа настроить Prometheus для Grafana. Вы можете использовать размещённый экземпляр Grafana в Grafana Cloud или запустить Grafana локально.
В этом руководстве описывается настройка Prometheus в размещённом экземпляре Grafana в Grafana Cloud.
- Зарегистрируйтесь на https://grafana.com/. Grafana даёт вам экземпляр Prometheus из коробки.

- Поскольку вы запускаете собственный экземпляр Prometheus локально, необходимо выполнить
remote_writeваших метрик в экземпляр Prometheus Grafana.com. Grafana предоставляет код для добавления в ваш файл конфигурацииprometheus.yml. Он включает конечную точку remote write, ваше имя пользователя и пароль.
Добавьте следующий код в свой файл prometheus.yml, чтобы начать отправлять метрики в ваш размещённый экземпляр Grafana.
remote_write:
- url: <https://your-remote-write-endpoint>
basic_auth:
username: <your user name>
password: <Your Grafana.com API Key>
Note
Чтобы настроить ваш экземпляр Prometheus для работы с Grafana локально вместо Grafana Cloud, установите Grafana здесь и выполните шаги по настройке, перечисленные здесь.
Устранение неполадок
Ниже приведены некоторые шаги по устранению неполадок, которые можно попробовать, если Prometheus не запущен или работает не так, как ожидается. Предлагаемые шаги выбраны на основе Learning Journeys, которые мы предлагаем для Prometheus. Если хотите изучить больше, ознакомьтесь с Prometheus Learning Journey, если хотите визуализировать данные в Grafana Cloud без отправки или хранения данных в Grafana Cloud, например для локального хранения. Либо, если у вас уже есть настроенный Prometheus и вы хотите изучить Grafana Cloud без существенных изменений, посетите Prometheus remote write learning journey.
1. Проверка, работает ли Prometheus
Если веб-интерфейс Prometheus недоступен (например, ошибка «Connection refused» в браузере) или запросы Prometheus завершаются сбоем (например, ошибки в Grafana вида «Data source unavailable» или «No data points»), хорошее место для начала — убедиться, что процесс и служба Prometheus запущены.
Сделать это можно, проверив системный процесс или статус службы:
Linux
sudo systemctl status prometheus
- Показывает, запущен ли процесс и активна ли служба.
MacOS
pgrep prometheus
- Возвращает идентификатор процесса (PID), если Prometheus запущен.
Windows (PowerShell)
Get-Process -Name prometheus -ErrorAction SilentlyContinue
- Проверяет, запущен ли процесс Prometheus по имени.
2. Если Prometheus не запущен
Начните с проверки распространённых причин:
Проверьте конфликты портов.
Prometheus по умолчанию работает на порту 9090. Если этот порт занят другим процессом, Prometheus может не запуститься. Проверить конфликты портов можно так:
Linux и MacOS
lsof -i :9090
Windows (PowerShell)
netstat -ano | findstr :9090
- Показывает, использует ли другой процесс порт 9090.
Проверьте размещение бинарных файлов Prometheus: убедитесь, что бинарные файлы Prometheus (prometheus и promtool) установлены правильно.
Linux и MacOS
ls /usr/local/bin/prometheus /usr/local/bin/promtool
- Если файлы отсутствуют, переместите их в
/usr/local/binили в каталог из системной переменной PATH.
Проверьте, находится ли Prometheus в PATH.
which prometheus
which promtool
- Если вывод отсутствует, бинарные файлы не находятся в системной переменной PATH.
Убедитесь, что файлы конфигурации и данных на месте.
Linux и MacOs
ls /etc/prometheus /var/lib/prometheus
ls /etc/prometheus/prometheus.yml
- Убеждается, что у Prometheus есть необходимые каталоги конфигурации и хранения данных.
Проверьте разрешения: если Prometheus работает под выделенным пользователем, убедитесь в правильном владельце:
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
(Необязательно) Защитите Prometheus, создав выделенного пользователя
sudo useradd --no-create-home --shell /bin/false prometheus
- Рекомендуется в целях безопасности: запускает Prometheus под пользователем без входа в систему.
3. Проверка, работает ли Prometheus как служба
Если Prometheus работает как процесс, проверьте, правильно ли он настроен и управляется как служба, чтобы он автоматически перезапускался после перезагрузки или сбоев.
Проверьте статус службы Prometheus
Linux
systemctl status prometheus.service
Windows
sc query prometheus
MacOs
pgrep prometheus
- Если служба неактивна (dead) или остановлена, перейдите к следующим шагам.
4. Если Prometheus не работает как служба
Если Prometheus не работает как управляемая служба, убедитесь, что он правильно настроен и может перезапускаться автоматически.
Проверьте конфигурацию службы (Linux и MacOs)
Проверьте файл юнита службы, чтобы убедиться в правильности путей:
sudo nano /etc/systemd/system/prometheus.service
- Найдите строку
ExecStart:
ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/
- Убедитесь, что:
- путь к бинарному файлу (
/usr/local/bin/prometheus) верен. - файл конфигурации (
/etc/prometheus/prometheus.yml) на месте. - путь хранения (
/var/lib/prometheus/) существует.
- путь к бинарному файлу (
Перезапустите и включите службу Prometheus (Linux и MacOs)
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
sudo systemctl status prometheus
Проверьте состояние работоспособности Prometheus
После перезапуска проверьте, отвечает ли Prometheus:
curl -s http://localhost:9090/-/ready
- Если успешно, это подтверждает, что Prometheus готов обслуживать запросы.
Перезапустите службу Prometheus (Windows)
Если он работает как служба Windows, перезапустите её:
net stop prometheus
net start prometheus
5. Проверка, собирает ли Prometheus метрики
Если вы установили Node exporter для предоставления системных метрик, можно проверить, собирает ли Prometheus метрики, отправив запрос к конечной точке /metrics.
curl http://localhost:9090/metrics
- Он должен вернуть ряд метрик и метаданные о предоставляемых метриках.
Проверьте метрики Prometheus в Grafana Metrics Drilldown
В вашем экземпляре Grafana перейдите в представление Drilldown и опробуйте просмотр метрик, совместимых с Prometheus, без запросов.
Начните создавать дашборды
Теперь, когда у вас есть подобранный список запросов, создайте дашборды, чтобы отображать системные метрики, отслеживаемые Prometheus. Установив Prometheus и Node exporter или windows_exporter, вы найдёте рекомендуемые дашборды для использования.
На следующем изображении показан дашборд с тремя панелями, отображающими некоторые системные метрики.

Чтобы узнать больше:
- Документация Grafana: источник данных Prometheus
- Документация Prometheus: What is Prometheus?