使用Prometheus Operator監(jiān)控kubetnetes集群

發(fā)布時間:2024-02-26
云計算
一、簡介
prometheus
prometheus 是一個開源監(jiān)控系統(tǒng),它本身已經(jīng)成為了云原生中指標(biāo)監(jiān)控的事實標(biāo)準(zhǔn),幾乎所有 kubernetes 的核心組件以及其它云原生系統(tǒng)都以 prometheus 的指標(biāo)格式輸出自己的運(yùn)行時監(jiān)控信息。
主要特性:
使用指標(biāo)名稱及鍵值對標(biāo)識的多維度數(shù)據(jù)模型。
采用彈性查詢語言promql。
不依賴分布式存儲,為自治的單點服務(wù)。
使用http完成對監(jiān)控數(shù)據(jù)的拉取。
通過網(wǎng)關(guān)支持時序數(shù)據(jù)的推送。
支持多種圖形和dashboard的展示。
另外在prometheus的整個生態(tài)系統(tǒng)中有各種可選組件,用于功能的擴(kuò)充。
prometheus-operator
coreos提供了一種名為operator的管理工具,他是管理特定應(yīng)用程序的控制器。通過擴(kuò)展kubernetes api以軟件的方式幫助用戶創(chuàng)建、配置和管理復(fù)雜的或又狀態(tài)的應(yīng)用程序?qū)嵗ㄈ鏴tcd、redis、mysql、prometheus等)。
它通過kubernetes的crd(custom resource definition,自定義資源定義)對prometheus和prometheus需要監(jiān)控的服務(wù)進(jìn)行部署和配置。
prometheus-operator使用下面兩種資源來配置prometheus及其要監(jiān)控的服務(wù)。
prometheus:為prometheus的deployment。
servicemonitor:用于描述prometheus監(jiān)控的服務(wù)。
首先我們先來了解下 prometheus-operator 的架構(gòu)圖:
上圖是 prometheus-operator 官方提供的架構(gòu)圖,其中 operator 是最核心的部分,作為一個控制器,他會去創(chuàng)建 prometheus 、 servicemonitor 、 alertmanager 以及 prometheusrule 4個 crd 資源對象,然后會一直監(jiān)控并維持這4個資源對象的狀態(tài)。
其中創(chuàng)建的 prometheus 這種資源對象就是作為 prometheus server 存在,而 servicemonitor 就是 exporter 的各種抽象, exporter是用來提供專門提供 metrics 數(shù)據(jù)接口的工具, prometheus 就是通過 servicemonitor 提供的 metrics 數(shù)據(jù)接口去 pull 數(shù)據(jù)的。
當(dāng)然 alertmanager 這種資源對象就是對應(yīng)的 alertmanager 的抽象,而 prometheusrule 是用來被 prometheus 實例使用的報警規(guī)則文件。
二、說明
本文檔基于prometheus operator對prometheus監(jiān)控系統(tǒng)而進(jìn)行,完整的配置文件請參考https://github.com/coreos/prometheus-operator
本文使用的k8s集群是基于kubeadm搭建的,具體搭建的詳細(xì)請參考https://blog.51cto.com/billy98/2350660
三、部署
1. 環(huán)境準(zhǔn)備
配置prometheus-operator之前需要先準(zhǔn)備以下幾個環(huán)境:
helm環(huán)境:請參考https://blog.51cto.com/billy98/2338415
gluster-heketi環(huán)境:因為prometheus和alertmanager都是有狀態(tài)的statefulsets集群,所以需要使用到公共存儲。請參考https://blog.51cto.com/billy98/2337874
ingress環(huán)境:請參考https://blog.51cto.com/billy98/2337874
2. 配置域名解析
將alert.cnlinux.club、grafana.cnlinux.club、prom.cnlinux.club三個域名的a記錄解析到負(fù)責(zé)均衡的ip10.31.90.200。
3. 修改scheduler、controller-manager監(jiān)聽地址
修改/etc/kubernetes/manifests/ 目錄下kube-controller-manager.yaml和kube-scheduler.yaml
將監(jiān)聽地址改成--address=0.0.0.0,重啟kubelet服務(wù)
systemctl restart kubelet.service 4. 創(chuàng)建namespace
kubectl create ns monitoring5. 創(chuàng)建secret
因為etcd是使用https訪問的,所以prometheus的容器中也必須要etcd的證書去監(jiān)控etcd集群,創(chuàng)建secret就是將證書掛載到prometheus容器中,后續(xù)還需要在prometheus-operator的配置文件中使用此secret。
kubectl -n monitoring create secret generic etcd-certs --from-file=/etc/kubernetes/pki/etcd/healthcheck-clien t.crt --from-file=/etc/kubernetes/pki/etcd/healthcheck-client.key --from-file=/etc/kubernetes/pki/etcd/ca.crt 6. 配置prometheus-operator
1)首先使用helm下載prometheus-operator文件包。
helm fetch stable/prometheus-operator2)解壓下載的壓縮包
tar zxf prometheus-operator-1.8.0.tgz并修改prometheus-operator目錄下的values.yaml。
具體修改的配置如下(配置過多,其他未修改的就不再展示了):
nameoverride: palertmanager: ingress: enabled: true annotations: kubernetes.io/ingress.class: nginx labels: {} hosts: - alert.cnlinux.club tls: [] alertmanagerspec: storage: volumeclaimtemplate: spec: storageclassname: gluster-heketi accessmodes: [readwriteonce] resources: requests: storage: 20gi selector: {}grafana: enabled: true admin #grafana登錄密碼 ingress: enabled: true annotations: kubernetes.io/ingress.class: nginx labels: {} hosts: - grafana.cnlinux.clubkubeapiserver: enabled: true tlsconfig: servername: kubernetes insecureskipverify: true servicemonitor: joblabel: component selector: matchlabels: component: apiserver provider: kuberneteskubelet: enabled: true namespace: kube-system servicemonitor: https: truekubecontrollermanager: enabled: true endpoints: [] service: port: 10252 targetport: 10252 selector: component: kube-controller-managercoredns: enabled: true service: port: 9153 targetport: 9153 selector: k8s-app: kube-dnskubeetcd: enabled: true endpoints: [] service: port: 2379 targetport: 2379 selector: component: etcd servicemonitor: scheme: https insecureskipverify: false servername: cafile: /etc/prometheus/secrets/etcd-certs/
上一個:小額高利貸會被拘留嗎
下一個:共享云服務(wù)器怎么樣

銀脈花
防水防滑浴室地板的設(shè)計原則要點有哪些?
承重墻拆除加固的方法是什么?
什么硬盤不怕摔,什么牌子的手機(jī)不怕摔
蘋果手機(jī)打電話對方聽不到聲音咋回事兒(蘋果手機(jī)打電話對方聽不到聲音怎么辦)
香蕉貯藏過程黑腐病防治
電腦中安裝Adobe軟件時提示該程序已安裝的最佳解決方案
個人貧困證明怎么開
電線電纜熱延伸試驗儀參數(shù)設(shè)定和計算
華為手機(jī)怎么去掉主題,華為主題怎么設(shè)置
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos