首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
30 篇文章
1
Prometheus配置企业微信告警
2
云原生监控配置自建alertmanager实现告警
3
K8S 中的 CPUThrottlingHigh 到底是个什么鬼?
4
Kubernetes集群安装kube-prometheus后无法执行kubectl top node
5
Prometheus Operator 使用 AlertmanagerConfig 进行报警配置
6
在 Grafana 中可视化 Alertmanager 报警
7
Prometheus Operator 常用指标
8
使用 Thanos 实现 Prometheus 的高可用
9
Kubenretes上运行Prometheus联邦集群
10
prometheus2.0 联邦的配置
11
Prometheus监控学习笔记之prometheus的远端存储
12
别再乱用 Prometheus 联邦了,分享一个 Prometheus 高可用新方案
13
使用prometheus监控多k8s集群
14
Kubernetes K8S之kube-prometheus概述与部署 Prometheus的关键特性架构图基本原理服务过程kube-prometheus下载与配置修
15
Prometheus BlackBox简单监控
16
如何使用Prometheus配置自定义告警规则
17
使用prometheus operator监控envoy
18
使用 Prometheus-Operator 监控 Calico
19
TKE 1.20.6搭建Kube-Prometheus(prometheus-oprator)
20
云原生监控通过blackbox_exporter监控网站
21
一文带你了解 Prometheus
22
使用 Thanos 和 Prometheus 打造一个高可用的 Kubernetes 监控系统
23
prometheus监控springboot应用
24
搭建prometheus+grafana监控SpringBoot应用入门
25
用prometheus监控java应用
26
Prometheus Operator 监控 Traefik V2.4
27
Prometheus指标优化
28
使用 Prometheus Operator 监控 Kubernetes
29
装X神器,让你的grafana看板变得炫酷起来
30
​prometheus中使用python手写webhook完成告警

云原生监控通过blackbox_exporter监控网站

有时候我们需要对主机存活,端口存活及网站状态进行检测下,看下我们的网站访问耗时是不是很长,你的监控系统是用的prometheus,那么我们可以部署blackbox_exporter来采集数据到prometheus,blackbox_exporter允许通过HTTP,HTTPS,DNS,TCP和ICMP对端点进行黑盒探测,由于我们的服务都是在腾讯云上,prometheus也是用的云上托管,叫做云原生监控,但是云原生监控并没有提供网站站点的监控,这里需要我们自己部署blackbox_exporter来进行采集。下面我们说说如何部署blackbox_exporter来监测我们的站点。

首先这里你要有云原生监控实例并且关联你的tke集群,这里就不细说云原生监控的创建和tke集群的部署使用了。我们直接说如何在tke部署blackbox_exporter,然后通过云原生监控来采集数据,最后在grafann里面通过dashboard来查看监控。

1. tke集群部署blackbox_exporter

首先我们配置下blackbox_exporter的启动配置

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app: blackbox-exporter
  name: blackbox-exporter
  namespace: monitor
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

然后部署下对应blackbox_exporter

代码语言:javascript
复制
kind: Deployment
apiVersion: apps/v1
metadata:
  name: blackbox-exporter
  namespace: monitor
  labels:
    app: blackbox-exporter
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

然后我们部署一个service提供给prometheus采集数据,由于prometheus部署的集群和tke集群不是在一个集群,但是是在一个vpc下,所以这里blackbox_exporter通过内网的LoadBalancer来暴露服务,我这里的service对应的内网lb的ip是10.0.0.178

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: blackbox-exporter
  namespace: monitor
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: blackbox-port
    nodePort: 31005
    port: 9115
    protocol: TCP
    targetPort: 9115
  selector:
    app: blackbox-exporter
  sessionAffinity: None
  type: LoadBalancer

到这里我们的blackbox_exporter就部署好了,下面我们来在prometheus里面配置下RawJobs采集blackbox_exporter的数据

2. 云原生监控配置RawJobs采集数据

进入云原生监控找到你关联集群,点击数据采集配置,然后再RawJobs里面新增一个jobs,job配置如下,如果需要监控多个站点可以配置多个job,也可以按照官方推荐配置

代码语言:javascript
复制
scrape_configs:
- job_name: blog-blackbox
  honor_timestamps: true
  params:
    module:
    - http_2xx
  metrics_path: /probe
  scheme: http
  static_configs:
  - targets:
    - https://www.niewx.cn/
    labels:
      domain: www.niewx.cn
      instance: https://www.niewx.cn/
      ip: githubpage
      port: "443"
      project: blog
      service: none
  - targets:
    - https://www.niewx.cn/mybook/
    labels:
      domain: www.niewx.cn
      instance: https://www.niewx.cn/mybook/
      ip: githubpage
      port: "443"
      project: mybook
      service: none
  relabel_configs:
  - source_labels: [__address__]
    separator: ;
    regex: (.*)
    target_label: __param_target
    replacement: $1
    action: replace
  - separator: ;
    regex: (.*)
    target_label: __address__
    replacement: blackbox-exporter.monitor.svc.cluster.local:9115
    action: replace
代码语言:javascript
复制
The blackbox exporter needs to be passed the target as a parameter, this can be done with relabelling.

Example config:

scrape_configs:
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [http_2xx]  # Look for a HTTP 200 response.
    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  # The blackbox exporter's real hostname:port.

点击配置完成后,在target里面显示up状态说明配置采集成功

3. grafana导入blackbox_exporter模板

我们登录云原生监控的grafana,然后在导入模板,这里模板为9965号

这里选择下我们配置的job

然后就可以查看我们的站点监控了

到这里我们用云原生监控开监控我们的站点就完成了,如果想了解更多Blackbox Exporter信息,可以参考github https://github.com/prometheus/blackbox_exporter,上面有更多实例和源码介绍

下一篇
举报
领券