高可用Kuberbetes部署Prometheus + Grafana

news/2024/5/18 23:41:48 标签: prometheus, grafana, kubernetes, 云原生

概述

阅读官方文档部署部署Prometheus + Grafana

GitHub - prometheus-operator/kube-prometheus at release-0.10

环境

步骤

下周官方github仓库

git clone https://github.com/prometheus-operator/kube-prometheus.git
git checkout release-0.10

进入工作目录

cd kube-prometheus/manifests
mkdir -p adapter  alertmanager  blackbox  grafana  kube-state-metrics  node-exporter  operator  prometheus

修改镜像地址

主要是镜像难寻,全靠运气。

prometheusAdapter-deployment.yaml

修改为:thinkingdata/prometheus-adapter:v0.10.0 镜像可用

kubeStateMetrics-deployment.yaml

修改为:bitnami/kube-state-metrics:2.7.0 镜像可用

部署服务

根据官方文档部署服务

kubectl apply --server-side -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl apply -f manifests/

验证

NodePort服务暴露

由ClusterIP修改为NodePort

网页访问验证:

只能在指定的节点访问服务。

如图是:

  • node04访问grafana + Prometheus。
  • master03访问Prometheus

默认登录账号密码都为 admin 登录就会要求你重设密码,重设密码仍为admin

Ingress服务暴露

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prom-ingress
  namespace: monitoring
spec:
  ingressClassName: nginx
  rules:
    - host: alert.k8s.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: alertmanager-main
                port:
                  number: 9093

    - host: grafana.k8s.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: grafana
                port:
                  number: 3000

    - host: prom.k8s.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: prometheus-k8s
                port:
                  number: 9090

配置域名解析

配置Grafana

第一次登录账户密码都使用admin,详细教程参考:Grafana fundamentals | Grafana Labs

测试:

引入基本Dashboard

中文dashboard

K8S Dashboard CN 20211010 StarsL.cn | Grafana Labs

引入dashboard

导入刚才下载的json文件即可

查询其他Dashboard

Dashboards | Grafana Labs

成果:

配置邮件告警

查询grafana.ini配置在哪里

修改配置文件并重新部署kubectl apply -f grafana-config.yaml

Grafana配置SMTP接入邮箱 - 乱七八糟博客备份 - 博客园 (cnblogs.com)

grafana配置文件说明 - woaibaobei - 博客园 (cnblogs.com)

Grafana配置邮件告警_grafana配置邮件报警_lee_yanyi的博客-CSDN博客

删除grafana的原有pod,必须删除相当于重新加载配置

配置邮件发送SMTP其他邮件服务同理

测试联通性

安装插件

Error

ingress 部署失败

Error from server (InternalError): error when creating "ingress.yml": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Posetworking/v1/ingresses?timeout=10s": dial tcp 10.96.222.96:443: connect: connection refused

删除错误pod

kubectl get pod -n ingress-nginx | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n ingress-nginx

重新部署pod

kubectl delete  pod/ingress-nginx-controller-6ff65d977f-q2kw9  -n ingress-nginx

备注

使用kube-prometheus部署k8s监控(最新版)_净夜凡尘的博客-CSDN博客

Deploy Grafana on Kubernetes | Grafana documentation

kubernetes 部署Prometheus监控集群传统部署方案_ghostwritten的博客-CSDN博客

GitHub - starsliao/Prometheus: Grafana Dashboards for Prometheus Exporter


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

相关文章

OAuth常见应用场景

OAuth2 的常见使用场景包括: 第三方登录:当自己开发的系统需要引入微信、QQ、支付宝、钉钉等第三方登录时,可以使用OAuth2协议。例如,用户可以使用微信、QQ等第三方登录进行登录,Gitee用户可以使用微信、QQ等第三方应…

微信小程序游戏开发微信小游戏定制游戏开发需求

微信小程序游戏开发是一项有趣而又具有挑战性的任务。微信小程序是一种在微信平台上运行的小型应用程序,游戏开发则是其中的一种应用类型。下面是一些步骤和注意事项,帮助你开始微信小程序游戏的开发: 微信小程序游戏开发准备工作&#xff1…

混合云代表,青云科技QingCloud从此走向小而美之路

你有你的活法, 我有我的活法 只要活出自己, 活出个样子都是美事 【全球元观察 | 热点关注】 刚注意到青云科技QingCloud的最新发布2023年半年度报告,2023上半年同比减亏约7000万元,研发人员减少83人。从这两个数字…

MYSQL 主从搭建详细步骤和测试

MySQL主备搭建 1.主库配置 以下所有操作均在主服务器上执行 1)创建用户并授权 create user slave identified with mysql_native_password by 123456 mysql>GRANT REPLICATION SLAVE ON *.* to 用户名从数据库IP地址 identified by 密码; mysql>FLUSH PRIVIL…

水力和水文软件介绍

WaterGEMS CONNECT Edition 供水管网水力模型软件 WaterGEMS 是一款适用于给水系统的水力建模应用软件,提供用于地理信息模型构建、优化和资产管理的数据可互用的工具。从消防流量、污染物浓度分析到能源消耗和投资成本管理,WaterGEMS 为工程人员提供…

react导出excel?

1、先安装依赖 自行百度搜索或csdn 2.引入:import table2excel from js-table2excel 3、按钮点击事件(我是直接写在button按钮里面的 你们也可以写一个店家事件写进去) onClick{() > {console.log(list);const column [//数据表单{titl…

Navicat15 /16 已连接数据库密码解密

前言 相信你会遇到使用navicat忘记已连接数据密码的问题吧!实在是,密码太多容易忘记!!! 感谢大佬as_dmy的文章如何查看navicat已连接数据库密码,然后才有了此文! 1.0版本需要手动查看导出的co…

Spring之事务开发

什么是事务? 事务是指数据库管理系统中的一个执行单位或一个逻辑工作单元,它由一个或多个数据库操作序列组成。事务具有以下四个特性,通常被称为ACID特性: 原子性(Atomicity):事务是一个不可分…