kubernetes安装prometheus+grafana

Linux运维交流社区 Linux运维交流社区     2023-01-07     602

关键词:

kubernetes 安装 Prometheus + Grafana

kubernetes install Prometheus + Grafana

官网

Official website

https://prometheus.io/

GitHub

GitHub

https://github.com/coreos/kube-prometheus

组件说明

Component description

MetricServer:是kubernetes集群资源使用情况的聚合器,收集数据给kubernetes集群内使用,如 kubectl,hpa,scheduler等。

PrometheusOperator:是一个系统监测和警报工具箱,用来存储监控数据。

NodeExporter:用于各node的关键度量指标状态数据。

KubeStateMetrics:收集kubernetes集群内资源对象数 据,制定告警规则。

Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数 据,通过http协议传输。

Grafana:是可视化数据统计和监控平台。

MetricServer: It is an aggregator of the resource usage of the kubernetes cluster, collecting data for use in the kubernetes cluster, such as kubectl, hpa, scheduler, etc.

PrometheusOperator: is a system monitoring and alerting toolbox used to store monitoring data.

NodeExporter: Used for the key metric status data of each node.

KubeStateMetrics: Collect resource object data in the kubernetes cluster and formulate alarm rules.

Prometheus: collect data from apiserver, scheduler, controller-manager, and kubelet components in a pull mode, and transmit it through the http protocol.

Grafana: It is a platform for visual data statistics and monitoring.

安装

Install

配置Google上网环境下的docker,docker会去外网进行下载部分镜像

Configure docker in Google's Internet environment, docker will go to the external network to download part of the image

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf
[root@k8s-master-node1 ~]# cat /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.1.6:7890/" 
Environment="HTTPS_PROXY=http://192.168.1.6:7890/" 
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

dockerd代理的修改比较特殊,它实际上是改systemd的配置,因此需要重载systemd并重启dockerd才能生效。

The modification of the dockerd agent is quite special. It actually changes the configuration of systemd, so systemd needs to be reloaded and dockerd restarted to take effect.

sudo systemctl daemon-reload
sudo systemctl restart docker

下载

download

[root@k8s-master-node1 ~]# git clone https://github.com/coreos/kube-prometheus.git
Cloning into 'kube-prometheus'...
remote: Enumerating objects: 13409, done.
remote: Counting objects: 100% (1908/1908), done.
remote: Compressing objects: 100% (801/801), done.
remote: Total 13409 (delta 1184), reused 1526 (delta 947), pack-reused 11501
Receiving objects: 100% (13409/13409), 6.65 MiB | 5.21 MiB/s, done.
Resolving deltas: 100% (8313/8313), done.
[root@k8s-master-node1 ~]# 
[root@k8s-master-node1 ~]# cd kube-prometheus/manifests
[root@k8s-master-node1 ~/kube-prometheus/manifests]#

修改 grafana-service.yaml 文件,使用 nodepode 方式访问 grafana:

Modify the grafana-service.yaml file and use nodepode to access grafana:

[root@k8s-master-node1 ~/kube-prometheus/manifests]# cat grafana-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: grafana
    app.kubernetes.io/name: grafana
    app.kubernetes.io/part-of: kube-prometheus
    app.kubernetes.io/version: 8.1.3
  name: grafana
  namespace: monitoring
spec:
  type: NodePort
  ports:
  - name: http
    port: 3000
    targetPort: http
    nodePort: 31100
  selector:
    app.kubernetes.io/component: grafana
    app.kubernetes.io/name: grafana
    app.kubernetes.io/part-of: kube-prometheus

修改 prometheus-service.yaml,改为 nodepode:

Modify prometheus-service.yaml to nodepode:

[root@k8s-master-node1 ~/kube-prometheus/manifests]# cat prometheus-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: prometheus
    app.kubernetes.io/name: prometheus
    app.kubernetes.io/part-of: kube-prometheus
    app.kubernetes.io/version: 2.30.0
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  type: NodePort
  ports:
  - name: web
    port: 9090
    targetPort: web
    nodePort: 31200
  - name: reloader-web
    port: 8080
    targetPort: reloader-web
    nodePort: 31300
  selector:
    app: prometheus
    app.kubernetes.io/component: prometheus
    app.kubernetes.io/name: prometheus
    app.kubernetes.io/part-of: kube-prometheus
    prometheus: k8s
  sessionAffinity: ClientIP

修改 alertmanager-service.yaml,改为 nodepode

Modify alertmanager-service.yaml to nodepode

