- Exporter交付
- 通过Pod对应的ClusterIP查看状态
# curl 10.244.5.185:8080/healthz
ok - ">页面效果

- Prometheus交付
]# curl https://localhost:2379/metrics -k —cert /etc/kubernetes/pki/etcd/server.crt —key /etc/kubernetes/pki/etcd/server.key
]# rsync -avr /etc/kubernetes/pki/etcd/server.* /data/nfs-volume/prometheus/etc/">查看etcd所使用到的证书
]# kubectl get pods -A|grep etcd
]# kubectl describe pods etcd-master1 -n kube-system
]# curl https://localhost:2379/metrics -k —cert /etc/kubernetes/pki/etcd/server.crt —key /etc/kubernetes/pki/etcd/server.key
]# rsync -avr /etc/kubernetes/pki/etcd/server.* /data/nfs-volume/prometheus/etc/- 证书加权限,不然后续启动服务时服务没有权限读取证书会报错
[root@master3 /data/nfs-volume/prometheus/etc]# chmod 777 server*
[root@master3 /data/nfs-volume/prometheus/etc]# lsprometheus.yml rules.yml server.crt server.key - https://gitee.com/crabluo/K8sFiles/tree/master/monitor/prometheus
#镜像修改
prom/prometheus:v2.14.0
#文件应用
kubectl apply -f .">文件地址
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/prometheus
#镜像修改
prom/prometheus:v2.14.0
#文件应用
kubectl apply -f . - https://www.yuque.com/crabluo/k8s/zdl28a#ouF85">地址解析
服务对应解析域名:prometheus.od.com
域名具体配置方式请参考:https://www.yuque.com/crabluo/k8s/zdl28a#ouF85 - ">页面查看

- 监控类目配置
#Prometheus配置文件对应的traefik配置
#traefik Pod对应的deploy.yaml文件中添加对应的注解">因为Prometheus配置文件中配置了traefik的监控项,故默认有traefik监控项
#Prometheus配置文件对应的traefik配置
#traefik Pod对应的deploy.yaml文件中添加对应的注解
#更新deploy.yaml后,pod自动重建,查看监控,traefik监控项已匹配到数据点
">具体添加的位置请看下图
#更新deploy.yaml后,pod自动重建,查看监控,traefik监控项已匹配到数据点
- dubbo-service是tcp类型,故添加如下注释
tcp - dubbo-service是http类型,故添加如下注释
http - ">添加了注解后,JMX对应的面板才能匹配到数据并进行采集

- Grafana交付
- https://www.yuque.com/crabluo/k8s/zdl28a#ouF85">地址解析
服务对应解析域名:grafana.od.com
域名具体配置方式请参考:https://www.yuque.com/crabluo/k8s/zdl28a#ouF85 - ">页面效果

- Alertmanager交付
Exporter交付
kube-state-metric
#作用
收集k8s基础状态信息。
#镜像交付
docker pull quay.io/coreos/kube-state-metrics:v1.5.0
docker tag 91599517197a harbor.od.com/public/kube-state-metrics:v1.5.0
docker push harbor.od.com/public/kube-state-metrics:v1.5.0
#资源清单
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/kube-state-metrics
#资源应用
kubectl apply -f .
#服务验证
# kubectl get pods -A -o wide|grep state-metrics
kube-system kube-state-metrics-b86644fd8-gqj8q 1/1 Running 0 27s 10.244.5.185 node2
通过Pod对应的ClusterIP查看状态
# curl 10.244.5.185:8080/healthz
ok
node-exporter
#作用
收集运算节点的资源信息。
#镜像交付
docker pull prom/node-exporter:v0.15.0
docker tag 12d51ffa2b22 harbor.od.com/publich/node-exporter:v0.15.0
docker push harbor.od.com/publich/node-exporter:v0.15.0
#资源清单
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/node-exporter
#资源应用
kubectl apply -f .
#服务验证
#在node节点上查看,能看到一大串数据信息
# curl localhost:9100/metrics
cadvisor
#作用
收集容器消耗的系统资源。
#镜像交付
docker pull google/cadvisor:v0.28.3
docker tag 75f88e3ec333 harbor.od.com/public/cadvisor:v0.28.3
docker push harbor.od.com/public/cadvisor:v0.28.3
#资源清单
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/cadvisor
#内容说明
集群中master节点默认有污点信息,cadvisor要运行在master节点上收集信息,要添加容忍度
#资源应用
kubectl apply -f .
#服务验证
]# kubectl get pods -A -o wide|grep ca
blackbox-exporter
#作用
探明业务容器是否存活。
#镜像交付
docker pull prom/node-exporter:v0.15.0
docker tag 81b70b6158be harbor.od.com/public/blackbox-exporter:v0.15.1
docker push harbor.od.com/public/blackbox-exporter:v0.15.1
#资源清单
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/blackbox-exporter
#资源应用
kubectl apply -f .
#服务验证
#地址解析
服务对应解析域名:http://blackbox.od.com/
域名具体配置方式请参考:https://www.yuque.com/crabluo/k8s/zdl28a#ouF85
页面效果

