Любите Grafana для отслеживания метрик сервера? Вам также понравится Blackbox Exporter для мониторинга веб-сайтов!
В этом руководстве вы узнаете, как установить Blackbox Exporter на CentOS/RHEL и поймете, как использовать его с Prometheus и Grafan для мониторинга производительности и времени безотказной работы веб-сайта.
Что такое экспортер BlackBerry?
Blackbox Exporter от Prometheus используется для проверки конечных точек, таких как HTTPS, HTTP, TCP, DNS и ICMP. После определения конечной точки экспортер Blackbox генерирует сотни метрик, которые можно визуализировать с помощью Grafana. Измерение времени отклика — самая важная функция Blackbox Exporter.
Blackbox Exporter — это собственное решение. Если вы ищете что-то похожее, но как SaaS или облачное, вы можете попробовать Grafana worldPing.
Содержание
Предпосылки
Prometheus и Grafana должны быть предварительно установлены. Следуйте этой статье, чтобы установить Prometheus и Grafana.
Установка Blackbox Exporter
Позвольте мне сначала показать вам, как установить BlackBerry Exporter.
Шаг 1: Скачайте Blackbox Exporter
Перейдите на официальную страницу, чтобы загрузить последнюю версию экспортного пакета Linux AMD Blackbox. Качаю файл blackbok_ekporter-0.16.0.linuk-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
Здесь важны два файла blackbok_ekporter и blackbok.iml.
- blackbok_exporter: это исполняемый файл для запуска службы.
- blackbok.iml: файл IAML со всеми конфигурациями экспортера backbok, определяющими все конечные точки зонда и модули запуска.
Приведенная ниже команда даст вам все флаги, которые вы можете использовать с экспортером черного ящика.
[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h usage: blackbox_exporter [] 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= 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= 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. Создайте пользователя BlackBerry.
Это необязательно.
Вы можете либо создать нового пользователя для запуска 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. Создайте файл blackbok.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 Exporter как службу.
[[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 techblog.co.rs.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service. Jun 13 17:28:40 techblog.co.rs.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 techblog.co.rs.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 techblog.co.rs.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 techblog.co.rs.linuxvmimages.com blackbox_exporter[30
Большой!
Экспортер Blackbox успешно запущен. На http://localhost:9115/ вы можете найти рабочий Blackbox Exporter.
Интеграция Blackbox с Prometheus
Давайте интегрируем Blackbox Exporter с Prometheus, чтобы начать собирать метрики.
- Добавьте задание черного ящика с приведенными ниже конфигурациями в файл prometheus.iml. Я буду следить за работой https://vvv.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 Exporter.
- Перейдите в панель управления Grafana, нажмите знак + и нажмите «Импорт».
- В разделе «Импорт через grafana.com» укажите идентификатор панели управления 7587 и нажмите «Загрузить».
- Затем выберите источник данных Prometheus и нажмите «Импорт».
- Будет импортирована панель управления Prometheus Blackbox Exporter.
- Вы сможете визуализировать такие показатели, как продолжительность глобального сканирования, состояние, продолжительность HTTP, средняя продолжительность сканирования, средний поиск DNS, истечение срока действия SSL и многое другое.
- Все это отдельные панели на приборной панели. Позвольте мне подробно показать панель «Длительность HTTP». На этой панели отображается время, затраченное на подключение, обработку, разрешение, tls и запросы на передачу.
На панели инструментов есть много опций, с которыми вы можете поиграть. Вы можете изменить временной диапазон, для которого вы хотите отображать визуализацию. Вы также можете изменить временной интервал обновления данных; здесь новые данные приходят на приборную панель каждые 5 секунд.
- Когда вы нажмете стрелку вниз на стрелке «Продолжительность HTTP», вы получите параметры, показанные ниже. Нажмите изменить.
- Под панелью визуализации находится редактор запросов. В настоящее время визуализируется запрос, показанный на скриншоте ниже — probe_http_duration_seconds.
- Существуют сотни запросов, которые вы можете легко визуализировать и добавить на панель инструментов по мере необходимости.
- У вас также есть много вариантов изменения типа визуализации. Средняя продолжительность проверки представлена на дашборде в текстовом формате. На панели визуализации справа щелкните параметр Guage для средней продолжительности проверки.
- И вот как изменится визуализация.
Заключение
Вышеизложенное просто для того, чтобы дать вам представление о том, как легко отслеживать веб-сайт с помощью Prometheus Blackbox и Grafan. Есть много вариантов, и я настоятельно рекомендую поиграть с ним, чтобы испытать его. Если вы заинтересованы в изучении Grafana, ознакомьтесь с его онлайн-курсом.
Вам понравилось читать статью? Как насчет того, чтобы поделиться этим с миром?