美文网首页
blackbox_exporter的使用

blackbox_exporter的使用

作者: huan1993 | 来源:发表于2021-03-21 10:42 被阅读0次

一、需求

有些时候,我们想监听服务器的某个端口是否存在,监听http的请求是否正确时,这个时候就可以使用 blackbox_exporter来实现。

注意:
blackbox exporter 可以实现对 httphttpstcp(可以实现服务器接口是否在线)icmp(实现主机探活)dns的探测。

二、blackbox_exporter的安装

1、下载


# 下载
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.18.0/blackbox_exporter-0.18.0.darwin-amd64.tar.gz
# 解压
tar -zxvf blackbox_exporter-0.18.0.darwin-amd64.tar.gz
# 重命名
mv blackbox_exporter-0.18.0.darwin-amd64/ blackbox_exporter
# 进入 blackbox_exporter 目录
cd blackbox_exporter
选择对应的版本进行下载

下载地址-https://github.com/prometheus/blackbox_exporter/releases

2、编写 blackbox.yml 配置文件

modules:
  http_2xx: # 这个名字是随便写的,但是需要在 prometheus.yml 配置文件中对应起来。
    prober: http # 进行探测的协议,可以是 http、tcp、dns、icmp
    timeout: 10s
  http_post_2xx:
    prober: http
    http:
      method: POST
  tcp_connect: # tcp检测,比如检测某个端口是否在线
    prober: tcp
  icmp: # icmp 检测,比如ping某个服务器
    prober: icmp

注意:
1、上方模块中 httpicmp 等的配置不全,这个可以通过访问 https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md查看完整的配置。

2、如果要使用 icmp,那么针对不同的操作系统可能要提升权限。

icmp权限提升

3、启动 blackbox_exporter

#!/usr/bin

nohup /Users/huan/soft/prometheus/blackbox_exporter/blackbox_exporter \
--config.file="/Users/huan/soft/prometheus/blackbox_exporter/blackbox.yml" \
--web.listen-address=":9098" \
--log.level=debug \
> logs/blackbox.out 2>&1 &

访问 http://localhost:9098

blackbox_exporter启动后的界面

4、和 prometheus 集成

prometheus.yml 配置文件的编写。

scrape_configs:
  - job_name: 'blackbox_http_2xx' # 配置get请求检测
    scrape_interval: 30s
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets:         # 测试如下的请求是否可以访问的通
        - 127.0.0.1:10005
        - http://127.0.0.1:10005/hello/zhangsan
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9098 # blackbox-exporter 服务所在的机器和端口
  - job_name: 'blackbox_http_post_2xx' # 配置post请求检测
    scrape_interval: 30s
    metrics_path: /probe
    params:
      module: [http_post_2xx]
    static_configs:
      - targets:              # 测试如下的post请求是否可以访问的通,该post请求不带参数
        - 127.0.0.1:10005
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9098 # blackbox-exporter 服务所在的机器和端口
  - job_name: 'blackbox_http_ping' # 检测是否可以ping通某些机器
    scrape_interval: 30s
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets:
        - 127.0.0.1
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9098 # blackbox-exporter 服务所在的机器和端口
  - job_name: 'blackbox_tcp_connect' # 检测某些端口是否在线
    scrape_interval: 30s
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
      - targets:
        - 127.0.0.1:10006
        - 127.0.0.1:10005
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9098 # blackbox-exporter 服务所在的机器和端口

手动访问

手动访问 tcp_connect 这个模板(在blackbox.yml配置文件中执行的),判断 127.0.0.1机器上的10005端口是否是通的。

curl http://127.0.0.1:9098/probe?target=127.0.0.1:10005&module=tcp_connect&debug=true

解释:
1、在 job 等于 blackbox_http_2xx 和 blackbox_http_post_2xx 我们测试来某个 get 和 post 请求是否可以访问的通。
2、在 job 等于 blackbox_tcp_connect 中 测试来某个端口是否是通的。

5、在 grafana 中查看。

1、先在grafana网站上搜索一个 blackbox_exporter 的图表,此处我选择的是 12275

2、导入到 grafana 中,并根据自己的实际情况做一些微改。

grafana中查看blockbox_exporter的情况

6、如果需要监控告警

1、probe_success 指标可以判断我们的 icmp、tcp、http、post 监测是否正常。值为 1 正常,0不正常。
2、probe_http_status_code 指标可以知道某个http请求返回的响应码。
3、probe_ssl_earliest_cert_expiry 指标可以知道ssl证书何时过期。

三、参考链接

1、blackbox_exporter的下载地址
2、blackbox.yml的编写例子
3、blackbox.yml中可以编写的配置属性

相关文章

  • 【夜莺监控方案】09-监控服务主机存活和服务端口(ICMP/TC

    1. 安装 blackbox_exporter 创建 /opt/ blackbox_exporter目录 在/o...

  • blackbox_exporter的使用

    一、需求 有些时候,我们想监听服务器的某个端口是否存在,监听http的请求是否正确时,这个时候就可以使用 blac...

  • iconfont的使用(下载使用)

    1、下载文件 2、在生命周期中引入项目 beforeCreate () { var domModule = ...

  • Gson的使用--使用注解

    Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。 自定义字段的名...

  • 记录使用iframe的使用

    默认记录一下----可以说 这是我第一次使用iframe 之前都没有使用过; 使用方式: 自己开发就用了这几个属...

  • with的使用

    下面例子可以具体说明with如何工作: 运行代码,输出如下

  • this的使用

    什么是this? this是一个关键字,这个关键字总是返回一个对象;简单说,就是返回属性或方法“当前”所在的对象。...

  • this的使用

    JS中this调用有几种情况 一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象...

  • ==的使用

    积累日常遇到的编码规范,良好的编码习惯,持续更新。。。 日常使用==用于判断的时候,习惯性将比较值写前面,变量写后...

  • this的使用

    1.默认绑定,就是函数立即执行。 函数立即执行就是指向window,但是如果是node环境,就是指向全局conso...

网友评论

      本文标题:blackbox_exporter的使用

      本文链接:https://www.haomeiwen.com/subject/wsdncltx.html