[Monitoring] 05. 프로메테우스 (CentOS Stream 8 기준) - Blackbox exporter
카테고리: MONITORING
태그: monitoring linux
05. Blackbox exporter
Blackbox Exporter는 Prometheus 모니터링 시스템과 함께 사용되는 오픈 소스 프로젝트로, HTTP, HTTPS, DNS, TCP 등과 같은 네트워크 서비스의 활성 상태를 모니터링하기 위해 설계되었다.
■ Blackbox exporter 설치 및 설정
▶ 설치
{
mkdir /etc/blackbox_exporter
dnf -y install wget
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.24.0/blackbox_exporter-0.24.0.linux-amd64.tar.gz
tar -zxpvf blackbox_exporter-0.24.0.linux-amd64.tar.gz
cp blackbox_exporter-0.24.0.linux-amd64/* /etc/blackbox_exporter
}
cat <<EOF > /etc/systemd/system/blackbox_exporter.service
[Unit]
Description=Alert Manager
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/etc/blackbox_exporter/blackbox_exporter --config.file=/etc/blackbox_exporter/blackbox.yml
[Install]
WantedBy=multi-user.target
EOF
{
systemctl enable --now blackbox_exporter
firewall-cmd --add-port=9115/tcp --permanent
firewall-cmd --reload
}
▶ /etc/blackbox_exporter/blackbox.yml 파일 (기본값 유지)
vi /etc/blackbox_exporter/blackbox.yml
modules:
http_2xx:
prober: http
http:
preferred_ip_protocol: "ip4"
http_post_2xx:
prober: http
http:
method: POST
tcp_connect:
prober: tcp
pop3s_banner:
prober: tcp
tcp:
query_response:
- expect: "^+OK"
tls: true
tls_config:
insecure_skip_verify: false
grpc:
prober: grpc
grpc:
tls: true
preferred_ip_protocol: "ip4"
grpc_plain:
prober: grpc
grpc:
tls: false
service: "service1"
ssh_banner:
prober: tcp
tcp:
query_response:
- expect: "^SSH-2.0-"
- send: "SSH-2.0-blackbox-ssh-check"
irc_banner:
prober: tcp
tcp:
query_response:
- send: "NICK prober"
- send: "USER prober prober prober :prober"
- expect: "PING :([^ ]+)"
send: "PONG ${1}"
- expect: "^:[^ ]+ 001"
icmp:
prober: icmp
icmp_ttl5:
prober: icmp
timeout: 5s
icmp:
ttl: 5
▶ Prometheus 서버 노드에 설정을 추가 (/etc/prometheus/prometheus.yml)
vi /etc/prometheus/prometheus.yml
...
...
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
...
...
# [icmp] 모듈을 사용하는 경우
# 임의의 [job_name]
- job_name: 'Blackbox_icmp'
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets:
# 대상 호스트의 호스트 이름 또는 IP 주소
- node02.test.srv
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
# Blackbox Exporter 호스트:포트
replacement: node02.test.srv:9115
# [tcp_connect] 모듈을 사용하는 경우
- job_name: 'Blackbox_ssh'
metrics_path: /probe
params:
module: [ssh_banner]
static_configs:
- targets:
# 대상 호스트:포트
- node02.test.srv:22
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: node02.test.srv:9115
# [tcp_connect] 모듈을 사용하는 경우
- job_name: 'Blackbox_tcp'
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets:
# 대상 호스트:포트 (아래 예시는 MariaDB/MySQL)
- node02.test.srv:3306
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: node02.test.srv:9115
systemctl restart prometheus
■ 결과 확인
▶ Prometheus 웹 UI에 접속하고, [Status] - [Targets]
- [probe_success] 메트릭에서 데이터를 확인할 수 있으며, [1]은 성공을 의미하고, [0]은 실패를 의미한다.
댓글 남기기