cloudeye对接prometheus实现华为云全方位监控-4008云顶国际网站

举报
发表于 2023/12/19 21:07:54 2023/12/19
【摘要】 云眼系统cloudeye服务接入 prometheus后,可以利用 prometheus生态更好地监控和分析来自 cloudeye服务的数据。

云眼系统cloudeye服务为我们提供了针对弹性云服务器、宽带等资源的立体化监控平台。帮助我们全面了解华为云上的资源使用情况、业务的运行状况。将华为云cloudeye服务接入 prometheus后,可以利用 prometheus生态更好地监控和分析来自 cloudeye服务的数据。
image.png


通过使用cloudeye-exporter,将华为云cloudeye服务与华为云cce集群(kubernetes集群)中的prometheus容器进行对接。继而使用prometheus系统对云上资源的性能数据进行运维监控。
注意:该exporter仅适用于华为云局点。


prometheus将会以operator形式部署在kubernetes集群当中。所以也需要制作cloudeye-exporter容器镜像,然后容器化部署在kubernetes集群中。

3.1 获取cloudeye-exporter安装包

  1. 下载最新版本的cloudeye-exporter
    查看插件releases版本 () ,获取cloudeye-exporter下载地址,下载解压安装。
    mkdir cloudeye-exporter & cd cloudeye-exporter
    wget https://github.com/huaweicloud/cloudeye-exporter/releases/download/v2.0.6/cloudeye-exporter.v2.0.6.tar.gz
  2. 解压
    tar -xzvf cloudeye-exporter.v2.0.6.tar.gz
    image.png

3.2 制作容器镜像

  1. 需要编写dockerfile文件 这里使用centos用作基础镜像

    from centos  
    copy cloudeye-exporter logs.yml metric.yml /root/
    workdir /root
    cmd ["/root/cloudeye-exporter"]
    
  2. 构建容器镜像
    docker build -t swr.cn-north-4.myhuaweicloud.com/k8s-solution/cloudeye-exporter:v2.0.6 --platform=linux/amd64 .
    image.png

  3. 推送至镜像仓库
    建议使用华为云swr镜像仓库


3.3 配置cloudeye-exporter的访问鉴权

  1. 编辑clouds.yml文件配置公有云信息
    cloudeye-exporter 启动时需要使用该配置文件进行云服务的访问鉴权
    global:
      port: ":8087" # 监听端口 :8087代表在全部网络接口上开启监听8087端口,限定内部访问也可以指定ip例如:192.168.1.100:8087
      scrape_batch_size: 300
    auth:
      auth_url: "https://iam.cn-north-4.myhuaweicloud.com/v3"
      project_name: "cn-north-4" # 华为云项目名称,可以在“华为云->统一身份认证服务->项目”中查看
      access_key: "" # iam用户访问密钥 您可参考3.1章节使用命令行输入加密后的ak sk,避免在配置文件中明文配置ak sk
      secret_key: ""
      region: "cn-north-4" # 区域id
    
  2. 基于该配置文件创建kubernetes secrets
    kubectl create secret generic clouds-exporter --from-file=clouds.yml -n monitoring
    容器化部署需要将该配置以secrets形式挂载给cloudeye-exporter

