k8s环境下prometheus 监控通过钉钉webhook报警

最近公司新项目启动,这次的k8s通过RKE部署,安装rancher后自带了监控,grafana模板也行完整,但是无法编辑。监控这一块在单独部署prometheus ,prometheus-altermanager和dingtalk。

用了rancher就比较懒了,这次prometheus没写yaml文件,直接在控制台页面创建的prometheus,指定了下镜像和挂载配置文件就可以启动,我在这里贴一下配置文件,大家做一下参考。

在rancher里面把这些配置文件先做配置映射,然后在prometheus 的deployment挂载文件就可以启动了。不是rancher部署的朋友,自己定义一下configmap或者手动封装在images里面。

一.prometheus部署

cat /etc/prometheus/prometheus.yml

global:
  scrape_interval:     15s
  evaluation_interval:  15s
rule_files:
- /etc/prometheus/rules.yml
- /etc/prometheus/alertmanager.yml
scrape_configs:
- job_name: 'kubernetes-apiservers'
  kubernetes_sd_configs:
  - role: endpoints
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  relabel_configs:
  - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
    action: keep
    regex: default;kubernetes;https
- job_name: 'kubernetes-nodes'
  kubernetes_sd_configs:
  - role: node
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)
  - target_label: __address__
    replacement: kubernetes.default.svc:443
  - source_labels: [__meta_kubernetes_node_name]
    regex: (.+)
    target_label: __metrics_path__
    replacement: /api/v1/nodes/${1}/proxy/metrics
- job_name: 'kubernetes-cadvisor'
  kubernetes_sd_configs:
  - role: node
  scheme: https
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)
  - target_label: __address__
    replacement: kubernetes.default.svc:443
  - source_labels: [__meta_kubernetes_node_name]
    regex: (.+)
    target_label: __metrics_path__
    replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
- job_name: 'kubernetes-service-endpoints'
  kubernetes_sd_configs:
  - role: endpoints
  relabel_configs:
  - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
    action: keep
    regex: true
  - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
    action: replace
    target_label: __scheme__
    regex: (https?)
  - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
    action: replace
    target_label: __metrics_path__
    regex: (.+)
  - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
    action: replace
    target_label: __address__
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
  - action: labelmap
    regex: __meta_kubernetes_service_label_(.+)
  - source_labels: [__meta_kubernetes_namespace]
    action: replace
    target_label: kubernetes_namespace
  - source_labels: [__meta_kubernetes_service_name]
    action: replace
    target_label: kubernetes_name
- job_name: 'kubernetes-services'
  kubernetes_sd_configs:
  - role: service
  metrics_path: /probe
  params:
    module: [http_2xx]
  relabel_configs:
  - source_labels: [__m
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要在Kubernetes 1.26上部署Prometheus钉钉告警,可以遵循以下步骤: 1. 首先,您需要创建一个Prometheus的配置文件,其中包含Prometheus服务器的相关配置信息。您可以通过使用Prometheus Operator或手动创建一个配置文件。 2. 在该配置文件中,您需要定义钉钉告警的接收者。您可以添加一个名为"dingtalk"的接收者,并提供钉钉机器人的Webhook地址。这将允许Prometheus发送告警通知到钉钉机器人。 3. 接下来,您需要将该配置文件应用到Kubernetes集群中。您可以使用kubectl命令应用一个YAML文件,其中定义了Prometheus服务器的Deployment和Service。 4. 在Prometheus服务器运行后,您可以使用kubectl port-forward命令将Prometheus的端口映射到本地,以便可以访问Prometheus的Web界面。 5. 在Prometheus的Web界面中,您可以配置和监控各种指标,并设置相应的报警规则。您可以通过PromQL查询语言定义报警规则,并指定钉钉接收者。 6. 当报警规则触发时,Prometheus将发送告警通知到钉钉机器人。您可以在钉钉中收到告警通知,并进行相应的处理。 总结:以上是在Kubernetes 1.26上部署Prometheus钉钉告警的大致步骤。具体的实施方式可能会根据您的环境和需求而有所不同。需要注意的是,配置和使用Prometheus钉钉告警需要一定的技术知识和经验。 ### 回答2: 部署k8s 1.26版本中的Prometheus并配置钉钉告警需要以下步骤: 1. 安装Prometheus:根据k8s版本选择适当的Prometheus版本,并将其部署到kubernetes集群中。可以使用Helm进行安装:`helm install prometheus stable/prometheus` 2. 配置告警规则:在Prometheus中创建告警规则,以定义要监控的指标和阈值。可以通过编辑Prometheus配置文件或使用Prometheus的API来创建规则。 3. 设置钉钉告警:首先,需要在钉钉开发者平台上创建一个机器人,并获取其Webhook地址。然后,在Prometheus的配置文件中添加相应的钉钉告警配置,包括Webhook地址和其他相关参数。 4. 测试告警:修改某些指标或触发条件,以便使Prometheus触发告警规则。可以使用下面的命令手动触发告警:`kubectl -n <prometheus-namespace> delete po -l <label-selector>` 5. 验证告警:检查钉钉群组中是否收到Prometheus的告警通知。如果一切配置正确,钉钉机器人将发送告警消息到指定的群组中。 需要注意的是,部署Prometheus和配置钉钉告警可能会因k8s版本和Prometheus版本的不同而有所差异。以上步骤仅提供了一个大致的实现方案,在实际操作中可能需要根据具体版本和需求进行一些调整和修改。 ### 回答3: 在k8s 1.26版本中部署Prometheus并配置钉钉告警的过程如下: 1. 在k8s集群中创建一个命名空间,用于部署和管理Prometheus及相关组件。 2. 在k8s集群中创建一个ConfigMap,用于存储Prometheus的配置文件。配置文件包含了需要监控的目标(例如,Pod、Service等)和具体的告警规则。 3. 创建一个ServiceAccount,并为其授权访问钉钉的权限。这是为了Prometheus能够发送告警通知到钉钉。 4. 部署Prometheus Operator。Prometheus Operator是一个用于管理Prometheus实例的部署程序。 5. 创建Prometheus资源。使用Prometheus Operator创建一个Prometheus资源,并关联之前创建的ConfigMap。 6. 配置Prometheus钉钉告警规则。在ConfigMap内部,添加相应的告警规则配置,用于定义在何种情况下触发告警,并发送通知到钉钉。 7. 部署Alertmanager。Alertmanager是Prometheus的一个组件,用于接收来自Prometheus的告警通知,并将其发送到相应的接收者。 8. 配置Alertmanager的钉钉通知方式。在Alertmanager的配置文件中,添加钉钉的通知方式,并填写相应的钉钉机器人Webhook地址。 9. 部署钉钉机器人。在钉钉中创建一个机器人,并获取其Webhook地址。 10. 部署完成后,Prometheus会开始监控集群中的目标,并根据配置的告警规则发送告警通知到Alertmanager。Alertmanager会将告警通知通过钉钉机器人的Webhook地址发送到钉钉。 通过以上步骤,我们成功在k8s 1.26版本中部署了Prometheus,并配置了钉钉告警。这样就能及时获取到集群中的异常情况,并通过钉钉进行告警通知,便于及时处理和监控运维。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值