暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

企业级监控体系:掌握Prometheus终极指南

Linux运维智行录 2024-10-20
61

随着微服务架构和云原生技术的发展,监控系统的地位变得越来越重要。Prometheus作为一款开源的监控系统和时间序列数据库,因其强大的查询语言、多维度的数据模型以及易于集成的特点而备受青睐。无论是对于初学者还是经验丰富的运维工程师,掌握Prometheus都是提升自身技能的关键一步。

敬畏生产,守护稳定,责任重大


01
Prometheus简介

Prometheus是一个开源系统监控和警报工具包,最初由 SoundCloud构建。自 2012 年成立以来,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入了 云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳一起存储,同时存储可选的键值对(称为标签)。

Prometheus架构图

02
部署Prometheus

1、下载Prometheus chart包

$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
"prometheus-community" has been added to your repositories

$ helm pull prometheus-community/prometheus --version 25.25.0


2、上传到内网harbor服务

$ sudo helm registry login core.jiaxzeng.com --username admin
Password: 
Login Succeeded

$ helm push prometheus-25.25.0.tgz oci://core.jiaxzeng.com/plugins
Pushed: core.jiaxzeng.com/plugins/prometheus:25.25.0
Digest: sha256:12441f0fb9fa902f7442a3d21aefc19a92c974738b8a05209df4025840b7e143


3、内网主机下载Prometheus chart包

$ sudo helm registry login core.jiaxzeng.com --username admin
Password: 
Login Succeeded

$ sudo helm pull oci://core.jiaxzeng.com/plugins/prometheus --version 25.25.0 --untar --untardir /etc/kubernetes/addons/
Pulled: core.jiaxzeng.com/plugins/prometheus:25.25.0
Digest: sha256:12441f0fb9fa902f7442a3d21aefc19a92c974738b8a05209df4025840b7e143


4、helm部署Prometheus配置文件

$ cat <<'EOF' | sudo tee /etc/kubernetes/addons/prometheus-values.yaml > /dev/null
server:
  fullnameOverride: prometheus
  image:
    repository: core.jiaxzeng.com/library/monitor/prometheus
  prefixURL: "/prometheus" # default: /
  baseURL: "/prometheus" # default: /
  retention: "7d" # default: 15d
  ingress:
    enabled: true
    ingressClassName: nginx
    annotations:
      cert-manager.io/cluster-issuer: ca-cluster-issuer
    hosts: 
    - ops.jiaxzeng.com
    path: /prometheus
    pathType: Prefix
    tls: 
    - secretName: prometheus-tls
      hosts:
      - ops.jiaxzeng.com

configmapReload:
  prometheus:
    image:
      repository: core.jiaxzeng.com/library/monitor/prometheus-config-reloader

alertmanager:
  enabled: false
kube-state-metrics:
  enabled: false
prometheus-node-exporter:
  enabled: false
prometheus-pushgateway:
  enabled: false
EOF


5、部署Prometheus服务

$ helm install -n kube-system  prometheus -f /etc/kubernetes/addons/prometheus.yaml /etc/kubernetes/addons/prometheus 
NAME: prometheus
LAST DEPLOYED: Sun Oct 20 17:09:46 2024
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The Prometheus server can be accessed via port 80 on the following DNS name from within your cluster:
prometheus-server.kube-system.svc.cluster.local

From outside the cluster, the server URL(s) are:
http://ops.jiaxzeng.com

For more information on running Prometheus, visit:
https://prometheus.io/

03
验证Prometheus

1、查看Prometheus是否正常

$ kubectl -n kube-system get pod -l app.kubernetes.io/instance=prometheus
NAME                          READY   STATUS    RESTARTS   AGE
prometheus-7c8db6dd99-j4wjg   2/2     Running   0          4m19s

2、浏览器验证


04
结语

通过本篇文章的学习,相信你对如何利用Prometheus建立一套完整的监控体系有了更加全面的认识。希望这些知识能够帮助你在日常工作中更好地维护系统健康状态,及时发现问题所在,为业务连续性保驾护航!


别忘了,关注我们的公众号,获取更多关于容器技术和云原生领域的深度洞察和技术实战,让我们携手在技术的海洋中乘风破浪!

END

文章转载自Linux运维智行录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论