烟台高端网站建设,移动开发和网站开发,网站设计风格确认书,ae如何做视频模板下载网站文章目录 [toc]exporter 简介常用的 exporternode-exporter 实践创建 svc创建 daemonsetprometheus 配置服务发现 exporter 简介 随着 Prometheus 的流行#xff0c;很多系统都已经自带了用于 Prometheus 监控的接口#xff0c;例如 etcd、Kubernetes、CoreDNS 等#xff0c… 文章目录 [toc]exporter 简介常用的 exporternode-exporter 实践创建 svc创建 daemonsetprometheus 配置服务发现
exporter 简介 随着 Prometheus 的流行很多系统都已经自带了用于 Prometheus 监控的接口例如 etcd、Kubernetes、CoreDNS 等所以这些系统可以直接被 Prometheus 所监控。 但是有很多应用目前还没有提供用于 Prometheus 监控的接口一些出现的比 Prometheus 还要早的应用针对这这类应用Prometheus 提出了 Exporter 的解决方案。 Exporter 是需要独立部署的服务 Exporter 是 Prometheus 的指标数据收集组件。它负责从目标 Jobs 收集数据并把收集到的数据转换为 Prometheus 支持的时序数据格式。和传统的指标数据收集组件不同的是他只负责收集并不向 Server 端发送数据而是等待 Prometheus Server 主动抓取 常用的 exporter EXPORTERS AND INTEGRATIONS Elasticsearch exporterMySQL server exporterKafka exporterGluster exporterCeph exporterNode/system metrics exporterBlackbox exporterkube-state-metricscAdvisor
node-exporter 实践 node-exporter 用于采集类 *NIX 内核的硬件以及系统指标windows exporter 用于采集 windows 系统指标dcgm-exporter 用于采集 NVIDIA GPU 指标 同 Prometheus这里的 node-exporter 也是在 k8s 内部署的部署的 node-exporter 版本是 v1.8.0
创建 svc
---
apiVersion: v1
kind: Service
metadata:annotations:labels:app: node-exportername: node-exporter-svcnamespace: monitor
spec:clusterIP: Noneports:- name: httpport: 9100protocol: TCPselector:app: node-exportertype: ClusterIP创建 daemonset 要采集每个机器的指标所以采用 daemonset 的方式来部署保证有新增节点的时候会自动启动 node-exporter ---
apiVersion: apps/v1
kind: DaemonSet
metadata:annotations:labels:app: node-exportername: node-exporternamespace: monitor
spec:selector:matchLabels:app: node-exportertemplate:metadata:labels:app: node-exporterannotations:prometheus.io/port: 9100prometheus.io/scrape: trueprometheus.io/type: node_exporterspec:hostNetwork: truehostPID: truehostIPC: truecontainers:- name: node-exporterimage: prom/node-exporter:v1.8.0args:- --path.rootfs/rootfsports:- containerPort: 9100hostPort: 9100name: httpvolumeMounts:- mountPath: /rootfsname: rootvolumes:- hostPath:path: /name: rootprometheus 配置服务发现 因为之前的 prometheus 配置文件只简单的配置了 prometheus 自身的 target现在要增加一个关于 kubernetes 的服务发现这样如果后面有新增节点也会被加入到 promethus 内 kubernetes_sd_config global:scrape_interval: 30sevaluation_interval: 30sscrape_timeout: 10sexternal_labels:prometheus: monitor/k8s
rule_files:
- /etc/prometheus/rules/*.yml
scrape_configs:
- job_name: prometheusmetrics_path: /metricsstatic_configs:- targets: [prometheus-svc.monitor.svc.cluster.local:9090]- job_name: kubernetes-podskubernetes_sd_configs:- role: podrelabel_configs:- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]action: keepregex: true- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]action: replacetarget_label: __metrics_path__regex: (.)- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]action: replaceregex: ([^:])(?::\d)?;(\d)replacement: $1:$2target_label: __address__- action: labelmapregex: __meta_kubernetes_pod_label_(.)- source_labels: [__meta_kubernetes_namespace]action: replacetarget_label: kubernetes_namespace- source_labels: [__meta_kubernetes_pod_name]action: replacetarget_label: kubernetes_pod_name使用 reload 来刷新 prometheus 配置下面的 ip 和端口要换成自己环境的 curl -XPOST http://192.168.11.167:31090/-/reload再次查看 prometheus 的页面可以发现 target 里面增加了每个节点的 node-exporter 了