使用prometheus監控canal的方法官方文件上已經介紹的很詳細了,這裡主要是介紹一下在k8s環境下,prometheus通過pod的服務發現,自動新增對新增的canal-server例項的監控
canal-server的容器化教程在前面文章中已經詳細介紹過了,有興趣的可以看一下。
k8s環境搭建canal-server
主要關注當時canal-server建立的yaml中的以下配置
spec:
selector:
matchlabels:
servicename: "canal-server-discovery-svc-stable"
replicas: 4
# 下面就是讓prometheus監控的配置資訊
template:
metadata:
labels:
# 向prometheus暴露監控介面
annotations:
#監控位址
prometheus.io/path: /
#監控埠
prometheus.io/port: "11112"
#允許prometheus抓取
prometheus.io/scrape: "true"
設定prometheus的pod服務發現,prometheus的配置檔案中新增此項抓取任務(要求prometheus也是在k8s環境下搭建,這部分後續也會出相關文件,感興趣可以持續關注)
# 該項配置會將k8s集群下所有向prometheus暴露監控介面的pod的監控資訊都抓取過來
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name
這樣在k8s集群下新增的canal-server例項就能自動被prometheus發現並抓取資料了,grafana上也會自動新增相關資訊的監控哦!
K8s集群環境搭建 K8s安裝(2)
k8s集群環境搭建 基礎環境配置 1 k8s集群環境搭建 k8s安裝 2 k8s集群環境搭建 安裝keepalived和haproxy 3 k8s集群環境搭建 k8s集群初始化 4 k8s集群環境搭建 安裝metrics和dashboard 5 一 安裝docker 所有節點 檢視docker版本有...
K8S 環境變數
建立 pod 時,可以為其下的容器設定環境變數。通過配置檔案的env或者envfrom欄位來設定環境變數。本示例中,將建立乙個只包含單個容器的 pod。pod 的配置檔案中設定環境變數的名稱為demo greeting,其值為 hello from the environment 下面是 pod 的...
k8s本地環境搭建
提前安裝docker,學習使用絕大部分的場景使用的是docker驅動,而且k8s學習與docker相一致。不要使用docker desktop for mac windows 中的 k8s,其安裝配置在國內 因為網路問題 是乙個天坑,浪費時間生命,還會搞的docker下一堆映象和容器,影響docke...