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-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 ...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
2024-9-14 myluzh Kubernetes
0x01 部署Kibana 1、编写yaml文件 apiVersion: v1 kind: Service metadata: name: kibana namespace: elastic-worker labels: k8s-app: kibana kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile kubernetes.io/name: "Kibana" srv: srv-kibana spec: type: NodePort ports: - port: 5601 nodePort: 30000 protocol: TCP targetPort: ui selector: k8s-app: kibana --- apiVersion: apps/v1 kind: Deployment metadata: name: kibana namespace: elastic-worker ...2024-9-14 myluzh Kubernetes
0x00 制作带有证书的镜像 基于 Elasticsearch 的官方镜像创建一个新的自定义镜像,将证书文件包含在内。 1、生成证书 # 创建一个es-temp容器,生成elastic-certificates.p12 docker run -it --name es-temp elasticsearch:7.17.24 bash -c "bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass '' && ls -l config/elastic-certificates.p12" # 把es-temp里面的elastic-certificates.p12复制到本地来 docker cp es-temp:/usr/share/elasticsearch/config/elastic-certificates.p12 ./elastic-certificates.p12 2、构建镜像 FROM elasticsearch:7.17.24 LABEL maintainer="myluzh <...