Prometheus交付
依赖NFS环境实现
因deployment资源中所使用的存储为NFS,故需要配置NFS环境。
具体部署及使用请参考:https://www.cnblogs.com/kazihuo/p/13130120.html
证书及配置文件准备
文件地址:https://gitee.com/crabluo/K8sFiles/tree/master/monitor/prometheus/nfs-etc-data
因etcd数据采集涉及到证书认证,所以事先将证书及其配置文件拷贝至nfs存储目录。
查看etcd所使用到的证书
]# kubectl get pods -A|grep etcd
]# kubectl describe pods etcd-master1 -n kube-system

]# curl https://localhost:2379/metrics -k —cert /etc/kubernetes/pki/etcd/server.crt —key /etc/kubernetes/pki/etcd/server.key
]# rsync -avr /etc/kubernetes/pki/etcd/server.* /data/nfs-volume/prometheus/etc/
证书加权限,不然后续启动服务时服务没有权限读取证书会报错
[root@master3 /data/nfs-volume/prometheus/etc]# chmod 777 server*
[root@master3 /data/nfs-volume/prometheus/etc]# ls
prometheus.yml rules.yml server.crt server.key
资源文件及应用
文件地址
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/prometheus
#镜像修改
prom/prometheus:v2.14.0
#文件应用
kubectl apply -f .
效果查看
地址解析
服务对应解析域名:prometheus.od.com
域名具体配置方式请参考:https://www.yuque.com/crabluo/k8s/zdl28a#ouF85
页面查看

监控类目配置
监控配置说明
#Prometheus配置文件
https://gitee.com/crabluo/K8sFiles/raw/master/monitor/prometheus/nfs-etc-data/prometheus.yml
#说明
Prometheus服务要监控指定Pod,可在其deploy.yaml中添加annotations注解信息,同时在Prometheus的配置文件中添加对应的规则发现,即可获取相关监控信息。
上述配置文件已添加本章监控类目的相关规则信息,下文将针对annotations注解信息和规则信息的对应关系进行说明。
traefik服务接入监控
因为Prometheus配置文件中配置了traefik的监控项,故默认有traefik监控项

#Prometheus配置文件对应的traefik配置

#traefik Pod对应的deploy.yaml文件中添加对应的注解
"annotations": {"prometheus_io_scheme": "traefik","prometheus_io_path": "/metrics","prometheus_io_port": "8080"}
具体添加的位置请看下图

#更新deploy.yaml后,pod自动重建,查看监控,traefik监控项已匹配到数据点

dubbo-service服务接入监控
dubbo-service是tcp类型,故添加如下注释
tcp
"annotations": {"blackbox_port": "20880","blackbox_scheme": "tcp"}
dubbo-consumer服务接入监控
dubbo-service是http类型,故添加如下注释
http
"annotations": {"blackbox_path": "/","blackbox_port": "8080","blackbox_scheme": "http"}

#监控匹配到数据
#blackbox监控数据
#有Failure,是因为http接口探测失败,传入相应参数探测即可
#Pod更新后重启
jvm信息接入监控
可用于后续Grafana的JMX面板信息展示。
jvm
"annotations": {"prometheus_io_scrape": "true","prometheus_io_port": "12346","prometheus_io_path": "/"}
添加了注解后,JMX对应的面板才能匹配到数据并进行采集

Grafana交付
镜像准备
]# docker pull grafana/grafana:5.4.2
]# docker tag 6f18ddf9e552 harbor.od.com/infra/grafana:5.4.2
]# docker push 6f18ddf9e552 harbor.od.com/infra/grafana:5.4.2
NFS环境
资源地址
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/grafana
资源应用
页面效果
地址解析
服务对应解析域名:grafana.od.com
域名具体配置方式请参考:https://www.yuque.com/crabluo/k8s/zdl28a#ouF85
页面效果

