普罗米修斯的建议- 用 blackbox_exporter 进行生死监控

黑盒出口器是什么?

以前的导出器在受监控服务器上安装并从Prometheus服务器进行拉取以获取度量值。在这种情况下,无论怎样努力都无法实现对ICMP(ping)监控或URL监控。解决此问题的工具是”blackbox exporter”。

因为它是支持外形监控的expoter,所以我们会将其安装并在Prometheus服务器上运行。(也可以在其他服务器上运行)

公式 – 下载
GitHub – prometheus/blackbox_exporter

使用(ansible)引入

由于使用ansible安装了node_exporter并进行了服务注册,因此我们将以此为基础创建yml文件。

---
- hosts: samplehost
  user: sampleuser
  sudo: yes
  tasks:
  - name: check exist file
    stat:
      path: /usr/bin/blackbox_exporter
    register: file
  - name: wget blackbox_exporter
    get_url:
      url: https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbox_exporter-0.12.0.linux-amd64.tar.gz
      dest: /tmp/blackbox_exporter-0.12.0.linux-amd64.tar.gz
  - name: unarchive blackbox-exporter
    unarchive:
      src: /tmp/blackbox_exporter-0.12.0.linux-amd64.tar.gz
      remote_src: yes
      dest: /tmp/
  - name: copy exporter binary
    shell: cp /tmp/blackbox_exporter-0.12.0.linux-amd64/blackbox_exporter /usr/bin/blackbox_exporter
    when: not file.stat.exists

  - name: add system account prometheus
    user:
      system: yes
      name: prometheus
      state: present
      home: /var/lib/prometheus
      shell: /bin/false
      comment: Prometheus daemon
  - name: create prometheus home directory
    file:
      state: directory
      path: /var/lib/prometheus
      mode: 0755
      group: prometheus
      owner: prometheus
  - name: create blackbox_exporter systemd
    blockinfile:
      path: /etc/systemd/system/blackbox_exporter.service
      create: yes
      block: |
        [Unit]
        Description=black_exporter for Prometheus

        [Service]
        Restart=always
        User=prometheus
        ExecStart=/usr/bin/blackbox_exporter \
            --web.listen-address=0.0.0.0:9115 \
            --config.file=/usr/local/blackbox_exporter/blackbox.yml
        ExecReload=/bin/kill -HUP $MAINPID
        TimeoutStopSec=20s
        SendSIGKILL=no

        [Install]
        WantedBy=multi-user.target
  - name: add blackbox_exporter systemd
    systemd:
      name: blackbox_exporter.service
      enabled: yes
      state: started
  - name: setup icmp
    shell: setcap cap_net_raw+ep /usr/local/blackbox_exporter/blackbox_exporter

黑盒子导出器的配置

默认情况下是这样的。因为我还没有进行研究,所以暂时保持默认设置。

modules:
  http_2xx:
    prober: http
    http:
  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
  ssh_banner:
    prober: tcp
    tcp:
      query_response:
      - expect: "^SSH-2.0-"
  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

Prometheus的配置

在scrape_configs中,需要记录下针对哪个位置以及使用哪个协议进行设置。
使用Prometheus和Blackbox Exporter进行服务器的生死监测。
内容是基于上述进行 模仿 参考。(非常感谢!)

先看看自定义都是什么东西再说吧。

使用 ICMP 的配置选项

使用file_sd进行管理似乎更好。

scrape_configs:
  - job_name: "Blackbox_ICMP"
    metrics_path: /probe
    params:
      module: [icmp]
    file_sd_configs:
      - files:
        - /usr/local/prometheus-2.3.1/filesd/ICMP.yml
    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 # blackbox_exporterのIP:Port(今回はPrometheusサーバ自身なので127.0.0.1)

- targets:
    - XXXXX01
    - XXXXXXX01
  labels:
    project: XXXXXT
- targets:
    - 13.XXX.XXX.234
  labels:
    instance: XX-XXXXX18
    project: XXXXXXXXAI

确认

設定完成後,重新啟動服務,並確認是否在目標列表中。

blackbox01.PNG
blackbox01.PNG
alert.PNG

到这儿结束!

普罗米修斯之前的文章
普罗米修斯推荐-初次引入-
普罗米修斯推荐-服务发现-
普罗米修斯推荐-引入出口器 node-exporter(使用apt-get)-
普罗米修斯推荐-引入出口器 node-exporter(使用二进制文件)-
普罗米修斯推荐-服务发现-端点变成“http://:9100/metrics”,变成自己的问题
普罗米修斯推荐-在Grafana中需要监控的用户列表-
普罗米修斯推荐-在Grafana中将警报通知给Teams非常容易-

广告
将在 10 秒后关闭
bannerAds