prometheus监控
![4837b4d09943eb2d1e242ca0e4323ec8.png](https://i-blog.csdnimg.cn/blog_migrate/c63ece9b669d7d92fcf256c26692e757.jpeg)
特别快,适合监控容器Prometheus server 历史数据存储用pull形式收集数据metrics监控指标exporters 就像是zabbix的客户端promql 普罗米修斯自己的查询语言web UI 自己的webUI很简陋service discovery 自动发现,容器的添加,发现哪些pod有变化,就不用写一个pod,写一个监控项aletmanager报警组件
1.官网地址https://github.com/prometheus/prometheus2.监控k8s需要的组件使用metric-server收集数据给k8s集群内使用,如kubectl,hpa,scheduler等使用prometheus-operator部署prometheus,存储监控数据使用kube-state-metrics收集k8s集群内资源对象数据使用node_exporter收集集群中各节点的数据使用prometheus收集apiserver,scheduler,controller-manager,kubelet组件数据使用alertmanager实现监控报警使用grafana实现数据可视化metrics-server 主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标。kube-state-metrics 主要关注的是业务相关的一些元数据,比如 Deployment、Pod、副本状态等3.安装部署prometheus###导入镜像docker load < prom-prometheusv2_2_1.tar ###创建命名空间kubectl create namespace prom###创建资源cd prometheuskubectl create -f ./ ###检查资源kubectl -n prom get all -o wideweb浏览器查看http://10.0.0.11:30090/targets4.安装部署metrics-server###导入镜像docker load < k8s-gcr-io-addon-resizer1_8_6.tardocker load < k8s-gcr-io-metrics-server-amd64v0-3-6.tar###创建资源kubectl create -f ./###检查kubectl top nodekubectl top pod5.安装node-exporterv###导入镜像docker load < prom-node-exporterv0_15_2.tar###创建资源kubectl create -f ./###查看资源kubectl -n prom get pod -o widekubectl -n prom get svc###浏览器查看http://10.0.0.12:9100/metricshttp://10.0.0.13:9100/metrics5.安装kube-state-metrics###导入镜像docker load < gcr-io-google_containers-kube-state-metrics-amd64v1-3-1.tar###创建资源kubectl create -f ./###查看kubectl -n prom get podkubectl -n prom get svccurl 10.1.232.109:8080/metrics6.安装grafna和k8s-prometheus-adapter###导入镜像docker load < directxman12-k8s-prometheus-adapter-amd64-latest.tar docker load < k8s-gcr-io-heapster-grafana-amd64v5_0_4.tar###修改grafana资源配置清单 1 apiVersion: apps/v1 2 kind: Deployment 3 metadata: 4 name: monitoring-grafana 5 namespace: prom 6 spec: 7 selector: 8 matchLabels: 9 k8s-app: grafana 10 replicas: 1 11 template:###创建资源cd k8s-prometheus-adapterkubectl create -f ./###检查创建的资源kubectl -n prom get pod -o widekubectl -n prom get svc###浏览器查看http://10.0.0.11:32725###导入dashboardhttps://grafana.com/grafana/dashboards/10000x.prometheus查询语句sum by (name) (rate (container_cpu_usage_seconds_total{image!=""}[1m]))container_cpu_usage_seconds_total{name =~ "^k8s_POD.*",namespace="default"}正则表达式:=~ 模糊匹配== 完全匹配!= 不匹配!~ 不匹配正则表达式查询语句:sum (container_memory_working_set_bytes{image!="",name=~"^k8s_.*",kubernetes_io_hostname=~".*",namespace="default"}) by (pod)翻译:sum (监控指标{字段1!="字段1配置的值",字段2!="字段2配置的值"}) by (分组字段名)添加namespace标签后grafana修改图标sum (container_memory_working_set_bytes{image!="",name=~"^k8s_.*",kubernetes_io_hostname=~"^$Node$",namespace=~"^$Namespace$"}) by (pod)
HPA资源自动扩容
https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/1.生成测试镜像###创建测试首页cat index.php <?php $x = 0.0001; for ($i = 0; $i <= 1000000; $i++) { $x += sqrt($x); } echo "OK!";?>###创建dockerfilecat dockerfile FROM php:5-apacheADD index.php /var/www/html/index.phpRUN chmod a+rx index.php###生成镜像docker build -t php:v1 .2.创建php-deployment资源cat >php-dp.yaml<php-hpa.yaml<
01grafana添加数据源
![d67dda3452fd77b09d1b1e51cb2c7f0d.png](https://i-blog.csdnimg.cn/blog_migrate/5731b350ecfe1e871c19b28910da68ae.jpeg)
02prometheus查询语句
![45a66ed56cd1821384f72e5ca8227bdd.png](https://i-blog.csdnimg.cn/blog_migrate/622259f94f79637a4baad15b37748333.jpeg)
03grafana修改后的图
![387932dd6f5a388e967a9b3e5cae5a56.png](https://i-blog.csdnimg.cn/blog_migrate/8585bb1e760d7989d1245d7d467dc712.jpeg)
04grafana添加namespace标签
![b09ce1ab22bcd7854152f91d977319db.png](https://i-blog.csdnimg.cn/blog_migrate/80ae921fbc352cf8c9305161492f7425.jpeg)
05grafana添加namespace标签2
![e2429bb871ed121e41528abe8c133e26.png](https://i-blog.csdnimg.cn/blog_migrate/681f510623c0610d5ef08c2b4622405d.jpeg)
06最终效果图
![34299f07173a9d49968f6c139719954f.png](https://i-blog.csdnimg.cn/blog_migrate/5f0b06f7903a0c9ed3c97db8e02279a6.jpeg)
07完整大图
![1a58509a21fa60248c04dbfaf10c774d.png](https://i-blog.csdnimg.cn/blog_migrate/2c397ca85a356a66d66ebdbfa229caa1.jpeg)
dashboard图
![966f2e7f9f79d71927ca747cd0ad7ca8.png](https://i-blog.csdnimg.cn/blog_migrate/9b45f0588d74a0d5edc711dab422217c.jpeg)
dashboard图2
![aa3ea6a5677754f4a6b38da85d1eadb5.png](https://i-blog.csdnimg.cn/blog_migrate/c4787616f7fe4eff32d7e4eb3919a582.jpeg)