zoukankan      html  css  js  c++  java
  • 原创-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"}

  • 相关阅读:
    sql的优化
    使用Robo 3T访问MongoDB数据库
    在IDEA中用三个jar包链接MongoDB数据库——实现增删改查
    使用Robo 3T操作MongoDB数据库
    MongoDB 创建数据库
    mysql本地中127.0.0.1连接不上数据库怎么办
    IDEA-Maven的Dependencies中出现红色波浪线
    log4j2+slf4j+junit
    fastxml Jackson annotation使用小记
    我理解的互联网技术领域
  • 原文地址:https://www.cnblogs.com/normanlin/p/14505878.html
Copyright © 2011-2022 走看看