一、概述

Prometheus是一个开源监控系统,生态包括了很多组件,它们中的一些是可选的:

  • 主服务Prometheus Server负责抓取和存储时间序列数据
  • 客户库负责检测应用程序代码
  • 支持短生命周期的PUSH网关
  • 基于Rails/SQL仪表盘构建器的GUI
  • 多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式
  • 警告管理器
  • 命令行查询工具
  • 其他各种支撑工具

Prometheus Operator的本职就是一组用户自定义的CRD资源以及Controller的实现,Prometheus Operator负责监听这些自定义资源的变化,并且根据这些资源的定义自动化的完成如Prometheus Server自身以及配置的自动化管理工作。以下是Prometheus Operator的架构图:

Prometheus Operator 是CoreOS的一个开源项目,用来增强Prometheus在Kubernetes中的管理运维能力。利用Kubernetes的自定义资源定义 (Custom Resource Definition)的特性,实现声明式管理运维Prometheus监控告警系统。
kube-prometheus 为基于 Prometheus 和 Prometheus Operator 的完整集群监控堆栈提供示例配置。这包括部署多个 Prometheus 和 Alertmanager 实例、指标导出器(例如用于收集节点指标的 node_exporter)、抓取将 Prometheus 链接到各种指标端点的目标配置,以及用于通知集群中潜在问题的示例警报规则。
两个项目的关系:前者只包含了Prometheus Operator,后者既包含了Operator,又包含了Prometheus相关组件的部署及常用的Prometheus自定义监控,具体包含下面的组件

  • The Prometheus Operator:创建CRD自定义的资源对象
    Highly available Prometheus:创建高可用的Prometheus
    Highly available Alertmanager:创建高可用的告警组件
    Prometheus node-exporter:创建主机的监控组件
    Prometheus Adapter for Kubernetes Metrics APIs:创建自定义监控的指标工具(例如可以通过nginx的request来进行应用的自动伸缩)
    kube-state-metrics:监控k8s相关资源对象的状态指标
    Grafana:进行图像展示

二、安装kube-prometheus

1. 项目地址

在GitHub中下载,地址:https://gitcode.net/mirrors/coreos/kube-prometheus?utm_source=csdn_github_accelerator

可以通过git clone,如果服务器网络不通也可以直接下载好源代码在上传服务器

下载要看清楚版本,分支不同对应k8s版本不一样

由于服务器上git 不下来,我直接在网站上下载了zip包

把包中的manifests文件上传到服务器上,里面都是yaml文件。

 

2. 修改yaml文件镜像源

把这几个文件的image地址都修改成下面的地址,源地址不一定能拉的下镜像

[root@k8s-master1 manifests]# grep -rn 'image: ' *
alertmanager-alertmanager.yaml:13:  image: quay.mirrors.ustc.edu.cn/prometheus/alertmanager:v0.23.0
blackboxExporter-deployment.yaml:32:        image: quay.mirrors.ustc.edu.cn/prometheus/blackbox-exporter:v0.19.0
blackboxExporter-deployment.yaml:54:        image: jimmidyson/configmap-reload:v0.5.0
blackboxExporter-deployment.yaml:77:        image: quay.mirrors.ustc.edu.cn/brancz/kube-rbac-proxy:v0.11.0
grafana-deployment.yaml:32:        image: grafana/grafana:8.3.3
kubeStateMetrics-deployment.yaml:34:        image: cnych/kube-state-metrics:v2.3.0
kubeStateMetrics-deployment.yaml:50:        image: quay.mirrors.ustc.edu.cn/brancz/kube-rbac-proxy:v0.11.0
kubeStateMetrics-deployment.yaml:71:        image: quay.mirrors.ustc.edu.cn/brancz/kube-rbac-proxy:v0.11.0
nodeExporter-daemonset.yaml:37:        image: quay.mirrors.ustc.edu.cn/prometheus/node-exporter:v1.3.1
nodeExporter-daemonset.yaml:65:        image: quay.mirrors.ustc.edu.cn/brancz/kube-rbac-proxy:v0.11.0
prometheusAdapter-deployment.yaml:39:        image: cnych/prometheus-adapter:v0.9.1
prometheusOperator-deployment.yaml:32:        image: quay.mirrors.ustc.edu.cn/prometheus-operator/prometheus-operator:v0.53.1
prometheusOperator-deployment.yaml:51:        image: quay.mirrors.ustc.edu.cn/brancz/kube-rbac-proxy:v0.11.0
prometheus-prometheus.yaml:21:  image: quay.mirrors.ustc.edu.cn/prometheus/prometheus:v2.32.1

 

