• 原创-prometheus-k8s-Blackbox站点监控部署指南


    Blackbox黑盒程序是prometheus用于tcp,http,icmp等协议监控站点存活的工具。下面提供部署方法:

    ---

    configmap:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        app: blackbox-exporter
      name: blackbox-exporter
      namespace: xltest-lyz
    data:
      blackbox.yml: |-
        modules:
          http_2xx:
            prober: http
            timeout: 2s
            http:
              valid_http_versions: ["HTTP/1.1", "HTTP/2"]
              valid_status_codes: [200,301,302]
              method: GET
              preferred_ip_protocol: "ip4"
          tcp_connect:
            prober: tcp
            timeout: 2s
          http_403:
            prober: http
            timeout: 2s
            http:
              valid_http_versions: ["HTTP/1.1", "HTTP/2"]
              valid_status_codes: [403]
              method: GET
              preferred_ip_protocol: "ip4"
          https_403:
            prober: https
            timeout: 2s
            http:
              valid_http_versions: ["HTTP/1.1", "HTTP/2"]
              valid_status_codes: [403]
              method: GET
              preferred_ip_protocol: "ip4"
          tcp_connect:
            prober: tcp

    编辑blackbox的配置,我的配置包含了http_2xx,tcp,http和https的403规则。注意修改namespace。

    ---

    deplyoment.yaml

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: blackbox-exporter
      namespace: xltest-lyz
      labels:
        app: blackbox-exporter
      #annotations:
        #deployment.kubernetes.io/revision: 1
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: blackbox-exporter
      template:
        metadata:
          labels:
            app: blackbox-exporter
        spec:
          volumes:
          - name: config
            configMap:
              name: blackbox-exporter
              defaultMode: 420
          containers:
          - name: blackbox-exporter
            image: prom/blackbox-exporter:v0.16.0
            imagePullPolicy: IfNotPresent
            args:
            - --config.file=/etc/blackbox_exporter/blackbox.yml
            - --log.level=info
            - --web.listen-address=:9115
            ports:
            - name: blackbox-port
              containerPort: 9115
              protocol: TCP
            resources:
              limits:
                cpu: 200m
                memory: 256Mi
              requests:
                cpu: 100m
                memory: 50Mi
            volumeMounts:
            - name: config
              mountPath: /etc/blackbox_exporter
            readinessProbe:
              tcpSocket:
                port: 9115
              initialDelaySeconds: 5
              timeoutSeconds: 5
              periodSeconds: 10
              successThreshold: 1
              failureThreshold: 3

    注意修改namespace

    ---

    svc.yaml

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: "true"
        service.beta.kubernetes.io/alicloud-loadbalancer-id: 你的slb实例id
      labels:
        app: blackbox-exporter
      name: blackbox-exporter
      namespace: xltest-lyz
    spec:
      externalTrafficPolicy: Local
      ports:
      - name: balckbox
        port: 9115
        protocol: TCP
        targetPort: 9115
      selector:
        app: blackbox-exporter
      sessionAffinity: None
      type: LoadBalancer

    暴露balckbox程序到公网或私网,以便prometheus引用blackbox。

    ---

    三个yaml建立后,访问你的slb ip :9115端口即可显示blackbox页面,说明安装正常,同时blackbox也支持动态加载。

     ---

    接着编写你的prometheus抓取配置:

          - job_name: 'blackbox_tcp_80'
            scrape_interval: 45s
            metrics_path: /probe
            params:
              module: [tcp_connect]
            static_configs:
                - targets:
                  - www.baidu,com:80
            relabel_configs:
                - source_labels: [__address__]
                  target_label: __param_target
                - source_labels: [__param_target]
                  target_label: instance
                - target_label: __address__
                  replacement: balckbox暴露ip:9115

    添加你所需要监控的job,配置生效。

    即可看到promethues已监控到你的站点

     ---

    配置grafana,完成配置。

    可以使用这句语句来扩展

    饼图:count_values('value',probe_success{job="blackbox_tcp_443"})

    点状图:probe_success{job="blackbox_tcp_443"}

  • 相关阅读:
    为什么 "auto a = 1;" 在C语言中可以编译通过?
    谈谈duilib
    软工第一次作业
    数独_个人项目
    统计Github项目信息
    字符串中的匹配之递归
    软工第0次作业
    c++浅拷贝与深拷贝(LeetCode669)
    修改xcode初始生成代码
    树上处理的问题总结
  • 原文地址:https://www.cnblogs.com/normanlin/p/14505878.html
Copyright © 2020-2023  润新知