[root@k8s-master-node1 ~/kube-prometheus/manifests]# cat alertmanager-service.yaml 
apiVersion: v1
kind: Service
metadata:
  labels:
    alertmanager: main
    app.kubernetes.io/component: alert-router
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/part-of: kube-prometheus
    app.kubernetes.io/version: 0.23.0
  name: alertmanager-main
  namespace: monitoring
spec:
  type: NodePort
  ports:
  - name: web
    port: 9093
    targetPort: web
    nodePort: 31400
  - name: reloader-web
    port: 8080
    targetPort: reloader-web
    nodePort: 31500
  selector:
    alertmanager: main
    app: alertmanager
    app.kubernetes.io/component: alert-router
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/part-of: kube-prometheus
  sessionAffinity: ClientIP
[root@k8s-master-node1 ~/kube-prometheus/manifests]#

创建名称空间和CRD

Create namespace and CRD

[root@k8s-master-node1 ~/kube-prometheus]# kubectl create -f /root/kube-prometheus/manifests/setup
namespace/monitoring created
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com created
clusterrole.rbac.authorization.k8s.io/prometheus-operator created
clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator created
deployment.apps/prometheus-operator created
service/prometheus-operator created
serviceaccount/prometheus-operator created

等待资源可用后,安装

After waiting for resources to be available, install

[root@k8s-master-node1 ~/kube-prometheus]# 
[root@k8s-master-node1 ~/kube-prometheus]# 
[root@k8s-master-node1 ~/kube-prometheus]# kubectl create -f /root/kube-prometheus/manifests/




---略---




[root@k8s-master-node1 ~/kube-prometheus]#

访问 Prometheus

Visit Prometheus

http://192.168.1.10:31200/targets

访问 Grafana

Visit Grafana

http://192.168.1.10:31100/

访问报警平台 AlertManager

Visit the alert platform AlertManager

http://192.168.1.10:31400/#/status

如何配置 kube-prometheus-stack helm 安装来抓取 Kubernetes 服务?

】如何配置kube-prometheus-stackhelm安装来抓取Kubernetes服务?【英文标题】:Howtoconfigurekube-prometheus-stackhelminstallationtoscrapeaKubernetesservice?【发布时间】:2021-06-2617:13:37【问题描述】:我已将kube-prometheus-stack作为依赖项安装在MacKubernetes... 查看详情

如何将抓取目标添加到使用 Kubernetes-Helm 安装的 Prometheus 服务器?

】如何将抓取目标添加到使用Kubernetes-Helm安装的Prometheus服务器?【英文标题】:HowdoyouaddscrapetargetstoaPrometheusserverthatwasinstalledwithKubernetes-Helm?【发布时间】:2018-01-1816:47:54【问题描述】:背景我已经使用HelmchartforPrometheus在我的Kub... 查看详情

kubernetes集群安装kube-prometheus后无法执行kubectltopnode(代码片段)

背景:Kubernetes1.20.5安装Prometheus-Oprator嗯,我的集群是1.21.3了虽然是…执行kubectltopnodes如下:解决问题过程:网上一堆各种说法的,但是没有一个是适用于我的。把monitoring下所有的pod的日志看了一个遍,然... 查看详情

Prometheus 与 Kubernetes v1.16 不兼容

】Prometheus与Kubernetesv1.16不兼容【英文标题】:PrometheusisnotcompatiblewithKubernetesv1.16【发布时间】:2020-02-2117:49:37【问题描述】:我安装了stable/prometheushelmchart,并在helm/charts#17268提出了一些小改动,以使其与Kubernetesv1.16兼容安装后... 查看详情

Prometheus 查询 Kubernetes pod 正常运行时间

】Prometheus查询Kubernetespod正常运行时间【英文标题】:PrometheusqueryforKubernetespoduptime【发布时间】:2021-12-2320:54:02【问题描述】:我有一个安装了kube-prometheus-stack的Kubernetes集群(Prometheus2.27.1,kube-state-metricsv2.0.0)我想查询每个pod... 查看详情

kubernetes第七篇:使用kubernetes部署prometheus+grafana监控系统(kubernetes工作实践类)(代码片段)

文章目录一、前言二、K8s监控系统架构2.1Prometheus简介2.2Prometheus架构2.3Prometheus知识普及三、K8s监控系统搭建3.1三类数据采集metrics3.2Prometheus+Grafana3.3实践一下:将prometheus+grafana搭建起来3.3.1搭建3.3.2分步测试3.3.2.1安装nodee... 查看详情

如何使用 Prometheus 从 Kubernetes 中自动抓取所有 Docker 实例?

】如何使用Prometheus从Kubernetes中自动抓取所有Docker实例?【英文标题】:HowtoautomaticallyscrapeallDockerinstancesfromKuberneteswithPrometheus?【发布时间】:2018-01-3011:33:23【问题描述】:我已经在GoogleContainerEngine中成功安装了Prometheus,并且我... 查看详情

