서버 지표 모니터링에 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 학습이 궁금하시다면 그의 온라인 코스.
기사를 재미있게 읽으셨나요? 세계와 공유하는 것은 어떻습니까?