prometheus部署
整体架构:
组件作用:
prometheus:用于收集监控指标。
grafana:对接prometheus,将收集到的监控指标,图标化展示。
altermanager:用于对触发阈值的监控指标进行告警。
kube-state-metrics:部署在kubernetes集群中,用于收集kubernetes组件信息和对应的POD信息监控信息。
node-export:用于收集节点监控指标。
1 | git clone https://github.com/stefanprodan/k8s-prom-hpa |
切换到k8s-prom-hpa目录
1 | kubectl create -f ./prometheus |
目录内包含了prometheus的配置文件和部署文件
查看prometheus
1 | kubectl get pod -n monitoring |
访问prometheus
http://node_ip:31190
prometheus内prometheus-cfg.yaml 配置了自动发生规则,会自动将组件注册。
部署kube-state-metric监控Kubernetes集群
参考:
https://github.com/kubernetes/kube-state-metrics/tree/master/docs
kube-state-metric对应的版本支持的Kubernetes版本信息
clone代码
1 | git clone https://github.com/kubernetes/kube-state-metrics.git -b v1.8.0 |
部署kube-state-metric
在kube-state-metrics/kubernetes目录执行
1 | kubectl apply -f kube-state-metrics-service-account.yaml,kube-state-metrics-cluster-role.yaml,kube-state-metrics-cluster-role-binding.yaml,kube-state-metrics-deployment.yaml,kube-state-metrics-service.yaml |
检查kube-state-metrices部署
1 | kubectl get pod -n kube-system -o wide |
默认prometheus会自动发现kube-state-metrices创建的Service对应的端口和指标获取路径
在prometheus上可以targets上可以看见对应的点
部署node-export用于节点监控数据收集
使用helm-chart部署
1 | helm install --name node-exporter --namespace kube-system prometheus-node-exporter/ |
验证是否能取到指标
1 | curl http://127.0.0.1:9100/metrics |
grafana部署
对接prometheus
添加对应的监控指标展示模板
配置grafana对监控指标进行展示
安装grafan
1 | docker run -d --name=grafana -p 3000:3000 grafana/grafana |
访问主机3000端口
默认帐号密码:admin/admin
添加DataSource,类型选择prometheus,添加prometheus的地址
添加监控展示模板,添加主机监控模板和Kubernetes集群监控模板
导入ID为8919的node监控dashboard
导入ID为6417的Kubernetes集群监控dashboard