Как отслеживать производительность веб-сайта с помощью Blackbox Exporter и Grafana?

Любите Grafana для мониторинга метрик сервера? Вам также понравится Blackbox Exporter для мониторинга веб-сайтов!

В этом руководстве вы научитесь устанавливать Blackbox Exporter на CentOS/RHEL и поймете, как использовать его с Prometheus и Grafana для мониторинга производительности и времени безотказной работы веб-сайта.

Что такое Blackbox Exporter?

Экспортер черного ящика Prometheus используется для проверки конечных точек, таких как HTTPS, HTTP, TCP, DNS и ICMP. После определения конечной точки экспортер Blackbox генерирует сотни метрик, которые можно визуализировать с помощью Grafana. Измерение времени отклика — самая важная функция экспортера Blackbox.

Blackbox Exporter — это собственное решение. Если вы ищете что-то подобное, но как SaaS или облачное, вы можете попробовать Grafana worldPing.

Предпосылки

Prometheus и Grafana должны быть предварительно установлены. Следуйте этой статье, чтобы установить Prometheus и Grafana.

Установка экспортера Blackbox

Позвольте мне сначала показать вам, как установить экспортер Blackbox.

Шаг 1: Скачайте Blackbox Exporter

Перейти к официальная страница чтобы загрузить последний пакет экспортера Linux AMD Blackbox. Я загружаю файл blackbox_exporter-0.16.0.linux-amd64.tar.gz.

  • Перенесите загруженный файл на сервер
  • Извлечь файлы из пакета.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz

Проверьте все файлы внутри экспортера Blackbox.

[[email protected] ~]$ cd blackbox_exporter-0.16.0.linux-amd64/
[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ls -l
total 16672
-rwxr-xr-x. 1 centos centos 17050332 Nov 11 2019 blackbox_exporter
-rw-r--r--. 1 centos centos 629 Nov 11 2019 blackbox.yml
-rw-r--r--. 1 centos centos 11357 Nov 11 2019 LICENSE
-rw-r--r--. 1 centos centos 94 Nov 11 2019 NOTICE

Здесь важны два файла blackbox_exporter и blackbox.yml.

  • blackbox_exporter: это исполняемый файл для запуска службы.
  • blackbox.yml: файл YAML со всеми конфигурациями экспортера бэкбоксов, в которых вы определяете все конечные точки для проверки и модули для запуска.

Команда ниже даст вам все флаги, которые вы можете использовать с экспортером Blackbox.

[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h
usage: blackbox_exporter [<flags>]

Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).

--config.file="blackbox.yml"
Blackbox exporter configuration file.
--web.listen-address=":9115"
The address to listen on for HTTP requests.

--timeout-offset=0.5 Offset to subtract from timeout in seconds.

--config.check If true validate the config file and then exit.

--history.limit=100 The maximum amount of items to keep in the history.

--web.external-url=<url>
The URL under which Blackbox exporter is externally reachable (for example, if Blackbox exporter is served via a
reverse proxy). Used for generating relative and absolute links back to Blackbox exporter itself. If the URL has a
path portion, it will be used to prefix all HTTP endpoints served by Blackbox exporter. If omitted, relevant URL
components will be derived automatically.

--web.route-prefix=<path>
Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.

--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]

--log.format=logfmt Output format of log messages. One of: [logfmt, json]
--version Show application version.

Шаг 2: Создайте пользователя для Blackbox

Это необязательно.

Вы можете либо создать нового пользователя для запуска Blackbox, либо использовать существующих пользователей Prometheus для его запуска.

Предоставьте разрешения и назначьте право собственности на все свои файлы новому пользователю.

