建设教育局网站硬件价格需要多少钱,网站开发后端待遇,成都网站平台建设,网络推广引流软件目录
一、概述
1.1 优点
1.2 特点
二、grafana部署
三、grafana接入Promethues数据源
四、grafana可视化展示物理节点指标数据
五、grafana可视化展示k8s组件指标数据
5.1 kube-state-metrics简介
5.2 安装kube-state-metrics组件 一、概述 Grafana是一款用Go语言开发… 目录
一、概述
1.1 优点
1.2 特点
二、grafana部署
三、grafana接入Promethues数据源
四、grafana可视化展示物理节点指标数据
五、grafana可视化展示k8s组件指标数据
5.1 kube-state-metrics简介
5.2 安装kube-state-metrics组件 一、概述 Grafana是一款用Go语言开发的开源数据可视化工具可以做数据监控和数据统计带有告警功能。目前使用grafana的公司有很多如paypal、ebay、intel等。 1.1 优点 灵活性Grafana支持各种数据源如prometheus、elasticsearch、influxdb等并且可以自由地配置大量的插件和面板以展示不同类型的数据。
易用性Grafana非常易于使用因为它提供了一个直观的用户界面使用户能够轻松地创建、编辑和共享仪表板。
实时监控Grafana可以实时监测各种指标包括应用程序性能、网络流量、服务器资源等等。
可视化Grafana有丰富的数据可视化选项如曲线图、柱状图、饼图等使得数据可以以直观的方式呈现出来。
1.2 特点 ①可视化快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。 ②报警可视化地为最重要的指标定义警报规则。Grafana将持续评估它们并发送通知。 ③通知警报更改状态时它会发出通知。接收电子邮件通知。 ④动态仪表盘使用模板变量创建动态和可重用的仪表板这些模板变量作为下拉菜单出现在仪表板顶部。 ⑤混合数据源在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。 ⑥注释注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。 ⑦过滤器过滤器允许您动态创建新的键/值过滤器这些过滤器将自动应用于使用该数据源的所有查询。 k8s方式官方部署文档
Deploy Grafana on Kubernetes | Grafana documentation
安装Grafana需要的镜像heapster-grafana-amd64:v5.0.4 二、grafana部署 grafana.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: monitoring-grafananamespace: kube-system
spec:replicas: 1selector:matchLabels:task: monitoringk8s-app: grafanatemplate:metadata:labels:task: monitoringk8s-app: grafanaspec:containers:- name: grafanaimage: k8s.gcr.io/heapster-grafana-amd64:v5.0.4ports:- containerPort: 3000protocol: TCPvolumeMounts:- mountPath: /etc/ssl/certsname: ca-certificatesreadOnly: true- mountPath: /varname: grafana-storageenv:- name: INFLUXDB_HOSTvalue: monitoring-influxdb- name: GF_SERVER_HTTP_PORTvalue: 3000- name: GF_AUTH_BASIC_ENABLEDvalue: false- name: GF_AUTH_ANONYMOUS_ENABLEDvalue: true- name: GF_AUTH_ANONYMOUS_ORG_ROLEvalue: Admin- name: GF_SERVER_ROOT_URLvolumes:- name: ca-certificateshostPath:path: /etc/ssl/certs- name: grafana-storageemptyDir: {}
---
apiVersion: v1
kind: Service
metadata:labels:kubernetes.io/cluster-service: truekubernetes.io/name: monitoring-grafananame: monitoring-grafananamespace: kube-system
spec:ports:- port: 80targetPort: 3000selector:k8s-app: grafanatype: NodePort更新yaml文件
kubectl apply -f grafana.yaml
kubectl get pods -n kube-system WEB页面 http://192.168.2.140:31843/ 账号密码都是admin 三、grafana接入Promethues数据源 开始配置grafana的web界面选择Create your first data source Name: PrometheusType: PrometheusHTTP 处的URLhttp://prometheus.monitor-sa.svc:9090
配置好的整体页面如下 点击左下角Save Test出现如下Data source is working说明prometheus数据源成功的被grafana接入了。 Prometheus数据源接入 四、grafana可视化展示物理节点指标数据 点击左侧号下面的Import出现如下界面 选择本地的node_exporter.json文件博客资源中下载 选择之后出现如下然后再点击Import 如下图我们可以看到采集到的master1指标 node节点 五、grafana可视化展示k8s组件指标数据 5.1 kube-state-metrics简介 kube-state-metrics通过监听API Server生成有关资源对象的状态指标比如Deployment、Node、Pod需要注意的是kube-state-metrics只是简单的提供一个 metrics数据并不会存储这些指标数据所以我们可以使用Prometheus来抓取这些数据然后存储主要关注的是业务相关的一些元数据比如Deployment、Pod、副本状态等调度了多少个replicas现在可用的有几个多少个Pod是running/stopped/terminated状态Pod重启了多少次我有多少job在运行中。
5.2 安装kube-state-metrics组件 在k8s的master1节点生成一个kube-state-metrics-rbac.yaml文件kube-state-metrics-rbac.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:name: kube-state-metricsnamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: kube-state-metrics
rules:
- apiGroups: []resources: [nodes, pods, services, resourcequotas, replicationcontrollers, limitranges, persistentvolumeclaims, persistentvolumes, namespaces, endpoints]verbs: [list, watch]
- apiGroups: [extensions]resources: [daemonsets, deployments, replicasets]verbs: [list, watch]
- apiGroups: [apps]resources: [statefulsets]verbs: [list, watch]
- apiGroups: [batch]resources: [cronjobs, jobs]verbs: [list, watch]
- apiGroups: [autoscaling]resources: [horizontalpodautoscalers]verbs: [list, watch]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kube-state-metrics
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kube-state-metrics
subjects:
- kind: ServiceAccountname: kube-state-metricsnamespace: kube-system
部署
kubectl apply -f kube-state-metrics-rbac.yaml
kube-state-metrics-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: kube-state-metricsnamespace: kube-system
spec:replicas: 1selector:matchLabels:app: kube-state-metricstemplate:metadata:labels:app: kube-state-metricsspec:serviceAccountName: kube-state-metricscontainers:- name: kube-state-metricsimage: quay.io/coreos/kube-state-metrics:v1.9.0ports:- containerPort: 8080
kubectl apply -f kube-state-metrics-svc.yaml
kube-state-metrics-svc.yaml
apiVersion: v1
kind: Service
metadata:annotations:prometheus.io/scrape: truename: kube-state-metricsnamespace: kube-systemlabels:app: kube-state-metrics
spec:ports:- name: kube-state-metricsport: 8080protocol: TCPselector:app: kube-state-metrics
# 通过kubectl apply更新yaml
kubectl apply -f kube-state-metrics-svc.yaml
查看service是否创建成功 进入 prometheus查看采集的k8s指标 如下图我们可以看到采集的pod指标 登录 grafra 导入 JSON File-Kubernetes Cluster (Prometheus).json(博客资源中下载第四章) 导入模板后我们选择Import k8s集群监控指标在grafana 【Prometheus】概念和工作原理介绍-CSDN博客
【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0-CSDN博客
参考原文链接Grafana监控神器免费用-CSDN博客
https://www.jianshu.com/p/0d82c7ccc85a