Tags:

blackbox_exporterでDNSの監視をしているのですが前回の記事のキャッシュサーバーのダウンを検知出来ませんでした.
使っていた設定とアラートはこんな感じです.

  - job_name: blackbox_dns
    metrics_path: /probe
    params:
      module: [internal_dns, external_dns, cache_dns]
    static_configs:
      - targets:
        - ns.local
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__address__]
        target_label: instance
      - target_label: __address__
        replacement: blackbox_exporter:9115

アラート

groups:
  - name: general
    rules:
      - alert: DNSServiceDown
        expr: probe_success{job="blackbox_dns"} == 0
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "DNSService {{ $labels.instance }} down"
          description: "{{ $labels.instance }} が5分間ダウンしました"

paramsで指定できるmoduleは1つみたいですね.
設定時にきちんとblackbox_exporterのログを確認すれば良かったのですがきちんと見てませんでした.
blackbox_exporterは動作してるポートにアクセスするとRecent Probesから直近のログを確認することができます.
ここ見てようやく1つしかmoduleが実行されていないことに気付きました.

複数個jobを作れば解決しますが今回はラベルのリライトで同一job上でmoduleを切り替えます

  - job_name: blackbox_dns
    metrics_path: /probe
    params:
      module: [internal_dns]
    static_configs:
      - targets:
        - ns.local|internal_dns
        - ns.local|external_dns
        - ns.local|cache_dns
    relabel_configs:
      - source_labels: [__address__]
        regex: (.*?)\|(.*)
        target_label: __param_target
        replacement: ${1}
      - source_labels: [__address__]
        regex: (.*?)\|(.*)
        target_label: __param_module
        replacement: ${2}
      - source_labels: [__address__]
        regex: (.*?)\|(.*)
        target_label: instance
        replacement: ${2}
      - target_label: __address__
        replacement: blackbox_exporter:9115

「|」で区切ってそれを正規表現で抽出し適宜replaceする感じですね.
ルールの方は問題ないのでそのまま前回記事の方法でわざと色々落としてみて動作確認して終了.

参考記事



コメント