Как да наблюдавате ефективността на уебсайта с Blackbox Exporter и Grafana?

Харесвате ли Grafana за мониторинг на сървърни показатели? Ще харесате Blackbox Exporter и за наблюдение на уебсайтове!

В този урок ще се научите да инсталирате Blackbox Exporter на CentOS/RHEL и ще разберете как да го използвате с Prometheus и Grafana, за да наблюдавате ефективността на уебсайта и времето за работа.

Какво е Blackbox Exporter?

Blackbox Exporter от Prometheus се използва за изследване на крайни точки като HTTPS, HTTP, TCP, DNS и ICMP. След като дефинирате крайната точка, експортерът на Blackbox генерира стотици показатели, които могат да бъдат визуализирани с помощта на Grafana. Измерването на времето за реакция е най-важната характеристика на експортера Blackbox.

Blackbox Exporter е самостоятелно хоствано решение. Ако търсите нещо подобно, но като SaaS или облачно базирано, тогава можете да опитате Grafana worldPing.

Предпоставки

Prometheus и Grafana трябва да са предварително инсталирани. Следвайте тази статия, за да инсталирате Prometheus и Grafana.

Инсталиране на Blackbox Exporter

Нека първо ви покажа как да инсталирате Blackbox exporter.

Стъпка 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 експортера, които дефинирате всички крайни точки за сондиране и модули за изпълнение.
  13 най-добри практики за защита на микроуслуги

Командата по-долу ще ви даде всички флагове, които можете да използвате с експортера на 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

Не забравяйте да промените пътя към действителния, откъдето сте го извлекли.

  Бърз отговор на съобщения в Skype от изскачащ прозорец [Jailbreak]

Стъпка 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 pctechbg.net.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 pctechbg.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 pctechbg.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 pctechbg.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 pctechbg.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 Exporter.

  • Отидете на таблото за управление на Grafana, щракнете върху знак + и щракнете върху Импортиране.
  • В Импортиране чрез grafana.com поставете идентификатора на таблото за управление 7587 и щракнете върху Зареждане.
  • След това изберете източника на данни на Prometheus и щракнете върху Импортиране.
  Как да коригирате липсващ календар в Microsoft Teams

  • Таблото за управление на Prometheus Blackbox Exporter ще бъде импортирано.
  • Ще можете да визуализирате показатели като продължителност на глобалната проверка, състояние, продължителност на HTTP, средна продължителност на проверка, средно търсене в DNS, изтичане на SSL и много други.

  • Всички те са отделни панели на таблото. Позволете ми да покажа панела HTTP Duration в детайли. Този панел показва визуализацията на времето, необходимо за свързване, обработка, разрешаване, tls и заявки за прехвърляне.

Има много опции на таблото, с които можете да играете. Можете да промените времевия диапазон, за който искате да се показва визуализацията. Можете също така да промените интервала от време при опресняване на данни; тук новите данни идват в таблото на всеки 5 секунди.

  • Когато щракнете върху стрелката надолу върху HTTP Duration, ще получите опциите, показани по-долу. Кликнете върху редактиране.

  • Под панела за визуализация ще получите редактор на заявки. В момента заявката, показана на моментната снимка по-долу, се визуализира – probe_http_duration_seconds.

  • Има стотици заявки, които можете лесно да визуализирате и да ги добавите към таблото си според изискванията.

  • Имате и много опции за промяна на типа визуализация. Средната продължителност на сондата присъства на таблото в текстов формат. От панела за визуализация вдясно щракнете върху опцията Guage за средна продължителност на сондата.

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

Заключение

Горното е само за да ви даде представа колко лесно е да наблюдавате уебсайта с Prometheus Blackbox и Grafana. Има много опции и силно препоръчвам да си поиграете с него, за да го изпитате. Ако сте любопитни да научите Графана, вижте неговия онлайн курс.

Приятно ви е да прочетете статията? Какво ще кажете за споделяне със света?