3.4 cce集群(k8s集群)部署cloudeye-exporter

  1. 首先部署负载和service

    apiversion: apps/v1
    kind: deployment
    metadata:
      name: cloudeye-exporter
      namespace: monitoring
      labels:
        app: cloudeye-exporter
    spec:
      replicas: 1
      selector:
        matchlabels:
          app: cloudeye-exporter
      template:
        metadata:
          labels:
            app: cloudeye-exporter
        spec:
          volumes:
            - name: cloudeye
              secret:
                secretname: clouds-exporter
          imagepullsecrets:
            - name: default-secret
          containers:
          - name: cloudeye-exporter
            image: swr.cn-north-4.myhuaweicloud.com/k8s-solution/cloudeye-exporter:v2.0.6
            ports:
              - containerport: 8087
            resources:
              limits:
                cpu: 500m
                memory: 1gi
              requests:
                cpu: 100m
                memory: 500mi
            volumemounts:
              - name: cloudeye
                mountpath: "/root/clouds.yml"
                subpath: clouds.yml
    ---
    apiversion: v1
    kind: service
    metadata:
      name: cloudeye-exporter
      namespace: monitoring
      labels: 
        app: cloudeye-exporter
    spec:
      selector:
        app: cloudeye-exporter
      ports:
      - name: ces
        targetport: 8087  #业务监听端口
        port: 8087
        protocol: tcp
      type: clusterip
    
  2. 确认是cloudeye-exporter否暴露指标
    部署成功,查看pod信息。访问pod指标端点,确认指标源是否能暴露指标。
    curl http://podip:8087/metrics?services='sys.vpc'
    image.png
    cloudeye-exporter pod实例作为prometheus抓取指标的源端,可以暴露监控数据。

    查看service,确认访问service能否获取数据
    image.png

  3. 注意
    需要注意: 由于cloudeye-exporter需要访问公网端点: 。如果您使用的kuberntes平台是cce turbo集群,需要对容器网段配置公网snat。否则指标数据抓取会失败。


3.5 prometheus对接cloudeye-exporter获取指标

修改prometheus中的prometheus.yml文件配置。由于现在k8s集群中都会采用prometheus-operator形态部署prometheus。所以我们需要编写servicemonitor进行指标的获取。

  1. 以监控华为云vpc,elb服务为例
    抓取规则cloudeye-exporter-servicemonitor.yaml 如下:

    apiversion: monitoring.coreos.com/v1
    kind: servicemonitor
    metadata: 
      name: cloudeye-exporter
      namespace: monitoring 
      labels:
        app: cloudeye-exporter
    spec:
      endpoints:
        - interval: 1m
          scrapetimeout: 1m
          port: ces
          scheme: http
          params:
            services: ['sys.vpc,sys.elb']
      namespaceselector:
        matchnames:
        - monitoring
      selector:
        matchlabels:
          app: cloudeye-exporter
    
  2. 将上述抓取规则于集群中创建。等待片刻可观察到prometheus已经成功抓取
    image.png
    image.png

  3. 至此,cloudeye-exporter成功接入prometheus。


3.6 接入grafana大盘

华为云社区提供了若干个云服务现成的dashborad。我们可以拿来使用。

例如: 使用vpc云服务的dashboard。

  1. 将该dashboard的json文件上传到grafana中
    image.png
    选择好数据源后,点击导入即可。

  2. 发现异常
    会发现dashboard并未产生数据
    image.png

  3. 解决方式
    根据华为云社区声明: 如果需要直接使用以下模板,需要修改prometheus配置,增加获取企业项目信息的任务。所以我们还需要修改servicemonitor,在原来cloudeye-exporter-servicemonitor的基础上增加一项配置

    apiversion: monitoring.coreos.com/v1
    kind: servicemonitor
    metadata: 
      name: cloudeye-exporter
      namespace: monitoring 
      labels:
        app: cloudeye-exporter
    spec:
      endpoints:
        - interval: 1m
          scrapetimeout: 1m
          port: ces
          scheme: http
          params:
            services: ['sys.vpc,sys.elb']
        # 配置该任务获取企业项目信息,用于华为云云服务的dashboard
        - interval: 1m
          scrapetimeout: 1m
          port: ces
          path: "/eps-info"
          scheme: http
      namespaceselector:
        matchnames:
        - monitoring
      selector:
        matchlabels:
          app: cloudeye-exporter      
    

    在集群中将上述指标抓取规则更新后,等待片刻后。

  4. 前往prometheus页面可查看到,新的抓取任务已成功运行
    image.png
    image.png

  5. 再次观察grafana
    此时再前往grafana前端查看dashboard: 华为云vpc云服务dashboard已成功展示
    image.png

  6. 导入elb grafana dashboard
    image.png
    华为云elb监控信息也成功展示


目前已支持的grafana dashboard有:

  • 云搜索服务 css
  • 云专线 dcaas
  • 分布式缓存服务 dcs
  • 弹性云服务器 ecs
  • 弹性负载均衡 elb
  • 关系型数据库 rds
  • web应用防火墙 waf
  • 弹性公网ip和带宽 vpc
【4008云顶国际集团的版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200