kubernetes_08_使用kubernetes部署prometheus+grafana监控系统(kubernetes工作实践类)(代码片段)

文章目录一、前言二、K8s监控系统架构2.1Prometheus简介2.2Prometheus架构2.3Prometheus知识普及三、K8s监控系统搭建3.1三类数据采集metrics3.2Prometheus+Grafana3.3实践一下:将prometheus+grafana搭建起来3.3.1搭建3.3.2分步测试3.3.2.1安装nodee... 查看详情

只监控一个命名空间 pod - Prometheus & Kubernetes & cadvisor

】只监控一个命名空间pod-Prometheus&Kubernetes&cadvisor【英文标题】:Monitoronlyonenamespacepods-Prometheus&Kubernetes&cadvisor【发布时间】:2021-07-1509:13:10【问题描述】:我在kubernetes上部署了istio,并从istio插件安装了prometheus。我的... 查看详情

在 Kubernetes 上使用 Prometheus 监控 Spring Boot 应用程序,而不是设置端点

】在Kubernetes上使用Prometheus监控SpringBoot应用程序,而不是设置端点【英文标题】:MonitorSpringBootAppsusingPrometheusonKubernetes,notsettingendPoints【发布时间】:2019-10-1319:49:49【问题描述】:我正在尝试在Kubernetes上使用Prometheus监控SpringBoot... 查看详情

prometheus在kubernetes集群的搭建教程

Prometheus在kubernetes集群的搭建一、Prometheus介绍1.Prometheus简介2.Prometheus介绍3.Prometheus与市面的监控系统区别4.Prometheus特点5.Prometheus的网站6.Prometheus原理图7.Prometheus监控示意图二、集群环境检查1.检查kubernetes的集群状态2.Prometheus使用... 查看详情

kubernetes第七篇:使用kubernetes部署prometheus+grafana监控系统(kubernetes工作实践类)

...录​​一、前言​​​​二、K8s监控系统架构​​​​2.1Prometheus简介​​​​2.2Prometheus架构​​​​2.3Prometheus知识普及​​​​三、K8s监控系统搭建​​​​3.1三类数据采集metrics​​​​3.2Prometheus+Grafana​​​​3.3实践一下... 查看详情

Kubernetes 上的 prometheus 节点导出器

】Kubernetes上的prometheus节点导出器【英文标题】:prometheusnode-exporteronkubernetes【发布时间】:2019-11-1910:08:07【问题描述】:我已经在kubernetes集群(EKS)上部署了prometheus。我能够通过以下方式成功抓取prometheus和traefikscrape_configs:#Ascrape... 查看详情

prometheus跨集群采集(代码片段)

背景恩不想搭建太多prometheus了,想用一个prometheus,当然了前提是我A集群可以连通B集群网络,实现Prometheus跨集群采集采集关于A集群A集群以及prometheus搭建参照:Kubernetes1.20.5安装Prometheus-OpratorB集群B集群操作参照:阳明大佬Prometheu... 查看详情

linux企业运维——kubernetes(二十)prometheus监控(代码片段)

Linux企业运维——Kubernetes(二十)Prometheus监控文章目录Linux企业运维——Kubernetes(二十)Prometheus监控一、Prometheus简介二、k8s部署Prometheus三、Prometheus监控nginx访问量四、Prometheus实现hpa动态伸缩一、Prometheus简介除... 查看详情

linux企业运维——kubernetes(二十)prometheus监控(代码片段)

Linux企业运维——Kubernetes(二十)Prometheus监控文章目录Linux企业运维——Kubernetes(二十)Prometheus监控1、Prometheus简介2、k8s部署Prometheus3、Prometheus监控nginx访问量4、Prometheus实现hpa动态伸缩1、Prometheus简介除了资源... 查看详情

将 Kubernetes 抓取目标添加到不在 Kubernetes 中的 Prometheus 实例

】将Kubernetes抓取目标添加到不在Kubernetes中的Prometheus实例【英文标题】:AddKubernetesscrapetargettoPrometheusinstancethatisNOTinKubernetes【发布时间】:2022-01-2403:57:59【问题描述】:我以http://localhost:9090/targets的身份在本地运行prometheusdockerrun... 查看详情

kubernetes集群监控解决方案kube-prometheus-stack(prometheus-operator)helm安装(代码片段)

...理分享给小伙伴。博文内容为K8s集群通过helm方式创建kube-prometheus-stack监控平台教程折腾了一晚上,搞定了,一开始一直用prometheus-operator这个chart来装,报错各种找问题,后来才发现我的集群版本太高了,1.22的... 查看详情