Blackbox Exporter 및 Grafana로 웹사이트 성능을 모니터링하는 방법은 무엇입니까?

서버 지표 모니터링에 Grafana가 마음에 드십니까? 웹사이트 모니터링을 위한 Blackbox Exporter도 마음에 드실 것입니다!

이 튜토리얼에서는 CentOS/RHEL에 Blackbox Exporter를 설치하고 이를 Prometheus 및 Grafana와 함께 사용하여 웹 사이트 성능 및 가동 시간을 모니터링하는 방법을 배웁니다.

블랙박스 익스포터란?

블랙박스 익스포터 Prometheus는 HTTPS, HTTP, TCP, DNS 및 ICMP와 같은 끝점을 조사하는 데 사용됩니다. 끝점을 정의한 후 Blackbox 내보내기는 Grafana를 사용하여 시각화할 수 있는 수백 개의 지표를 생성합니다. 응답 시간 측정은 Blackbox 내보내기의 가장 중요한 기능입니다.

Blackbox Exporter는 자체 호스팅 솔루션입니다. 유사하지만 SaaS 또는 클라우드 기반을 찾고 있다면 Grafana worldPing을 사용해 볼 수 있습니다.

전제 조건

Prometheus 및 Grafana가 사전 설치되어 있어야 합니다. Prometheus 및 Grafana를 설치하려면 이 문서를 따르십시오.

블랙박스 익스포터 설치

먼저 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 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 내보내기 시작

아래 명령을 실행하여 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 koreantech.org.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service.
Jun 13 17:28:40 koreantech.org.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 koreantech.org.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 koreantech.org.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 koreantech.org.linuxvmimages.com blackbox_exporter[30

엄청난!

Blackbox 내보내기가 성공적으로 시작되었습니다. http://localhost:9115/에서 실행 중인 Blackbox Exporter를 찾을 수 있습니다.

프로메테우스와 블랙박스 통합

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에서 모니터링하는 데이터에 대한 시각화가 생성됩니다.

이제 Grafana에서 Blackbox 작업을 시각화할 차례입니다.

시작하는 방법에는 여러 가지가 있지만 가장 빠른 방법 중 하나는 미리 만들어진 대시보드로 시작하는 것입니다. 프로메테우스 블랙박스 익스포터.

  • Grafana 대시보드로 이동하여 + 기호를 클릭하고 가져오기를 클릭합니다.
  • Import via grafana.com에서 대시보드 ID 7587을 입력하고 로드를 클릭합니다.
  • 그런 다음 Prometheus 데이터 소스를 선택하고 가져오기를 클릭합니다.

  • Prometheus Blackbox Exporter 대시보드를 가져옵니다.
  • 글로벌 프로브 기간, 상태, HTTP 기간, 평균 프로브 기간, 평균 DNS 조회, SSL 만료 등과 같은 지표를 시각화할 수 있습니다.

  • 이들은 모두 대시보드의 별도 패널입니다. HTTP Duration 패널을 자세히 보여드리겠습니다. 이 패널은 연결, 처리, 해결, tls 및 전송 요청에 걸리는 시간의 시각화를 보여줍니다.

대시보드에는 놀 수 있는 많은 옵션이 있습니다. 시각화를 표시할 시간 범위를 변경할 수 있습니다. 데이터 새로 고침의 시간 간격을 변경할 수도 있습니다. 여기서 새 데이터는 5초마다 대시보드에 들어옵니다.

  • HTTP 기간 아래쪽 화살표를 클릭하면 아래와 같은 옵션이 표시됩니다. 편집을 클릭하십시오.

  • 시각화 패널 아래에 쿼리 편집기가 있습니다. 현재 아래 스냅샷에 표시된 쿼리(probe_http_duration_seconds)가 시각화되고 있습니다.

  • 요구 사항에 따라 쉽게 시각화하고 대시보드에 추가할 수 있는 수백 개의 쿼리가 있습니다.

  • 시각화 유형을 변경할 수 있는 옵션도 많이 있습니다. 평균 프로브 기간은 대시보드에 텍스트 형식으로 표시됩니다. 오른쪽의 시각화 패널에서 평균 프로브 지속 시간에 대한 게이지 옵션을 클릭합니다.

  • 이것이 시각화가 변경되는 방식입니다.

결론

위의 내용은 Prometheus Blackbox 및 Grafana를 사용하여 웹사이트를 모니터링하는 것이 얼마나 쉬운지에 대한 아이디어를 제공하기 위한 것입니다. 많은 옵션이 있으며 그것을 경험하기 위해 그것을 가지고 놀 것을 강력히 제안합니다. Grafana 학습이 궁금하시다면 그의 온라인 코스.

기사를 재미있게 읽으셨나요? 세계와 공유하는 것은 어떻습니까?