3. 修改yaml文件svc,暴露服务端口

这三个svc分别是告警,grafana,prometheus的web页面服务,暴露端口方便在外部访问

[root@k8s-master1 manifests]# grep -rn 'NodePort' *
alertmanager-service.yaml:13:  type: NodePort
grafana-service.yaml:12:  type: NodePort
prometheus-service.yaml:13:  type: NodePort

每个svc都添加type:NodePort,和对应的端口,端口自定义不重复即可

4. 安装部署

在manifests目录下执行

#在一步要使用create,使用apply安装过程中会提示 Too long: must have at most 262144 bytes
#这会创建一个名为 monitoring 的命名空间,以及相关的 CRD 资源对象声明
[root@k8s-master1 manifests]# kubectl create -f setup/

#安装服务
[root@k8s-master1 manifests]# kubectl apply -f .

安装需要等一会,需要下载镜像

看到所有pod都running即部署完成

[root@k8s-master1 ~]# kubectl get pod -n monitoring 
NAME                                   READY   STATUS    RESTARTS       AGE
alertmanager-main-0                    2/2     Running   4 (17m ago)    16h
alertmanager-main-1                    2/2     Running   0              86s
alertmanager-main-2                    2/2     Running   0              89s
blackbox-exporter-5f4d9ff7f4-f9t8j     3/3     Running   6 (17m ago)    16h
grafana-78d8cfccff-5vjcc               1/1     Running   2 (17m ago)    16h
kube-state-metrics-5fc765d7b9-skwtl    3/3     Running   6 (17m ago)    16h
node-exporter-48qvw                    2/2     Running   4 (66m ago)    24h
node-exporter-tgrcr                    2/2     Running   56 (13m ago)   24h
node-exporter-vqchr                    2/2     Running   8 (17m ago)    24h
prometheus-adapter-7c55854c56-2s4ll    1/1     Running   2 (17m ago)    16h
prometheus-adapter-7c55854c56-sfn2g    1/1     Running   2 (17m ago)    16h
prometheus-k8s-0                       2/2     Running   0              89s
prometheus-k8s-1                       2/2     Running   0              85s
prometheus-operator-67bcf4bb4f-ntsvw   2/2     Running   4 (17m ago)    16h

查询svc

[root@k8s-master1 ~]# kubectl get svc -n monitoring 
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE
alertmanager-main       NodePort    10.103.39.12     <none>        9093:30082/TCP,8080:30280/TCP   24h
alertmanager-operated   ClusterIP   None             <none>        9093/TCP,9094/TCP,9094/UDP      24h
blackbox-exporter       ClusterIP   10.100.135.40    <none>        9115/TCP,19115/TCP              24h
grafana                 NodePort    10.103.204.230   <none>        3000:30081/TCP                  24h
kube-state-metrics      ClusterIP   None             <none>        8443/TCP,9443/TCP               24h
node-exporter           ClusterIP   None             <none>        9100/TCP                        24h
prometheus-adapter      ClusterIP   10.101.197.199   <none>        443/TCP                         24h
prometheus-k8s          NodePort    10.111.219.237   <none>        9090:30080/TCP,8080:31486/TCP   24h
prometheus-operated     ClusterIP   None             <none>        9090/TCP                        24h
prometheus-operator     ClusterIP   None             <none>        8443/TCP                        24h

 

5. 页面访问

promethus server页面

grafana页面,默认密码admin/admin

告警页面

6. 登录grafana配置监控

在设置中选择配置

默认就已经带有k8s的监控,可以直接使用也可以点击add data source手动配置

配置完成后,点击test测试

在主页上,点击导入import,导入监控模板

315是其中一个监控模板id,可以手动去grafana官网下载需要的模板再导入。这里直接使用315测试监控效果,点击load

自定义name,promethus选择刚才配置的,点击import

页面监控数据

 

原文地址:http://www.cnblogs.com/xmwan/p/16874256.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性