我們現在已經搭建好prometheus(普羅米修斯)監控了,那麼是不是Prometheus中有些參數需要調整修改呢?預設都是正确的嗎?我們接下來看看。
1、檢視監控内容
浏覽器登入我們的
prometheus
(普羅米修斯)監控系統;
http://prometheus.yunweijia.com
然後點選
status
中的
Targets
菜單,顯示如下圖;

然後我們可看到有些是不可以監控到的,比如
k8s
中的一些元件
controller-manager
、
etcd
等都無法檢測到,當然了,無法檢測到是因為我們的安裝方式是二進制,如果是别的
kubespary
,亦或者是
kubeadm
的方式,就不會存在這些問題了,那麼我們也是需要解決這個問題的,看看如何解決吧。
2、 Prometheus
監控二進制安裝 k8s
的一些元件
Prometheus
k8s
(1)prometheus監控controller-manager的修改
[root@node1 ~]# cd prometheus-operator/
[root@node1 prometheus-operator]# ls
charts Chart.yaml ci CONTRIBUTING.md crds hack README.md requirements.lock requirements.yaml templates values.yaml
[root@node1 prometheus-operator]# vim values.yaml
# 搜尋 kubeControllerManager 字樣,我的在 758 行
# 修改成如下資訊
kubeControllerManager:
enabled: true
endpoints:
- 192.168.112.130 # 這裡進行了修改,寫上了我們兩個master的主節點
- 192.168.112.131
https: false # 配置成https的請求方式
[root@node1 prometheus-operator]#
(2)prometheus監控etcd的修改
監控
etcd
的話,需要通過
https
的方式,那麼我們需要實作做一些準備工作,比如建立一個
secret
并聲明證書之類的;
首先我們看下證書所在位置;
[root@node1 ~]# ls /etc/etcd/
ca.pem kubernetes-key.pem kubernetes.pem
[root@node1 ~]#
建立一個
secret
;
[root@node1 ~]# kubectl create secret generic etcd-certs --from-file=/etc/etcd/ca.pem --from-file=/etc/etcd/kubernetes-key.pem --from-file=/etc/etcd/kubernetes.pem
secret/etcd-certs created
[root@node1 ~]#
檢視一個該
secret
的
yaml
檔案,确認是否無誤;
[root@node1 ~]# kubectl get secret etcd-certs -o yaml
apiVersion: v1
data:
ca.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR4RENDQXF5Z0F3SUJBZ0lVZUJ0Wi93ZzUwUzYvN0l6eUFmTmpDOHNxSktNd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2FERUxNQWtHQTFVRUJoTUNWVk14RHpBTkJnTlZCQWdUQms5eVpXZHZiakVSTUE4R0ExVUVCeE1JVUc5eQpkR3hoYm1ReEV6QVJCZ05WQkFvVENrdDFZbVZ5Ym1WMFpYTXhDekFKQmdOVkJBc1
# ---省略部分展現---
# ---省略部分展現---
# ---省略部分展現---
manager: kubectl-create
operation: Update
time: "2022-05-04T15:16:57Z"
name: etcd-certs
namespace: default
resourceVersion: "814232"
selfLink: /api/v1/namespaces/default/secrets/etcd-certs
uid: e414a5ef-2e7a-4ffb-bdcd-d02daecb4482
type: Opaque
[root@node1 ~]#
從上面看,應該沒有什麼問題哈;
修改監控項;
[root@node1 ~]# cd prometheus-operator/
[root@node1 prometheus-operator]# vim values.yaml
# 搜尋 kubeEtcd 字樣,我的在891行
kubeEtcd:
enabled: true
endpoints:
- 192.168.110.130 # 将三個etcd節點的IP位址,配置上
- 192.168.110.131
- 192.168.110.132
serviceMonitor:
interval: ""
scheme: https # 通路方式改成 http
insecureSkipVerify: false
serverName: ""
# 以下檔案的存放位置為 /etc/prometheus/secrets/ + 上面建立的secret的名字 + 具體證書名字
caFile: "/etc/prometheus/secrets/etcd-certs/ca.pem" # 指定ca
certFile: "/etc/prometheus/secrets/etcd-certs/kubernetes.pem" # 指定cert
keyFile: "/etc/prometheus/secrets/etcd-certs/kubernetes-key.pem" # 指定key
# 搜尋 prometheus 字樣,在這個配置段落中找一個 secrets:[],我的在 1675 行左右
secrets:
- etcd-certs # 這裡添加上我們上面建立的 secret 的名字
[root@node1 prometheus-operator]#
(3)prometheus監控Scheduler的修改
修改
Scheduler
的端口号和綁定IP;
# 需要注意,我們有兩個節點,都需要進行修改哈
[root@node1 ~]# vim /etc/systemd/system/kube-scheduler.service
# 兩個參數修改如下
--bind-address=0.0.0.0 \
--port=10251 \
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart kube-scheduler
修改監控項;
[root@node1 prometheus-operator]# vim values.yaml
# 搜尋 kubeScheduler 字樣,我的在951行
kubeScheduler:
enabled: true
endpoints:
- 192.168.112.130 # 添加Scheduler的IP位址
- 192.168.112.131
[root@node1 prometheus-operator]#
(4)prometheus監控kube-proxy的修改
由于我們沒有使用
kube-proxy
,是以我們隻需要把他關閉監控即可;
剩餘内容請轉至VX公衆号 “運維家” ,回複 “160” 檢視。