容器监控-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

发布了37 篇原创文章 · 获赞 20 · 访问量 3113

猜你喜欢

转载自blog.csdn.net/weixin_37546425/article/details/104475754
今日推荐