西昌做网站,地址一地址二在线发布页,wordpress中文主题开发框架,网络营销方式有哪些1 介绍
Prometheus Operator 为 Kubernetes 提供了对 Prometheus 机器相关监控组件的本地部署和管理方案#xff0c;该项目的目的是为了简化和自动化基于 Prometheus 的监控栈配置#xff0c;主要包括以下几个功能#xff1a;
Kubernetes 自定义资源#xff1a;使用 Kube…1 介绍
Prometheus Operator 为 Kubernetes 提供了对 Prometheus 机器相关监控组件的本地部署和管理方案该项目的目的是为了简化和自动化基于 Prometheus 的监控栈配置主要包括以下几个功能
Kubernetes 自定义资源使用 Kubernetes CRD 来部署和管理 Prometheus、Alertmanager 和相关组件。简化的部署配置直接通过 Kubernetes 资源清单配置 Prometheus比如版本、持久化、副本、保留策略等等配置。Prometheus 监控目标配置基于熟知的 Kubernetes 标签查询自动生成监控目标配置无需学习 Prometheus 特地的配置。
2 安装配置
2.1 兼容性
通过 Prometheus Operator 可以利用 Operator 编写一整套的监控资源清单。以下是各个版本 Kubernetes 和 kube-prometheus 的兼容
kube-prometheus stackKubernetes 1.22Kubernetes 1.23Kubernetes 1.24Kubernetes 1.25Kubernetes 1.26Kubernetes 1.27Kubernetes 1.28release-0.10✔✔✗✗xxxrelease-0.11✗✔✔✗xxxrelease-0.12✗✗✔✔xxxrelease-0.13✗✗✗x✔✔✔main✗✗✗xx✔✔
最新兼容性可参考 https://github.com/prometheus-operator/kube-prometheus/tree/main?tabreadme-ov-file#compatibility
2.2 Kube-Prometheus 的下载
git clone https://github.com/prometheus-operator/kube-prometheus.git
cd kube-prometheus2.3 初始化 Kube-Prometheus ( CRDs 资源对象)
manifests/setup 中包含内容为 operator 所需的 命名空间 和 CRDs 初始化组件
kubectl apply -f manifests/setup
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com created
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com created
namespace/monitoring created
The CustomResourceDefinition prometheuses.monitoring.coreos.com is invalid: metadata.annotations: Too long: must have at most 262144 bytes安装过程中可能看到提示 Too long: must have at most 262144 bytes变更为 kubectl create 即可
kubectl create -f manifests/setup创建成功后资源会存放在名为 monitoring 的命名空间。
2.4 通过 Kube-Prometheus 创建资源
manifests 目录下存放着一套 Prometheus的部署规则、模板与配置包括Prometheus-operator、Node-exporter、Kube-state-metrics、Grafana、Prometheus-adapter 以及 Prometheus 和 Alertmanager 等大量组件.
kubectl apply -f manifests/*注意默认manifests的svc不提供外部访问如果希望暴露服务需要调整 -service.yaml 配置 或 通过 Ingress 完成控制.
# 示例为 manifests/grafana-service.yaml
apiVersion: v1
kind: Service
metadata:labels:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 10.2.2name: grafananamespace: monitoring
spec:ports:- name: httpport: 3000targetPort: http type: LoadBalancer **# SVC - LoadBalancer 类型**selector:app.kubernetes.io/component: grafanaapp.kubernetes.io/name: grafanaapp.kubernetes.io/part-of: kube-prometheus*注意默认manifests的Prometheus和其他组件默认为临时存储, 可以调整 -deployment.yaml 或 prometheus-prometheus.yaml 修改挂载模式.
# manifests/prometheus-prometheus.yaml 挂载 OCI BlockVolume 示例
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:labels:app.kubernetes.io/component: prometheusapp.kubernetes.io/instance: k8sapp.kubernetes.io/name: prometheusapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 2.48.1name: k8snamespace: monitoring
spec:alerting:alertmanagers:- apiVersion: v2name: alertmanager-mainnamespace: monitoringport: webenableFeatures: []externalLabels: {}image: quay.io/prometheus/prometheus:v2.48.1nodeSelector:kubernetes.io/os: linux# ... 其他配置storage: **# Storage - OCI StorageClass 类型, oci-bv**volumeClaimTemplate:spec:storageClassName: oci-bvresources:requests:storage: 50Gi# ... 其他配置部署成功后可在 monitoring 命名空间下查看对应的资源 Pods 资源
Services 资源
3 请求飞书告警
3.1 初始化飞书机器人
3.1.1 创建飞书聊天群组
点击左上 “” 按钮, 创建新的组, 此处可以添加相关的业务同事 3.1.2 添加机器人
进入聊天群组, 右上部分点击 “…” — “Settings”, 添加机器人 在 Settings 中点击 Bots 选项卡, “Add Bot” 添加自定义机器人 设置机器人基础信息, 设置完成后点击 “Add” 设置安全机器人相关信息确认后机器人配置完成 3.2 prometheusalert 部署
PrometheusAlert是开源的运维告警中心消息转发系统支持主流的监控系统Prometheus、Zabbix日志系统Graylog2Graylog3、数据可视化系统Grafana、SonarQube。阿里云-云监控以及所有支持WebHook接口的系统发出的预警消息支持将收到的这些消息发送到钉钉微信email飞书腾讯短信腾讯电话阿里云短信阿里云电话华为短信百度云短信容联云电话七陌短信七陌语音TeleGram百度Hi(如流)等。
3.2.1 下载 prometheusalert yaml
wget https://raw.githubusercontent.com/feiyu563/PrometheusAlert/master/example/kubernetes/PrometheusAlert-Deployment.yaml3.2.2 开启飞书告警通道
修改YAML文件中的 configmap app.conf 部分配置
# vim PrometheusAlert-Deployment.yaml
# 83行, 打开 feishu 配置#是否开启飞书告警通道,可同时开始多个通道0为关闭,1为开启
open-feishu1
#默认飞书机器人地址, 可以不修改通过 alertmanager 进行配置
fsurlhttps://open.feishu.cn/open-apis/bot/hook/xxxxxxxxx3.2.3 部署
kubectl apply -n monitoring -f https://raw.githubusercontent.com/feiyu563/PrometheusAlert/master/example/kubernetes/PrometheusAlert-Deployment.yaml3.3 prometheusalert 配置模板与告警
使用自定义模板中的默认模板或创建新的模板配置飞书告警模板 自定义模板信息
3.4 配置 Alertmanager 对接 PrometheusAlert
注意默认manifests的alertManager不会加载客户自定义 AlertmanagerConfig需要配置加载项
3.4.1 加载自定义告警规则
# manifests/alertmanager-alertmanager.yaml
apiVersion: monitoring.coreos.com/v1
kind: Alertmanager
metadata:labels:app.kubernetes.io/component: alert-routerapp.kubernetes.io/instance: mainapp.kubernetes.io/name: alertmanagerapp.kubernetes.io/part-of: kube-prometheusapp.kubernetes.io/version: 0.26.0name: mainnamespace: monitoring
spec:image: quay.io/prometheus/alertmanager:v0.26.0# 其他配置 .....alertmanagerConfigSelector: # 通过Label匹配告警规则matchLabels:alertmanagerConfig: feishuhook # 其他配置 .....3.4.2 创建自定义告警规则
# vim manifests/alertmanager-config.yaml
# alertmanager-config.yaml
# http://prometheus-alert-center:8080/prometheusalert?typefstplprometheus-fsfsurl飞书机器人地址
# prometheus-alert-center:8080 - PrometheusAlert 请求地址
# typefs - 飞书告警
# tplprometheus-fs - 您在PrometheusAlert中配置的飞书告警模板我的示例为 prometheus-fs 您可以自行修改
# fsurl飞书机器人地址apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:name: feishuhooknamespace: monitoringlabels:alertmanagerConfig: feishuhook
spec:receivers:- name: CriticalwebhookConfigs:- url: http://prometheus-alert-center:8080/prometheusalert?typefstplprometheus-fsfsurl飞书机器人地址 sendResolved: trueroute:groupBy: [namespace]groupWait: 30sgroupInterval: 6mrepeatInterval: 12hreceiver: Criticalroutes:- receiver: Criticalmatch:severity: critical3.5 查看飞书告警
当出现指标达到告警阈值时飞书聊天组即可收到报警
4 参考资料
kube-Prometheus 安装https://github.com/prometheus-operator/kube-prometheus/tree/main?tabreadme-ov-file#quickstart
kube-Prometheus k8s平台兼容性 https://github.com/prometheus-operator/kube-prometheus/tree/main?tabreadme-ov-file#compatibility
PrometheusAlert安装: https://github.com/feiyu563/PrometheusAlert/blob/master/doc/readme/base-install.md#安装部署prometheusalert
飞书机器人添加 https://www.feishu.cn/hc/zh-CN/articles/360024984973-如何在群组中使用机器人