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自己的指标。

  

  

原文地址:https://www.cnblogs.com/chalon/p/14943764.html