插件安装
因涉及到Kubernetes的相关信息展示,故需要安装相关插件。此处介绍2种安装插件姿势。
说明:安装完后,可能需要重启pod后生效。
#方式一
直接进入到grafana对应的pod里,进行命令安装
grafana-cli plugins install grafana-kubernetes-app
grafana-cli plugins install grafana-clock-panel
grafana-cli plugins install grafana-piechart-panel
grafana-cli plugins install briangann-gauge-panel
grafana-cli plugins install natel-discrete-panel
#方式二
进入到pod使用的nfs目录下,下载插件
]# /data/nfs-volume/grafana/plugins
]# wget
]# unzip
页面配置
默认登陆信息
个性化设置
添加数据源
Configuration > Data Sources > Add data source > Prometheus
说明:集群访问的证书文件,用集群配置文件中的证书信息(~/.kube/config)即可,其中属性certificate-authority-data、client-certificate-data、client-key-data就对应这 CA 证书、Client 证书、Client 私钥,不过 config 文件里面的内容是base64编码过后的,所以我们这里填写的时候要做base64解码。
解析地址:https://base64.supfree.net/
解析方式:将文件中对应的信息copy至解析地址进行BASE64解码即可。
通过解析链接可进行相应解析操作,此处再讲解下命令行操作。
[root@master1 ~]# cat /root/.kube/config |grep ‘certificate-authority-data’
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01EUXdNVEEzTkRJek9Gb1hEVE13TURNek1EQTNOREl6T0Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTG80CkxTVTVVN2FscUUxdDJBbzkzTDcxWTZxcFNHQ3RGOTV4MmxxYnRwejlPd1A3ZHVGa3h6QmpmSGhvSlNOd3NMNlEKd2Y5NzJjUVVSUFpNUDgwakNFblhiTkZqVndPMHVQMDZjQlllQ2NwQlQ4QnVyOUFRSW1LYk9SWEJZSldTRjFSRApHVzVid3A5N2JEUHdyNnh3U0FucjB0bEpuSjdlSWdaNkZRZmF4UE5tL25rQjJTSHl3WVVkaDIrNVNEaGZLQ1dVCllRNWxHbVZneCtLLzlodkl3OEFyQVIzSzBRNUg5ZGF0MjA4YVNZN3hCMkJJYzlDVjkrSDRyb0YvOTBWU3dZYkMKZ3hibVNxRm56Z0c1ZVBtWjVKT2pGbllTR24ySHpEZGxPVFdnY290Zkx0cnNWSUlLY3FFdzZ1Wkc0NFJ6RXBaSgpiVGR0WDUvdlcvQkpVejhodmxzQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKQWc5bUswQzgrTHo0MHZzRHBPN21oRWRkODIKMHcxODRVL2Y1Z3pYNEtIVzFhVXV2MXhTL1dsNnpCY2JOY0RZQ3Z0eHlHY1ZZcnhRQitoT3NOVTFhbzEyYThzQwovN1VadjROUnlKN3I1czdqek43ODNST21NYzJzbUVDTCtja0k4ei9aMWw4eFJCSk5LTExPa1Jta3cwWVYzNStaClppQTRRTE5acU1hOTNTUFhzNXorZld6UHNxNE5XR2tvUzYyVDNRTlVqcitsdEpKM2Nmd0M3R2JnZ2JkVCttWE8KclVQVHhCL2ZHd0REVXdJb1BXOHZBL1J5T0NSUTBBTFB4MTBaNFFBTWtNaDUydndkMGxod2VVWkREUWJ2UEFkQgovbmt2S0NGcTBnRnF0emVXK1JCTEhHSTM0a2FjTlhjY3c1WlpuVHBKMjN1NHhHUW9VeGl6Vy9TUWs1RT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
[root@master1~]# a=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01EUXdNVEEzTkRJek9Gb1hEVE13TURNek1EQTNOREl6T0Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTG80CkxTVTVVN2FscUUxdDJBbzkzTDcxWTZxcFNHQ3RGOTV4MmxxYnRwejlPd1A3ZHVGa3h6QmpmSGhvSlNOd3NMNlEKd2Y5NzJjUVVSUFpNUDgwakNFblhiTkZqVndPMHVQMDZjQlllQ2NwQlQ4QnVyOUFRSW1LYk9SWEJZSldTRjFSRApHVzVid3A5N2JEUHdyNnh3U0FucjB0bEpuSjdlSWdaNkZRZmF4UE5tL25rQjJTSHl3WVVkaDIrNVNEaGZLQ1dVCllRNWxHbVZneCtLLzlodkl3OEFyQVIzSzBRNUg5ZGF0MjA4YVNZN3hCMkJJYzlDVjkrSDRyb0YvOTBWU3dZYkMKZ3hibVNxRm56Z0c1ZVBtWjVKT2pGbllTR24ySHpEZGxPVFdnY290Zkx0cnNWSUlLY3FFdzZ1Wkc0NFJ6RXBaSgpiVGR0WDUvdlcvQkpVejhodmxzQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKQWc5bUswQzgrTHo0MHZzRHBPN21oRWRkODIKMHcxODRVL2Y1Z3pYNEtIVzFhVXV2MXhTL1dsNnpCY2JOY0RZQ3Z0eHlHY1ZZcnhRQitoT3NOVTFhbzEyYThzQwovN1VadjROUnlKN3I1czdqek43ODNST21NYzJzbUVDTCtja0k4ei9aMWw4eFJCSk5LTExPa1Jta3cwWVYzNStaClppQTRRTE5acU1hOTNTUFhzNXorZld6UHNxNE5XR2tvUzYyVDNRTlVqcitsdEpKM2Nmd0M3R2JnZ2JkVCttWE8KclVQVHhCL2ZHd0REVXdJb1BXOHZBL1J5T0NSUTBBTFB4MTBaNFFBTWtNaDUydndkMGxod2VVWkREUWJ2UEFkQgovbmt2S0NGcTBnRnF0emVXK1JCTEhHSTM0a2FjTlhjY3c1WlpuVHBKMjN1NHhHUW9VeGl6Vy9TUWs1RT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
[root@master1~]# echo $a | base64 -d
-----BEGIN CERTIFICATE-----MIICyDCCAbCgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJlcm5ldGVzMB4XDTIwMDQwMTA3NDIzOFoXDTMwMDMzMDA3NDIzOFowFTETMBEGA1UEAxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALo4LSU5U7alqE1t2Ao93L71Y6qpSGCtF95x2lqbtpz9OwP7duFkxzBjfHhoJSNwsL6Qwf972cQURPZMP80jCEnXbNFjVwO0uP06cBYeCcpBT8Bur9AQImKbORXBYJWSF1RDGW5bwp97bDPwr6xwSAnr0tlJnJ7eIgZ6FQfaxPNm/nkB2SHywYUdh2+5SDhfKCWUYQ5lGmVgx+K/9hvIw8ArAR3K0Q5H9dat208aSY7xB2BIc9CV9+H4roF/90VSwYbCgxbmSqFnzgG5ePmZ5JOjFnYSGn2HzDdlOTWgcotfLtrsVIIKcqEw6uZG44RzEpZJbTdtX5/vW/BJUz8hvlsCAwEAAaMjMCEwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJAg9mK0C8+Lz40vsDpO7mhEdd820w184U/f5gzX4KHW1aUuv1xS/Wl6zBcbNcDYCvtxyGcVYrxQB+hOsNU1ao12a8sC/7UZv4NRyJ7r5s7jzN783ROmMc2smECL+ckI8z/Z1l8xRBJNKLLOkRmkw0YV35+ZZiA4QLNZqMa93SPXs5z+fWzPsq4NWGkoS62T3QNUjr+ltJJ3cfwC7GbggbdT+mXOrUPTxB/fGwDDUwIoPW8vA/RyOCRQ0ALPx10Z4QAMkMh52vwd0lhweUZDDQbvPAdB/nkvKCFq0gFqtzeW+RBLHGI34kacNXccw5ZZnTpJ23u4xGQoUxizW/SQk5E=-----END CERTIFICATE-----
启用Kubernetes插件并设置
Configuration > Plugins > kubernetes > enable
#点击enable后,左栏出现蓝色图标
#点击蓝色图标进行配置
New Cluster

#要验证配置信息是否正常,配置完后依次点击Configuration > Myk8s,拉到底即可进行Test。
自定义面板添加
#说明
插件默认会生成4张数据面板,但因数据采集相关配置信息不对称,故有些数据采集不到,所以此处采用删除默认的4张数面板,添加自定义的面板。
#文件地址
https://gitee.com/crabluo/K8sFiles/tree/master/monitor/grafana/json
#页面效果
#从多个面板当中选一个进行展示
Alertmanager交付
略


