apiVersion: v1

kind: Service

metadata:

 name: blackbox

 namespace: monitoring

spec:

 selector:

   app: blackbox

 ports:

 - name: blackboxport

   port: 9115

   targetPort: 9115

   nodePort: 30083

 type: NodePort

---

apiVersion: v1

kind: ConfigMap

metadata:

 name: blackbox-config

 namespace: monitoring

data:

 blackbox.yaml: |-

   modules:

     http_2xx:

       prober: http

       timeout: 10s

       http:

         valid_http_versions: ["HTTP/1.1", "HTTP/2"]

         valid_status_codes: [200]

         method: GET

         preferred_ip_protocol: "ip4"

     http_post_2xx:

       prober: http

       timeout: 10s

       http:

         valid_http_versions: ["HTTP/1.1", "HTTP/2"]

         valid_status_codes: [200]

         method: POST

         preferred_ip_protocol: "ip4"

     tcp_connect:

        prober: tcp

        timeout: 10s

     ping:

       prober: icmp

       timeout: 5s

       icmp:

         preferred_ip_protocol: "ip4"

     dns:

        prober: dns

        dns:

          transport_protocol: "tcp"

          preferred_ip_protocol: "ip4"

          query_name: "kubernetes.defalut.svc.cluster.local"

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: blackbox

 namespace: monitoring

spec:

 selector:

   matchLabels:

     app: blackbox

 template:

   metadata:

     labels:

       app: blackbox

   spec:

     containers:

     - name: blackbox

       image: prom/blackbox-exporter:v0.16.0

       args:

       - "--config.file=/etc/blackbox_exporter/blackbox.yaml"

       - "--log.level=error"

       ports:

       - containerPort: 9115

       volumeMounts:

       - name: config

         mountPath: /etc/blackbox_exporter

     volumes:

     - name: config

       configMap:

         name: blackbox-config


apiVersion: monitoring.coreos.com/v1

kind: Probe

metadata:

 name: ping

 namespace: monitoring

spec:

 jobName: ping-baidu # 任务名称

 prober: # 指定blackbox的地址

   url: 10.107.149.102:9115

 module: ping # 配置文件中的检测模块

 targets: # 目标(可以是static配置也可以是ingress配置)

   # ingress <Object>

   staticConfig: # 如果配置了 ingress,静态配置优先

     static:

       - https://www.baidu.com  #prometheus.io