Prometheus(八)-网络嗅探-黑盒监控_blackbox_exporter-0

module:
- http_2xx
target:  
- baidu.com

metrics_path: /probe
static_configs:

  • targets:
    • 127.0.0.1:9115
  • job_name: prometheus_http2xx_probe
    params:
    module:
    • http_2xx
      target:
    • prometheus.io
      metrics_path: /probe
      static_configs:
    • targets:
      • 127.0.0.1:9115

假如我们有N个目标站点且都需要M种探测方式,那么Prometheus中将包含N \* M个采集任务,从配置管理的角度来说显然是不可接受的。


这里我们也可以采用Relabling的方式对这些配置进行简化,配置方式如下:



scrape_configs:

  • job_name: ‘blackbox’
    metrics_path: /probe
    params:
    module: [http_2xx]
    static_configs:
    • targets:
      • http://prometheus.io # Target to probe with http.
      • https://prometheus.io # Target to probe with https.
      • http://example.com:8080 # Target to probe with http on port 8080.
        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

http://127.0.0.1:9115/probe?module=http\_2xx&target=baidu.com


* 第1步,根据 `static_configs.targets` 实例的地址,写入 `__param_target` 标签中。`__param_<name>` 形式的标签表示,采集任务时会在请求目标地址中添加`<name>`参数的值,等同于params的设置;
* 第2步,获取 `__param_target`的值,并覆写到 `instance` 标签中;
* 第3步,覆写Target实例的\_\_address\_\_标签值为BlockBox Exporter实例的访问地址。


blackbox.yml



modules:
http_2xx:
prober: http
http_post_2xx:
prober: http
http:
method: POST
preferred_ip_protocol: “ip4”
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


example.yml



modules:
http_2xx_example:
prober: http
timeout: 5s
http:
valid_http_versions: [“HTTP/1.1”, “HTTP/2.0”]
valid_status_codes: [] # Defaults to 2xx
method: GET
headers:
Host: vhost.example.com
Accept-Language: en-US
Origin: example.com
no_follow_redirects: false
fail_if_ssl: false
fail_if_not_ssl: false
fail_if_body_matches_regexp:
- “Could not connect to database”
fail_if_body_not_matches_regexp:
- “Download the latest version here”
fail_if_header_matches: # Verifies that no cookies are set
- header: Set-Cookie
allow_missing: true
regexp: ‘.*’
fail_if_header_not_matches:
- header: Access-Control-Allow-Origin
regexp: ‘(*|example.com)’
tls_config:
insecure_skip_verify: false
preferred_ip_protocol: “ip4” # defaults to “ip6”
ip_protocol_fallback: false # no fallback to “ip6”
http_with_proxy:
prober: http
http:
proxy_url: “http://127.0.0.1:3128”
skip_resolve_phase_with_proxy: true
http_with_proxy_and_headers:
prober: http
http:
proxy_url: “http://127.0.0.1:3128”
proxy_connect_header:
Proxy-Authorization:
- Bearer token
http_post_2xx:
prober: http
timeout: 5s
http:
method: POST
headers:
Content-Type: application/json
body: ‘{}’
http_basic_auth_example:
prober: http
timeout: 5s
http:
method: POST
headers:
Host: “login.example.com”
basic_auth:
username: “username”
password: “mysecret”
http_custom_ca_example:
prober: http
http:
method: GET
tls_config:
ca_file: “/certs/my_cert.crt”
http_gzip:
prober: http
http:
method: GET
compression: gzip
http_gzip_with_accept_encoding:
prober: http
http:
method: GET
compression: gzip
headers:
Accept-Encoding: gzip
tls_connect:
prober: tcp
timeout: 5s
tcp:
tls: true
tcp_connect_example:
prober: tcp
timeout: 5s
imap_starttls:
prober: tcp
timeout: 5s
tcp:
query_response:
- expect: “OK.*STARTTLS”
- send: “. STARTTLS”
- expect: “OK”
- starttls: true
- send: “. capability”
- expect: “CAPABILITY IMAP4rev1”
smtp_starttls:
prober: tcp
timeout: 5s
tcp:
query_response:
- expect: “^220 ([^ ]+) ESMTP (.+)$”
- send: “EHLO prober\r”
- expect: “^250-STARTTLS”
- send: “STARTTLS\r”
- expect: “^220”
- starttls: true
- send: “EHLO prober\r”
- expect: “^250-AUTH”
- send: “QUIT\r”
irc_banner_example:
prober: tcp
timeout: 5s
tcp:
query_response:
- send: “NICK prober”
- send: “USER prober prober prober :prober”
- expect: “PING 😦[^ ]+)”
send: “PONG ${1}”
- expect: “:[ ]+ 001”
icmp_example:
prober: icmp
timeout: 5s
icmp:
preferred_ip_protocol: “ip4”
source_ip_address: “127.0.0.1”
dns_udp_example:
prober: dns
timeout: 5s
dns:
query_name: “www.prometheus.io”
query_type: “A”
valid_rcodes:
- NOERROR
validate_answer_rrs:
fail_if_matches_regexp:
- “.*127.0.0.1”
fail_if_all_match_regexp:
- “.*127.0.0.1”
fail_if_not_matches_regexp:
- “www.prometheus.io.\t300\tIN\tA\t127.0.0.1”
fail_if_none_matches_regexp:
- “127.0.0.1”
validate_authority_rrs:
fail_if_matches_regexp:
- “.*127.0.0.1”
validate_additional_rrs:
fail_if_matches_regexp:
- “.*127.0.0.1”
dns_soa:
prober: dns
dns:
query_name: “prometheus.io”
query_type: “SOA”
dns_tcp_example:
prober: dns
dns:
transport_protocol: “tcp” # defaults to “udp”
preferred_ip_protocol: “ip4” # defaults to “ip6”
query_name: “www.prometheus.io”


## Granfana







![img](https://img-blog.csdnimg.cn/img_convert/0d9cfaaec3d53a9f70c0f0eac5479302.png)
![img](https://img-blog.csdnimg.cn/img_convert/8f4278f538dc1c9f2493bc689cfdacdd.png)
![img](https://img-blog.csdnimg.cn/img_convert/94fe53f8b09cb2f4181c948b4bc1949e.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

Granfana

[外链图片转存中…(img-Y9e3kqsm-1725727503811)]
[外链图片转存中…(img-xNolMtf5-1725727503812)]
[外链图片转存中…(img-EKnf1Lyx-1725727503812)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值