Myluzh Blog

Prometheus blackbox-exporter自定义User-Agent

2024-10-29 myluzh Kubernetes

0x01 前言 在使用blackbox-exporter进行黑盒监控地址的时候,请求的URL被WAF拦截下来了,原因是blackbox-exporter请求时候UA太像扫描器了,"User-Agent: Go-http-client/1.1",导致被waf拦截了请直接返回403,实际状态码应该是200。 可以修改blackbox-exporter的请求UA,然后在waf上放行UA白名单。 0x02 修改blackbox-exporter请求的UA 1. 找到配置文件 blackbox-exporter 的配置文件通常名为 config.yml,可以在安装目录下找到。该文件定义了不同的探测模块及其相关参数。 2. 编辑配置文件 使用文本编辑器打开 config.yml 文件。您需要找到或添加 modules 部分,然后在其中定义 http_2xx 模块的配置。 3. 修改 http_2xx 模块的配置 在 http_2xx 模块中,您可以添加或修改 http 请求的 headers 字段,以设置自定义的 User-Agent。以下是修改后的示例配置: "modules": "http_2xx": "http"...

阅读全文>>

标签: waf Prometheus blackbox-exporter user-agent ua

评论(0) (171)

Prometheus Blackbox(黑盒监控)

2024-10-28 myluzh Kubernetes

0x00 前言 白盒监控:主要通过应用程序内部的指标(如 Prometheus 的 /metrics 接口)监测系统性能,提供深入的技术洞察。 黑盒监控:主要通过 HTTP 请求、TCP 测试等外部监控手段获取数据,关注系统外部行为和功能,往往不需要访问应用程序的内部结构。 --- 通过kube-prometheus方式部署,默认就有blackbox-exporter,如果没有的话手动部署下。 0x01 手动部署 blackbox_exporter github地址:https://github.com/prometheus/blackbox_exporter 下面的 blackbox.yml 也可以直接下载下来导入 # curl -o blackbox.yml https://raw.githubusercontent.com/prometheus/blackbox_exporter/master/blackbox.yml # kubectl get configmap blackbox-exporter-config --namespace=monitoring apiVersion: apps/v1 kind: De...

阅读全文>>

标签: Prometheus blackbox additional 监控 黑盒监控 白盒监控 指标监控

评论(0) (222)

K8S kube-prometheus监控etcd

2024-10-24 myluzh Kubernetes

0x01 关于 etcd 双向认证及数据获取 etcd 通常通过 SSL 双向认证来确保通信的安全性。因此,使用 curl 请求 etcd 的 metrics 数据时,需要提供客户端证书和私钥,否则会出现认证错误。 直接通过 curl -k https://172.30.233.87:2379/metrics 来获取 etcd 的 metrics 数据时,可能会遇到以下错误: curl: (35) error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate 这是因为 etcd 启用了 SSL 双向认证,服务端要求客户端提供有效的证书和私钥进行身份验证。 解决方案: 在 curl 请求中携带正确的客户端证书、私钥以及(可选)CA 根证书。具体步骤如下: curl --cert /etc/kubernetes/ssl/kube-etcd-172-30-233-87.pem \ --key /etc/kubernetes/ssl/kube-etcd-172-30-233-87-key.pem \ --cacer...

阅读全文>>

标签: ssl service Prometheus etcd 2379 monitoring 有metrics接口

评论(0) (102)

关于Prometheus的ServiceMonitor监控服务的两种情况(有无metrics接口)

2024-10-23 myluzh Kubernetes

在云原生环境中,Prometheus 常用于监控应用状态。应用程序是否自带 /metrics 接口决定了监控方式的不同。 情况一:应用自带 /metrics 接口 对于一些云原生应用(如 Kubernetes、etcd 等),通常自带 /metrics 接口,可以直接暴露监控数据。Prometheus 通过配置 ServiceMonitor,直接调用应用的 /metrics 接口来收集监控数据,配置过程简单,直接与应用对接即可。 情况二:应用没有 /metrics 接口 对于传统应用或不支持 Prometheus 的应用,需要借助 Exporter。Exporter 作为中间层,从应用中收集监控数据,转换为 Prometheus 能识别的格式,并通过自身的 /metrics 接口暴露数据。例如,node-exporter 用于监控系统资源,mysql-exporter 用于监控 MySQL 数据库。Prometheus 通过监控 Exporter 的 /metrics 接口,间接实现对这些应用的监控。

阅读全文>>

标签: Prometheus ServiceMonitor metrics

评论(0) (83)

K8S部署Nexus3 & 重置Nexus3密码

2024-10-23 myluzh Kubernetes

0x01 部署yaml apiVersion: apps/v1 kind: Deployment metadata: name: nexus3 namespace: base-ops spec: replicas: 1 selector: matchLabels: workload.user.cattle.io/workloadselector: deployment-base-ops-nexus3 strategy: type: Recreate template: metadata: labels: workload.user.cattle.io/workloadselector: deployment-base-ops-nexus3 spec: containers: - name: nexus3 image: sonatype/nexus3:3.37.3 imagePullPolicy: IfNotPresent ...

阅读全文>>

标签: k8s java 部署 k8s部署 nexus nexus3

评论(0) (103)

PromQL基础语法与函数

2024-10-22 myluzh Kubernetes

0x01 瞬时向量与区间向量 瞬时向量:表示单一时间点的数据,例如当前的 HTTP 请求总数。 # 查询 http_request_total # 结果 http_request_total{container="grafana", endpoint="http", handler="/", instance="10.42.0.170:3000", job="grafana", method="get", namespace="monitoring", pod="grafana-6bc86f4fc-m6n66", service="grafana", statuscode="200"} 4 区间向量:表示在一段时间内的多个样本,例如过去 5 分钟的请求总数。 # 查询 http_request_total[5m] # 结果 http_request_total{container="grafana", endpoint="http", handler="/", instance="10.42.0.170:3000", job="grafana", method="get", namespace="m...

阅读全文>>

标签: Prometheus PromQL TSDB

评论(0) (92)