kubernetes集群系列资料17--prometheus介绍
一、prometheus介绍
组件:
1)metricServer:是kubenetes集群资源使用情况的聚合器,收集数据给K8S集群内使用,如:kubectl,hpa,scheduler等。
2)prometheusOperator:一个系统监测和警报工具箱,用来存储监控数据。
3)nodeExporter:用于各node的关键度量指标状态数据。
4)kubeStateMetrics:收集K8S集群内资源对象数据,指定告警规则。
5)prometheus:采用pull方式收集API server,scheduler,controller-manager,kubelet组件数据,通过http协议传输。
6)grafana:可视化数据统计和监控平台;
二、prometheus部署
##master及各node导入prometheus镜像 ~~~上传prometheus包至master及各node; cd prometheus-operator/ tar -xzvf prometheus.tar.gz cat load-images.sh #查看脚本中规定prometheus目录的位置为/root; mv prometheus /root #移动prometheus目录的位置 ll /root/prometheus /bin/sh load-images.sh #导入prometheus镜像; docker images # git clone https://github.com/coreos/kube-prometheus.git #获取安装yaml文件; ~~~上传kube-prometheus.git至master; tar -xzvf kube-prometheus.git.tar.gz ll kube-prometheus cd kube-prometheus/manifests
##修改nodeport类型的grafana服务 cat >grafana-service.yaml<<eof apiVersion: v1 kind: Service metadata: name: grafana namespace: monitoring spec: type: NodePort ports: - name: http port: 3000 targetPort: http nodePort: 30100 selector: app: grafana eof ##创建nodeport类型的prometheus服务 cat >prometheus-service.yaml<<eof apiVersion: v1 kind: Service metadata: name: prometheus-k8s namespace: monitoring labels: prometheus: k8s spec: type: NodePort ports: - name: web port: 9090 targetPort: web nodePort: 30200 selector: app: prometheus prometheus: k8s eof ##创建nodeport类型的alertmanager服务 cat >alertmanager-service.yaml<<eof apiVersion: v1 kind: Service metadata: name: altermanager-main namespace: monitoring labels: altermanager: main spec: type: NodePort ports: - name: web port: 9093 targetPort: web nodePort: 30300 selector: app: altermanager altermanager: main eof kubectl apply -f ./ kubectl get pod -n monitoring #查看安装的pod; kubectl get svc --all-namespaces #查看所有svc;
测试:
1)客户端访问http://192.168.66.10:30200/,进行数据采集;在expression框中填入sum by (pod_name)(rate(container_cpu_usage_seconds_total{image!="",pod_name!=""}[1m])),可得出cpu请求数的统计结果(可以图片形式显示);
2)访问http://192.168.66.10:30200/targets;如果targets下所有项目皆为up,表示已成功连接上K8S的API server,即prometheus部署成功。
3)访问grafana服务地址http://192.168.66.10:30100,默认账户/密码:admin/admin;添加数据来源为Prometheus(默认已添加),并导入模板;
4)访问http://192.168.66.10:30100/dashboards--->manage,选中监控对象进行展示。
5)访问http://192.168.66.10:30200/metrics,查看Prometheus自己的指标。