首页 > 其他分享 >在k8s中快速搭建基于Prometheus监控系统

在k8s中快速搭建基于Prometheus监控系统

时间:2023-12-29 16:11:40浏览次数:41  
标签:kube prometheus manifests yaml Prometheus k8s 搭建

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享

前言

K8s本身不包含内置的监控工具,所以市场上有不少这样监控工具来填补这一空白,但是没有一个监控工具有prometheus全家桶使用率高,因为它由 CNCF维护,已经成为了监控 k8s 集群的事实上的行业标准,下面介绍一下如何在K8s快速部署一个kube-prometheus项目,来实现对k8s 相关资源监控与告警

kube-prometheus介绍

kube-prometheus是一个完整的监控解决方案,可以轻松地将其部署到 Kubernetes 集群中,它包括以下内容

  1. Prometheus 用于度量收集

  2. Alertmanager 用于指标警报和通知

  3. Grafana 用于图形用户界面

  4. 一组特定于K8s的exporters,用作指标收集代理

  5. 使用 Prometheus Operator 来简化和自动化该堆栈的设置

快速安装

在将 kube-prometheus部署到 k8s 集群之前,先确认与你的 k8s匹配的是版本,然后在下载

下载

执行kubectl version 查看k8s 版本,下载对应版本

由于本人的 k8s 版本为 v1.25.13,所以下载kube-prometheus-0.12.0

wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.12.0.zip

解压

tar -zxvf kube-prometheus-0.12.0.zip & cd kube-prometheus-0.12.0

修改镜像地址

由于网络原因,kube-state-metrics和prometheus-adapter镜像地址,在国内无法下载,因此需要修改以下地址

vi manifests/kubeStateMetrics-deployment.yaml

image: bitnami/kube-state-metrics:2.7.0

vi manifests/prometheusAdapter-deployment.yaml

image: cloveropen/prometheus-adapter:v0.10.0

访问配置

为了可以从外部访问 PrometheusGrafanaAlertmanager,需要修改 service 类型为 NodePort 类型。

修改 Prometheus 的 service

vi manifests/prometheus-service.yaml

# 设置对外访问端口,增加如下两行
type: NodePort
nodePort: 31922

修改 Grafana 的 service

vi manifests/grafana-service.yaml

# 设置对外访问端口,增加如下两行
type: NodePort
nodePort: 30300

修改 Alertmanager 的 service

vi manifests/alertmanager-service.yaml

# 设置对外访问端口,增加如下两行
type: NodePort
nodePort: 30200

安装

在kube-prometheus-0.12.0目录下执行以下命令进行安装

kubectl apply --server-side -f manifests/setup
kubectl apply -f manifests/

执行完成以后,访问monitoring 空间,查看部署状态,可以看到启动成功,并且都是高可用部署

kubectl get pods -n monitoring

验证

Prometheus验证

选一台 node 节点ip+31922,即可访问prometheus的 Web UI

Alertmanager验证

选一台 node 节点ip+30200,即可访问alertmanager的 Web UI,可以看到有一些报警,由于alertmanager的报警配置比较复杂同时对国内的通讯工具支持有限,因此可以使用PrometheusAlert进行告警配置

Grafana验证

选一台 node 节点ip+30300,即可访问grafana的 Web UI,默认用户名密码:admin/admin,登录会提示更改密码,登录以后,可以看到已经内置了不少监控大盘

集群资源监控

节点资源监控,可以看到当前节点部署了哪些 pod,以及对应的负载是多少

卸载

执行以下命令即可卸载相关组件

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

存在的问题

持久存储

以上我们安装未使用持久化存储,所以如果Prometheus或者Grafana重启,那么采集的数据和自定义的仪表盘等数据会丢失,因此如果考虑在生产环境使用,需要把数据使用存储卷挂载至文件系统。

Grafana显示时间问题

由于grafana默认时区是UTC,比中国时间慢了8小时,很不便于日常监控查看,需要进行修改,如下图

因此需要调整成中国时间,utc+8,替换grafana-dashboardDefinitions.yaml

sed -i '' 's/utc/utc+8/g' grafana-dashboardDefinitions.yaml
sed -i '' 's/UTC/UTC+8/g' grafana-dashboardDefinitions.yaml
grep -i timezone grafana-dashboardDefinitions.yaml

总结

