本文介绍如何在Kubernetes上部署Prometheus,将监控数据采集到日志服务MetricStore中,并将日志服务MetricStore对接到Grafana实现监控数据可视化展示。

前提条件

  • 已拥有Kubernetes集群,集群版本在1.10以上。
  • 已创建MetricStore,详情请参见创建MetricStore
  • 已安装Grafana,详情请参见安装Grafana

背景信息

Prometheus作为面向云原生的监控软件,对Kubernetes提供了友好的支持。在Kubernetes中,几乎所有的组件都提供了Prometheus的指标接口,因此Prometheus基本成为Kubernetes监控的实施标准。

Grafana是一个开源的度量分析与可视化套件,兼容所有的Prometheus仪表盘模板。日志服务支持Grafana访问时序数据,您可直接将日志服务MetricStore作为Grafana的Prometheus数据源进行接入,实现时序数据可视化展示。

在自建Kubernetes上安装Prometheus

如果您使用自建Kubernetes,推荐以注册集群的方式接入到阿里云,注册好后按照阿里云Kubernetes安装方式安装Prometheus。如果您不使用注册集群方式,可通过Helm安装包安装Prometheus,安装前需先创建保密字典并调整默认配置

在阿里云Kubernetes上安装Prometheus

如果您使用阿里云Kubernetes,可直接在应用目录中安装并配置Prometheus将数据存储到日志服务。

  1. 登录容器服务管理控制台
  2. 创建命名空间。
    1. 在左侧导航栏中,单击命名空间
    2. 单击创建
    3. 配置名称monitoring,并单击确定
  3. 创建保密字典。
    1. 在左侧导航栏中,选择应用配置 > 保密字典
    2. 单击创建
    3. 配置如下参数,单击确定
      安装Prometheus
      参数 说明
      名称 配置为sls-ak
      命名空间 选中您在步骤2中创建的命名空间,即monitoring
      类型 选中Opaque,并添加如下两个键值对。
      • 名称username为您的RAM用户的AccessKeyID。
      • 名称password为您的RAM用户的AccessKeySecret。

      建议您使用只具备日志服务Project写入权限的RAM用户的AccessKey,详情请参见授予指定Project写入权限

  4. 创建PrometheusOperator。
    1. 在左侧导航中,选择市场 > 应用目录
    2. 单击ack-prometheus-operator
    3. 参数页签下,修改其中的配置项。
      • 调整prometheusSpec下的retention,建议修改为1d12h
      • tsdb下的enable设置为true,并增加remoteWrite配置。

        remoteWrite配置中的url为日志服务Metricstore的URL,请根据实际值替换。格式为https://{project}.{sls-enpoint}/prometheus/{project}/{metricstore}/api/v1/write。其中{sls-enpoint}为日志服务的Endpoint,详情请参见服务入口{project}{metricstore}为您已创建的日志服务的Project和Metricstore。

            remoteWrite:
            - basicAuth:
                username:
                  name: sls-ak
                  key: username
                password:
                  name: sls-ak
                  key: password
              queueConfig:
                batchSendDeadline: 20s
                maxBackoff: 5s
                maxRetries: 10
                minBackoff: 100ms
              ### url格式为https://{project}.{sls-enpoint}/prometheus/{project}/{metricstore}/api/v1/write
              ### {sls-enpoint}为日志服务的Endpoint,详情请参见服务入口。
              ### {project}{metricstore}替换为您已创建的日志服务的Project和Metricstore。
              url: https://sls-prometheus-test.cn-beijing.log.aliyuncs.com/prometheus/sls-prometheus-test/prometheus-raw/api/v1/write
      

使用Grafana访问Prometheus数据

  1. 登录Grafana。
  2. 在左侧导航栏,单击G1 > Data Sources
  3. Data Sources页签,单击Add data source
  4. 单击Prometheus区域中的Select
  5. Settings页签中,配置如下参数。
    参数 说明
    Name 配置数据源名称,例如Prometheus-01。
    HTTP
    • URL:日志服务MetricStore的URL,格式为https://{project}.{sls-enpoint}/prometheus/{project}/{metricstore}。其中{sls-enpoint}为日志服务的Endpoint,详情请参见服务入口{project}{metricstore}为您已创建的日志服务的Project和Metricstore,请根据实际值替换。例如https://sls-prometheus-test.cn-hangzhou.log.aliyuncs.com/prometheus/sls-prometheus-test/prometheus
      说明 为保证传输安全性,请务必使用https。
    • Whitelisted Cookies:添加访问白名单,可选。
    Auth 只需打开Basic auth开关。
    Basic Auth Details
    • User为阿里云账号的AccessKeyID。
    • Password为阿里云账号的AccessKeySecret。

    建议您使用仅具备日志服务Project只读权限的RAM用户的AccessKey,详情请参见授予指定Project只读权限

  6. 单击Save&Test
    配置完成后,您可以在Grafana上查看数据仪表盘。grafana