容器監控-Prometheus:5. 監控落地 - 指標完善、Grafana看板和郵件報警(中)

容器監控-Prometheus:5. 監控落地 - 指標完善、Grafana看板和郵件報警(中)


續 監控落地 - 指標完善、Grafana看板和郵件報警(上)

訪問prometheus

  1. 我們先查看一下prometheus的service

image-20200205143638381

image-20200205143954986

service端口爲9090,端口的名字叫web

image-20200205144018340
  1. 定義ingress 訪問

serviceName: 對應prometheus的service

ingress-prometheus.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: prometheus
  namespace: monitoring
spec:
  rules:
  - host: prometheus.mooc.com
    http:
      paths:
      - backend:
          serviceName: imooc-prom-prometheus-oper-prometheus 
          servicePort: web
        path: /

創建一下

➜  ~ kubectl apply -f ingress-prometheus.yaml
  1. 配置host

    192.168.181.102 prometheus.mooc.com
    
  2. 訪問

    image-20200205144945748

選擇指標查看

image-20200205145031504

執行查看

image-20200205145238978

點擊graph 可用看到數據的變化

image-20200205145345531

Targets 展現prometheus所有pull的Endpoint

image-20200205145447816

image-20200205145554362

Controller-manager和etcd scheduler沒有發現,因爲我們是通過二進制部署的不能通過kubernetes api找到。後期會把他們加上去。

image-20200205150025594

把Controller-manager和etcd scheduler讓prometheus發現

我來到prometheus-operator 文件內,vi values.yaml,所有組件發現配置都在這個values.yaml裏面

➜  ~ cd prometheus-operator/
➜  ~ vi values.yaml

Controller-manager

找到 Controller-manager,紅框的解釋:當我們部署的Controller-manager不是以pod運行的時候,可以指定IP列表

image-20200205150810353

修改成Controller-manager部署的IP

image-20200205151024539

然後註釋掉seletor,

當我們沒配置endpoints IP列表的時候它根據label 自動匹配具體的endpoints,手動指定就不需要自動匹配了。

image-20200205151127352

然後把https改成true,因爲我們的Controller-manager通過https運行的。

image-20200205151444946

不確定可以看下Controller-manager.service

image-20200205151544194

etcd

同樣endpoints手動指定etcd 運行IP,註釋掉seletor

image-20200205152148568

Scheme改成https

image-20200205152232917

改https之後需要指定一個證書

  1. 創建一個可以訪問etcd 的secert

    用之前的證書去生成secert

image-20200205152758731
➜  ~ kubectl create secert generic etcd-certs -n monitoring --from-file=/etc/kubernetes/pki/ca.pem  --from-file=/etc/kubernetes/pki/etcd-key.pem --from-file=/etc/kubernetes/pki/etcd.pem

查看一下

➜  ~ kubectl get  secert  -n monitoring etcd-certs  -o yaml
  1. 回到value.yaml,配置上證書

image-20200205153305675

  1. 給你prometheus配置secert

    注意secert必須跟prometheus在統一命令空間下

    image-20200205153545396

scheduler

同樣

image-20200205153817275

看一下是否https 方式

image-20200205153904225

並沒有說是https,順便改一下監聽IP,改成對外IP

image-20200205154003998image-20200205154037424

image-20200205154003998image-20200205154037424

確認一下是否http

image-20200205154148970

沒問題

修改kubelet 端口

修改成只讀端口10255

image-20200205154358471

image-20200205154445848

來到values.yaml,把 https改成false ,不需要修改端口,自動根據https 方式修改端口

image-20200205154545270

來提一句如果你不想對某個組件做監控enabled改成false就可以。

image-20200205154801773

升級prometheus配置

全部都修改完了我們必須要通過helm升級一下

➜  ~ helm upgrede imooc-prom ./prometheus-operator/ -f ./prometheus-operator/values.yaml

如果遇到以下錯誤,就直接把他們全部刪除,同樣刪除crd 然後重新安裝一遍

image-20200205155207579

➜  ~ helm delete imooc-prom --purge
➜  ~ kubectl delete crd $(kubectl get crd|grep coreos|awk'{pring $1}')
➜  ~ helm install ./prometheus-operator/ --name imooc-prom --namespace monitoring

在查看一下 其他的都可以了發現這個Controller-manager.service有問題

image-20200205160007858

去修改一下綁定地址爲主機IP就可以,當然你可以爲了安全放棄這個監控

image-20200205160325240

image-20200205160202909

image-20200205160257707

可以了

image-20200205160355376

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章