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...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...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 接口,间接实现对这些应用的监控。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
2024-10-21 myluzh Kubernetes
0x01 关于 kube-prometheus kube-prometheus 通过集成 Prometheus、Grafana 和 Alertmanager,提供开箱即用的 Kubernetes 原生监控解决方案,简化了部署和维护过程,同时具备良好的可扩展性和社区支持。 kube-prometheus 仓库地址 https://github.com/prometheus-operator/kube-prometheus/ 0x02 下载 kube-prometheus 根据自己k8s集群版本兼容性,选择对应的kube-prometheus版本,我这边k8s集群版本是1.20,kube-prometheus支持的是release-0.8,关于k8s版本与kube-prometheus兼容性,可以在kube-prometheus仓库的README中查找。 root@test-k8s-master:~# git clone --single-branch --branch release-0.8 https://github.com/prometheus-operator/kube-prometh...标签: k8s k8s部署 kube-prometheus Prometheus Grafana Alertmanager