以上我们介绍了什么是kube-prometheus以及如何在k8s中快速部署kube-prometheus,后续会深入讲解相关使用,同时在操作过程中如果有疑问,也欢迎关注我的公众号进行技术交流,如果本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~

扫描下面的二维码关注我们的微信公众帐号,在微信公众帐号中回复◉加群◉即可加入到我们的技术讨论群里面共同学习。

标签:kube,prometheus,manifests,yaml,Prometheus,k8s,搭建
From: https://www.cnblogs.com/waldron/p/17935130.html

相关文章

  • 搭建gitlab
    搭建GitLab(yum安装)一、安装gitlabepel源vi/etc/yum.repos.d/gitlab.repo输入以下内容[gitlab-ce]name=gitlab-cebaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/Repo_gpgcheck=0Enabled=1gpgcheck=0重新创建元数据缓存yumcleanall&&yummak......
  • k8s patch测试
    1.编写patch.sh,下文件为yaml文件模板#用户名username=bqadm#是否挂载可写目录iswrite="true"container_name=$(kubectl-nbigquantget$(kubectlgetdeployment-lusername=${username}-nbigquant-oname)-ojsonpath='{.spec.template.spec.containers[0].nam......
  • k8s常用命令操作
    获取所有节点的污点信息kubectlgetnodes-o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect'获取集群内的所有域名kubectlgetingress-A-o=custom-columns=Host:.spec.rul......
  • 喜讯!思迈特签约南方电网搭建云景数字化运营管控平台
    近日,思迈特软件签约南方电网共同搭建云景数字化运营管控平台。Smartbi将助力云景平台构建“全域协同,全员参与、全员创新”的数字化运营新生态。该平台以“工具+数据”赋能基层,充分释放基层“业务人员+数字化人员”专业能力,实现“数据同源,服务统一,页面按需”的灵活运营模式,并以用户......
  • 搭建lnmp环境-mysql(第五步)
    版本mysql5.7新建文件夹/data/download进入后下载wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm安装 rpm-ivhmysql57-community-release-el7-8.noarch.rpmrpm--importhttps://repo.mysql.com/RPM-GPG-KEY-mysql-2022(这里要用2022)yumin......
  • 一键式自动给个人云服务搭建常用平台
    背景有时兴致来了就喜欢瞎鼓捣,几年前还是学生时买过学生优惠的云服务器,但没钱续费关停后就不了了之,近期看到有活动又重新入手了但问题就来了,之前好不容易搭建上去的各种服务,现在又得重新来一遍几年前还是学生时可能对这类环境搭建还比较感兴趣现在人老了,精力不够了,做啥都考虑......
  • 基于 Windows10 搭建 ELK (Elasticsearch 8 + Kibana + Logstash)
    参考https://www.cnblogs.com/hualess/p/11540477.htmlhttps://blog.csdn.net/susu1083018911/article/details/124551632https://blog.csdn.net/Dyanxier/article/details/131302723https://blog.csdn.net/qq_44768464/article/details/120101990https://www.cnblogs.com......
  • 「Java开发指南」如何用MyEclipse搭建JSF/Primefaces和Spring(二)
    本教程将引导大家完成为JavaServerFaces(JSF)生成软件组件的过程,在本文中您将学习到如何:从数据库表到现有项目搭建配置支持JSF2.0的服务器部署搭建的应用程序在上文中,我们介绍了如何创建一个Web项目、从数据库表搭建及配置服务器等,本文将继续介绍如何部署应用程序!更多MyE......
  • 江铃晶马 X 袋鼠云:搭建企业级数据资产中心,推进打造“智数晶马”
    江铃集团晶马汽车有限公司(简称:晶马汽车)系江铃集团全资子公司,属集团六大整车企业之一。晶马汽车是以大、中、轻型客车(含新能源客车)、乘用车(不含轿车)、专用车等车型研发、生产、销售和服务为核心的整车企业,涉及客运、公交、旅游、通勤、旅居车、物流、专用车等行业客户。伴随公司信息......
  • ngix+keepalived+k8s
    一.nginx的安装1.nginx安装包下载在官网https://nginx.org/en/download.html下载linux的tar包选择合适的版本如https://nginx.org/download/nginx-1.24.0.tar.gz2.安装依赖yuminstallgcc-c++pcrepcre-develzlibzlib-developensslopenssl-devel3.安装nginxtar-x......