Любите 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, ознакомьтесь с его онлайн курс.
Понравилось читать статью? Как насчет того, чтобы поделиться с миром?