天天看點

k8s部署-54-如何完善k8s中Prometheus(普羅米修斯)監控項目呢?本文帶你了解

我們現在已經搭建好prometheus(普羅米修斯)監控了,那麼是不是Prometheus中有些參數需要調整修改呢?預設都是正确的嗎?我們接下來看看。

1、檢視監控内容

浏覽器登入我們的​

​prometheus​

​(普羅米修斯)監控系統;

http://prometheus.yunweijia.com      

然後點選​

​status​

​​中的​

​Targets​

​菜單,顯示如下圖;

k8s部署-54-如何完善k8s中Prometheus(普羅米修斯)監控項目呢?本文帶你了解

然後我們可看到有些是不可以監控到的,比如​

​k8s​

​​中的一些元件​

​controller-manager​

​​、​

​etcd​

​​等都無法檢測到,當然了,無法檢測到是因為我們的安裝方式是二進制,如果是别的​

​kubespary​

​​,亦或者是​

​kubeadm​

​的方式,就不會存在這些問題了,那麼我們也是需要解決這個問題的,看看如何解決吧。

k8s部署-54-如何完善k8s中Prometheus(普羅米修斯)監控項目呢?本文帶你了解

2、​

​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” 檢視。