概要
blackbox_exporter はインスタンスの死活監視を行うためのエクスポータです
今回はインストール方法と簡単な使い方について紹介します
環境
- Ubuntu 18.04
- docker 20.10.2
- Prometheus 2.24.1
nginx 起動
動作確認用の nginx を起動します
192.168.100.11 という IP のインスタンスで起動しています
sudo systemctl start nginx
blackbox.yml の作成
使用するモジュールやルールを設定します
実際に監視を行うサイトなどの情報は prometheus.yml 側に記載します
今回は Ping チェックとターゲットのサイトから 200 番系のレスポンスが返却されるかのチェックをします
ただこちらにはターゲットのサイトなどは記載しません
vim blackbox.yml
modules:
icmp:
prober: icmp
timeout: 5s
http_2xx:
prober: http
timeout: 5s
http:
valid_status_codes: []
method: GET
preferred_ip_protocol: "ip4"
blackbox_exporter の起動
先程作成した blackbox.yml を使ってコンテナを起動します
blackbox_exporter は 192.168.100.10 で起動しています
docker run --rm -d -p 9115:9115 --name blackbox_exporter -v
pwd:/config prom/blackbox-exporter:master --config.file=/config/blackbox.yml
prometheus.yml の作成
次に prometheus.yml を定義します
blackbox_exporter
の場所と実際に死活監視するターゲットサイトの情報はこちらに記載します
vim prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'nginx_check'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://192.168.100.11 # nginx が起動しているインスタンス
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.100.10:9115 # blackbox_exporter が起動しているインスタンス
Prometheus の起動
prometheus.yml を使って起動します
docker run -d -p 9090:9090 -v $(pwd):/prometheus-data prom/prometheus --config.file=/prometheus-data/prometheus.yml
動作確認
まず blackbox_exporter が起動しているノードにアクセスするとチェック結果が確認できます
今回であれば http://192.168.100.10:9115/
にアクセスすると以下のような結果が確認できます
また Prometheus にアクセスすると probe から始まるメトリックが取得できているのが確認できます
nginx を停止して probe_success
の値が 0 になることを確認しましょう
おまけ: Ping チェックをする場合の prometheus.yml
job_name
を追加すれば OK です
あとは Prometheus コンテナを再起動しましょう
メトリックは probe_icmp_duration_seconds
あたりが追加になっています
probe_success
に job="icmp_check"
も追加になっているのでそれを見ても OK です
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'nginx_check'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://192.168.100.10
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.100.10:9115
- job_name: 'icmp_check'
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets:
- 192.168.100.11
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.100.10:9115
最後に
blackbox_exporter を試してみました
ターゲットのサイトは prometheus.yml に書きますが実際にターゲットのサイトにアクセスしているのは blackbox_exporter のはずなのでネットワークのリーチャビリティなどには注意しましょう
0 件のコメント:
コメントを投稿