Моніторинг веб-сайтів за допомогою Blackbox Exporter, Prometheus і Grafana
Чи використовуєте ви Grafana для відстеження показників серверів? Якщо так, вам сподобається Blackbox Exporter для моніторингу веб-сайтів!
У цьому посібнику ми розглянемо процес встановлення Blackbox Exporter на CentOS/RHEL, а також дізнаємося, як використовувати його в поєднанні з Prometheus і Grafana для відстеження продуктивності та доступності ваших веб-ресурсів.
Що таке Blackbox Exporter?
Blackbox Exporter, розроблений Prometheus, призначений для перевірки працездатності різних кінцевих точок, таких як HTTPS, HTTP, TCP, DNS та ICMP. Після визначення цільової точки Blackbox Exporter генерує велику кількість метрик, які потім можна візуалізувати в Grafana. Однією з ключових функцій є вимірювання часу відгуку.
Blackbox Exporter є окремим, самостійним рішенням. Якщо ви віддаєте перевагу хмарному або SaaS-рішенню, зверніть увагу на Grafana worldPing.
Необхідні умови
Перед початком роботи необхідно мати попередньо встановлені Prometheus і Grafana. Зверніться до відповідного посібника для встановлення цих компонентів.
Встановлення Blackbox Exporter
Давайте розглянемо процес встановлення Blackbox Exporter.
Крок 1: Завантаження Blackbox Exporter
Відвідайте офіційну сторінку завантажень, щоб отримати останню версію Blackbox Exporter для Linux AMD. Ми будемо використовувати файл blackbox_exporter-0.16.0.linux-amd64.tar.gz.
- Завантажте архів на ваш сервер.
- Розпакуйте файли.
tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Перегляньте вміст розпакованої папки Blackbox Exporter:
cd 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
: це файл конфігурації, де вказуються цільові точки для моніторингу та необхідні модулі.
Використайте команду ./blackbox_exporter -h
, щоб переглянути всі доступні параметри:
./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 Exporter
Цей крок є необов’язковим.
Ви можете створити нового користувача для запуску Blackbox Exporter або використовувати існуючого користувача, наприклад, Prometheus. Надайте необхідні дозволи та змініть власника файлів.
sudo useradd -rs /bin/false blackbox
sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64
sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64
Крок 3: Налаштування Blackbox Exporter як сервісу
Налаштуйте Blackbox Exporter як службу systemd. Створіть файл blackbox.service
, скопіюйте наведений нижче код та збережіть.
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 Exporter як сервісу:
sudo systemctl daemon-reload
sudo systemctl start blackbox.service
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 Exporter запущено успішно. Перевірте його доступність за адресою http://localhost:9115/
.
Інтеграція Blackbox Exporter з Prometheus
Настав час інтегрувати Blackbox Exporter з Prometheus, щоб отримати доступ до зібраних метрик.
- Додайте завдання blackbox до файлу
prometheus.yml
. Ми будемо використовуватиhttps://www.telegraph.co.uk
як ціль моніторингу.
sudo gedit /etc/prometheus/prometheus.yml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Перевірка HTTP 200 відповіді.
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 # Адреса blackbox exporter.
sudo systemctl restart prometheus.service
- Перевірте статус цілей Prometheus (
http://localhost:9090/targets
). Ви повинні побачити завдання blackbox у стані UP.
- Знайдіть метрику
probe_http_duration_seconds
у вкладці Graph.
- Візуалізація на основі даних, зібраних Prometheus.
Настав час візуалізувати дані в Grafana.
Один з найшвидших способів почати – імпортувати готову панель керування: Prometheus Blackbox Exporter.
- У Grafana перейдіть до розділу Dashboards, натисніть +, виберіть Import.
- У полі Import via grafana.com введіть ID панелі 7587 і натисніть “Load”.
- Оберіть джерело даних Prometheus і натисніть “Import”.
- Панель Prometheus Blackbox Exporter успішно імпортовано.
- Ви зможете переглянути метрики, такі як загальна тривалість проби, статус, HTTP-тривалість, середня тривалість проби, середній час пошуку DNS, термін дії SSL та багато інших.
- Кожен показник відображається на окремій панелі. Розглянемо панель HTTP Duration. На ній відображається час, необхідний для з’єднання, обробки, вирішення, TLS та відправлення запиту.
На панелі є різні параметри. Ви можете змінювати часовий діапазон, інтервал оновлення даних та багато іншого.
- Натисніть на стрілку вниз “HTTP Duration”, потім виберіть Edit.
- Під графіком ви побачите редактор запитів. Запит, який відображається на скриншоті нижче, – це
probe_http_duration_seconds
.
- Існує велика кількість запитів, які можна додати до панелі.
- Ви можете змінювати тип візуалізації. Наприклад, змініть тип відображення середньої тривалості проби з текстового на графічний.
- Ось так виглядає нова візуалізація.
Висновок
Ця стаття дала вам уявлення про те, як легко моніторити веб-сайт за допомогою Prometheus Blackbox і Grafana. Рекомендуємо вам спробувати різні налаштування, щоб дослідити можливості цих інструментів. Якщо ви бажаєте глибше вивчити Grafana, перегляньте онлайн курс.
Сподобалася стаття? Поділіться нею!