Prometheusf安装使用

吃可爱长大的小学妹 提交于 2020-03-18 22:50:33

3 月,跳不动了?>>>

参考 https://blog.51cto.com/14157628/2473866?source=dra

在部署Prometheus之前,由于实验环境,配置较低,所以将原本的dashboard、Scope进行删除了!

在真正部署Prometheus之前,应了解一下Prometheus的各个组件之间的关系及作用:
1)MertricServer:是k8s集群资源使用情况的聚合器,收集数据给K8s集群内使用,如:kubectl,hpa,scheduler;
2)PrometheusOperator:是一个系统检测和警报工具箱,用来存储监控数据;
3)NodeExporter:用于各node的关键度量指标状态数据;
4)kubeStateMetrics:收集k8s集群内资源对象数据,指定告警规则;
5)Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输;
6)Grafana:是可视化数据统计和监控平台;

1)获取yaml文件修改并执行

注意:这里部署的Prometheus,并不是Prometheus官网提供的,而是使用的coreos提供的Prometheus项目。

如图:
Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面

修改以下文件的 镜像地址quay.io/替换为 quay-mirror.qiniu.com/

setup/prometheus-operator-deployment.yaml
prometheus-adapter-deployment.yaml
prometheus-prometheus.yaml
node-exporter-daemonset.yaml
alertmanager-alertmanager.yaml
kube-state-metrics-deployment.yaml

[root@master ~]# git clone https://github.com/coreos/kube-prometheus.git
#将项目克隆到本地
[root@master ~]# cd kube-prometheus/manifests/
[root@master manifests]# vim grafana-service.yaml
#更改grafana资源对应的service资源的类型及映射的端口
apiVersion: v1
kind: Service
metadata:
  labels:
    app: grafana
  name: grafana
  namespace: monitoring
spec:
  type: NodePort               #添加类型为NodePort
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 31010          #自定义映射的端口
  selector:
    app: grafana
[root@master manifests]# vim alertmanager-service.yaml 
#更改alertmanager资源对应的service资源的类型及映射的端口
apiVersion: v1
kind: Service
metadata:
  labels:
    alertmanager: main
  name: alertmanager-main
  namespace: monitoring
spec:
  type: NodePort               #添加类型为NodePort
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 31020          #自定义映射的端口
  selector:
    alertmanager: main
    app: alertmanager
  sessionAffinity: ClientIP
[root@master manifests]# vim prometheus-service.yaml 
#更改prometheus资源对应的service资源的类型及映射的端口
apiVersion: v1
kind: Service
metadata:
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  type: NodePort               #添加类型为NodePort
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 31030          #自定义映射的端口
  selector:
    app: prometheus
    prometheus: k8s
  sessionAffinity: ClientIP
[root@master manifests]# pwd          #确认当前所在目录
/root/kube-prometheus/manifests
[root@master manifests]# kubectl apply -f setup/
#必须先执行setup目录下的所有yaml文件
[root@master manifests]# cd ..          #返回上层目录
[root@master kube-prometheus]# pwd        #确认目录位置
/root/kube-prometheus
[root@master kube-prometheus]# kubectl apply -f manifests/
#将该目录下的yaml文件全部执行
[root@master kube-prometheus]# kubectl get pod -n monitoring 
#确保该名称空间下的所有Pod都是Running状态
[root@master kube-prometheus]# kubectl get svc -n monitoring | grep grafana
#查看grafana资源对应的service资源映射的端口
grafana                 NodePort    10.97.56.230    <none>        3000:31010/TCP               16m

所使用的pod的镜像下载较慢,总之,网络稳定一切都不是问题!

也可以使用本人提供的下载链接:https://pan.baidu.com/s/1UZ-9Cii_JDdn9a8mnDhWfA
提取码:aijm

浏览器访问:
Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面
本地自带的模板有点low,所以接下来导入一个好看的模板!

模板下载地址:https://grafana.com/dashboards 自行进行查看!

Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面
Kubernetes的三种可视化UI界面

大功告成,可以看到炫酷的监控页面了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!