Як відстежувати продуктивність веб-сайту за допомогою Blackbox Exporter і Grafana?

Вам подобається Grafana для моніторингу серверних показників? Вам також сподобається Blackbox Exporter для моніторингу веб-сайтів!

У цьому підручнику ви навчитеся інсталювати Blackbox Exporter на CentOS/RHEL і зрозумієте, як використовувати його з Prometheus і Grafana для моніторингу продуктивності веб-сайту та часу безвідмовної роботи.

Що таке Blackbox Exporter?

Експортер Blackbox від Prometheus використовується для перевірки кінцевих точок, таких як HTTPS, HTTP, TCP, DNS і ICMP. Після визначення кінцевої точки експортер Blackbox генерує сотні показників, які можна візуалізувати за допомогою Grafana. Вимірювання часу відгуку є найважливішою функцією експортера Blackbox.

Blackbox Exporter — це автономне рішення. Якщо ви шукаєте щось подібне, але як SaaS або хмарне, ви можете спробувати Grafana worldPing.

передумови

Prometheus і Grafana повинні бути попередньо встановлені. Дотримуйтеся цієї статті, щоб установити Prometheus і Grafana.

Встановлення Blackbox Exporter

Дозвольте мені спочатку показати вам, як встановити експортер 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 з усіма конфігураціями експортера backbox, у якому ви визначаєте всі кінцеві точки для перевірки та модулі для запуску.
  6 найкращих серверів Factorio для всіх

Наведена нижче команда надасть вам усі позначки, які можна використовувати з експортером 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

Не забудьте змінити шлях на фактичний шлях, де ви його видобули.

  Як керувати пристроями розумного дому в Центрі керування на iPhone або iPad

Крок 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 techukraine.net.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 techukraine.net.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 techukraine.net.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 techukraine.net.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 techukraine.net.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 Blackbox.

  • Перейдіть на інформаційну панель Grafana, натисніть знак + і виберіть Імпорт.
  • У Import via grafana.com введіть ідентифікатор інформаційної панелі 7587 і натисніть «Завантажити».
  • Потім виберіть джерело даних Prometheus і натисніть «Імпортувати».
  Як усунути неполадки дзвінка Zoom

  • Інформаційну панель Prometheus Blackbox Exporter буде імпортовано.
  • Ви зможете візуалізувати такі показники, як тривалість глобального тестування, статус, тривалість HTTP, середня тривалість тестування, середній пошук DNS, термін дії SSL та багато інших.

  • Усе це окремі панелі на панелі приладів. Дозвольте мені детально показати панель HTTP Duration. Ця панель показує візуалізацію тривалості часу, необхідного для підключення, обробки, вирішення, tls і запитів на передачу.

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

  • Якщо натиснути стрілку вниз «Тривалість HTTP», ви отримаєте наведені нижче параметри. Натисніть редагувати.

  • Під панеллю візуалізації ви отримаєте редактор запитів. Наразі запит, показаний на знімку нижче, візуалізується – probe_http_duration_seconds.

  • Є сотні запитів, які ви можете легко візуалізувати та додати на свою інформаційну панель відповідно до вимог.

  • У вас також є багато варіантів змінити тип візуалізації. Середня тривалість зондування представлена ​​на приладовій панелі у текстовому форматі. На панелі візуалізації праворуч натисніть опцію Guage для середньої тривалості дослідження.

  • І ось як візуалізація зміниться.

Висновок

Наведене вище лише для того, щоб дати вам уявлення про те, як легко контролювати веб-сайт за допомогою Prometheus Blackbox і Grafana. Є багато варіантів, і я б наполегливо радив пограти з цим, щоб відчути це. Якщо вам цікаво вивчати Grafana, то перегляньте його онлайн курс.

Вам сподобалось читати статтю? Як щодо того, щоб поділитися зі світом?