blackbox-exporter使用
blackbox-exporter是Prometheus 官方提供的 exporter 之一,主要提供http、dns、tcp、icmp 的监控数据采集
一、部署
通过docker-compose部署
version: '2' services: blackbox_exporter: container_name: blackbox_exporter image: xxxx/blackbox-exporter volumes: - blackbox_exporter/config.yml:/etc/blackbox_exporter/config.yml ports: - 9115:9115
modules: http_2xx: prober: http http_header_2xx: prober: http http: method: GET headers: Content-Type: application/json#可添加header 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配置
- job_name: 'telnet' scrape_interval: 45s metrics_path: /probe params: module: [tcp_connect] # Look for a HTTP 200 response. file_sd_configs: - files: - ./blackbox/*.yml refresh_interval: 10s relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 - job_name: 'ping' scrape_interval: 10s metrics_path: /probe params: module: [icmp] # Look for a HTTP 200 response. file_sd_configs: - files: - ./ping/*.yaml refresh_interval: 10s relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target,idc,isp] separator: _ target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 - job_name: 'http_status' scrape_interval: 45s metrics_path: /probe params: module: [http_2xx] # Look for a HTTP 200 response. file_sd_configs: - files: - ./http_status/*.yml refresh_interval: 10s relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 - job_name: 'http_status_header' scrape_interval: 45s metrics_path: /probe params: module: [http_header_2xx] # Look for a HTTP 200 response. file_sd_configs: - files: - ./http_status_header/*.yml refresh_interval: 10s relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115