基于EKS/K8S部署开源指标监控系统(Prometheus & Grafana)

Prometheus 部署
  1. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
  2. helm repo update
  3. kubectl create ns prometheus
  4. helm install prometheus prometheus-community/prometheus --namespace=prometheus
  5. kubectl -n prometheus expose deployment prometheus-server --port=9090 --target-port=9090 --name=prometheus-data
  6. kubectl -n prometheus get services prometheus-data
    #记录该service的clusterIP用作Grafana的数据源
Grafana 部署
  1. helm repo add grafana https://grafana.github.io/helm-charts
  2. helm repo update
  3. kubectl create ns grafana
  4. helm install grafana grafana/grafana --namespce=grafana
  5. kubectl -n grafana expose deployment grafana --port=3000 --target-port=3000 --type=NodePort –
    name=grafana-ui
  6. 获取grafana 初始登陆用户和密码
    i. kubectl -n grafana get secret grafana -o jsonpath=‘{.data.admin-user}’ |base64 -d
    ii. kubectl -n grafana get secret grafana -o jsonpath=‘{.data.admin-password}’ |base64 -d
  7. 访问<Node_IP>:<Node_Port>登陆后添加数据源
    i.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ii. 在dashboard中查询资源指标
    在这里插入图片描述
可选:集成Events指标收集插件
  1. 通过下面的yaml来部署event-exporter
    i. Kubectl apply -f deployment.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: event-exporter
  labels:
    name: event-exporter

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    name: event-exporter
  name: event-exporter
subjects:
  - kind: ServiceAccount
    name: event-exporter
    namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: view

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    name: event-exporter
  name: event-exporter
spec:
  replicas: 1
  revisionHistoryLimit: 2
  selector:
    matchLabels:
      app: event-exporter
  strategy:
    type: RollingUpdate
  template:
    metadata:
      annotations:
        prometheus.io/path: /metrics
        prometheus.io/port: '9102'
        prometheus.io/scrape: 'true'
      labels:
        app: event-exporter
    spec:
      containers:
        - name: event-exporter
          image: 'caicloud/event-exporter:v1.0.0'
          imagePullPolicy: Always
          args:
            - --eventType=Warning
            - --eventType=Normal
          ports:
            - containerPort: 9102
              name: http
          resources:
            limits:
              memory: 100Mi
            requests:
              memory: 40Mi
      serviceAccountName: event-exporter
      terminationGracePeriodSeconds: 30

---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: event-exporter
  name: event-exporter
spec:
  ports:
    - name: http
      port: 9102
      targetPort: 9102
  selector:
    app: event-exporter
  1. 实现方式(上述Deployment已经添加过annotations):

a) 通过events_exporter中添加的annotations

annotations:   
  prometheus.io/path: /metrics
  prometheus.io/port: '9102'
  prometheus.io/scrape: 'true'  

b) 或者通过configmap添加prometheus job

- job_name: 'event_exporter'
    static_configs:
    - targets: ['<event-exporter address>:9102'] 
  1. 等待十分钟,Prometheus会根据deployment注解自动加载event-exporter采集到的数据。
    在这里插入图片描述
    PromQL语法参考:https://prometheus.io/docs/prometheus/latest/querying/basics/
邮件告警配置
  1. 配置Grafana SMTP发信规则
    在这里插入图片描述

备注:可以通过kubectl edit方式在线修改该configmap,也可以将其输出成yaml或json文件,离线修改完重新apply。

host: 发信方邮箱服务器地址,465端口使用TLS传输协议,25端口不使用。具体根据邮箱服务器的传输配置而定。
user: Grafana使用的发信方邮箱账号
password: Grafna使用的发信方邮箱账号密码
from_address: Grafana使用的发信方邮箱地址
from_name: Grafana使用的可被收件人查看的发信人姓名

  1. 创建 Contact point
    (1)
    在这里插入图片描述
    (2)
    在这里插入图片描述
    (3)
    在这里插入图片描述
    Test 按钮可测试Grafana发信功能是否正常

  2. 配置默认Notification policies
    Root policy – default for all alerts,用于配置默认的告警联系人,在此策略下,默认所有被触发的告警规则都会发送到该联系人。如果需要针对不同的告警规则配置不同的告警联系人则选择创建并配置下面的“Specific routing”模块
    在这里插入图片描述
    在这里插入图片描述

  3. 创建Alert Rules
    (1)
    在这里插入图片描述(2)
    在这里插入图片描述
    (3)主要配置Alert的一些基本信息
    在这里插入图片描述
    (4) 可选:
    一般如需要针对不同的告警规则通知不同的联系人才需要配置Labels
    在这里插入图片描述
    (5)
    在这里插入图片描述

  4. 告警展示
    依据前边的步骤,一个基础的告警流程配置就完成了,根据配置的Alert rule,触发后该rule会出现如下图提示,并同步发送告警邮件。
    在这里插入图片描述
    在这里插入图片描述

企微告警配置

这部分只给出企微机器人 Contact points的配置,其余部分同邮件告警一致,如果需要针对不同的Alert rules分别发送给邮件或者企微机器人,则需要注意两个步骤1.Alert rules添加相应的Labels;2.Notification policies中针对相应的Labels配置不同的Specific routing;上述步骤中只更换Root Policy仅作测试用,它适用于所有未配置Specific routing的Alert rules。

  1. 创建 Contact point
    (1)
    在这里插入图片描述
    (2)
    在这里插入图片描述
    a. Webhook URL在创建企微机器人时自动生成,复制记录下来就可。
    b. Test 按钮可测试企微机器人告警功能是否正常

后续准备将集成飞书告警的相关步骤更新出来,敬请期待…

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值