[[email protected] ~]$ sudo useradd -rs /bin/false blackbox
[[email protected] ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
[[email protected] ~]$ sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64

Шаг 3. Настройте службу Blackbox

Пришло время настроить Blackbox Exporter как службу внутри systemd. Создайте файл blackbox.service, поместите в него указанные ниже строки и сохраните его.

[[email protected] ~]$ sudo gedit /etc/systemd/system/blackbox.service

[Unit]
Description=Blackbox Exporter Service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=blackbox
Group=blackbox
ExecStart=/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox_exporter --config.file==/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox.yml

[Install]
WantedBy=multi-user.target

Не забудьте изменить путь к тому, откуда вы его извлекли.

Шаг 4: Запустите Blackbox Exporter

Запустите приведенные ниже команды, чтобы запустить экспортер Blackbox в качестве службы.

[[email protected] ~]$ sudo systemctl daemon-reload
[[email protected] ~]$ sudo systemctl start blackbox.service
[[email protected] ~]$ sudo systemctl status blackbox.service
● blackbox.service - Blackbox Exporter Service
Loaded: loaded (/etc/systemd/system/blackbox.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-06-13 17:28:40 EDT; 1s ago
Main PID: 30427 (blackbox_export)
Tasks: 5
CGroup: /system.slice/blackbox.service
└─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml

Jun 13 17:28:40 toadmin.ru.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 toadmin.ru.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)"
Jun 13 17:28:40 toadmin.ru.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING)
Jun 13 17:28:40 toadmin.ru.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:225 msg="Loaded config file"
Jun 13 17:28:40 toadmin.ru.linuxvmimages.com blackbox_exporter[30

Большой!

Экспортер Blackbox успешно запущен. По адресу http://localhost:9115/ вы можете найти запущенный Blackbox Exporter.

Интеграция Blackbox с Prometheus

Давайте интегрируем Blackbox Exporter с Prometheus, чтобы начать собирать метрики.

  • Добавьте задание черного ящика с приведенными ниже конфигурациями в файле prometheus.yml. Я буду следить за работой https://www.telegraph.co.uk.
[[email protected] ~]$ sudo gedit /etc/prometheus/prometheus.yml

- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
- https://www.telegraph.co.uk
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
[[email protected] ~]$ sudo systemctl restart prometheus.service
  • Когда вы снова проверите цели по адресу http://localhost:9090/targets, вы обнаружите задание черного ящика, работающее с конечной точкой, которую я определил.

  • Нажмите на график и запустите запрос — probe_http_duration_seconds.

  • Будет создана визуализация данных, отслеживаемых Prometheus.

Теперь пришло время визуализировать задание Blackbox на Grafana.

Есть много способов начать, но один из самых быстрых — это начать с готовой панели инструментов. Экспортер черного ящика Prometheus.

  • Перейдите на панель инструментов Grafana, нажмите знак + и нажмите «Импорт».
  • В разделе «Импорт через grafana.com» введите идентификатор панели инструментов 7587 и нажмите «Загрузить».
  • Затем выберите источник данных Prometheus и нажмите «Импорт».

  • Панель инструментов Prometheus Blackbox Exporter будет импортирована.
  • Вы сможете визуализировать такие показатели, как глобальная продолжительность проверки, статус, продолжительность HTTP, средняя продолжительность проверки, средний поиск DNS, срок действия SSL и многие другие.

  • Все это отдельные панели на приборной панели. Позвольте мне подробно показать панель «Длительность HTTP». На этой панели отображается время, затраченное на подключение, обработку, разрешение, tls и запросы на передачу.

На приборной панели есть множество опций, с которыми вы можете поэкспериментировать. Вы можете изменить временной диапазон, для которого вы хотите отображать визуализацию. Вы также можете изменить временной интервал обновления данных; здесь новые данные поступают на панель мониторинга каждые 5 секунд.

  • Когда вы нажмете стрелку вниз «Длительность HTTP», вы получите параметры, показанные ниже. Нажмите на редактирование.

  • Под панелью визуализации находится редактор запросов. В настоящее время визуализируется запрос, показанный на снимке ниже — probe_http_duration_seconds.

  • Существуют сотни запросов, которые вы можете легко визуализировать и добавить на панель инструментов в соответствии с требованиями.

  • У вас также есть множество вариантов изменения типа визуализации. Средняя продолжительность зондирования представлена ​​на дашборде в текстовом формате. На панели визуализации справа щелкните параметр Guage для средней продолжительности зондирования.

  • И вот как изменится визуализация.

Вывод

Вышеизложенное предназначено только для того, чтобы дать вам представление о том, как легко отслеживать веб-сайт с помощью Prometheus Blackbox и Grafana. Есть много вариантов, и я настоятельно рекомендую поиграть с ними, чтобы испытать их. Если вам интересно узнать о Grafana, ознакомьтесь с его онлайн курс.

Понравилось читать статью? Как насчет того, чтобы поделиться с миром?