Skip to content
This repository has been archived by the owner on Oct 28, 2019. It is now read-only.

Latest commit

 

History

History
164 lines (109 loc) · 6.19 KB

README_cn.md

File metadata and controls

164 lines (109 loc) · 6.19 KB

阿里云 Exporter

license help wanted pypi docker Build Status

阿里云云监控的 Prometheus Exporter.

截图

gif

more screenshots here

快速开始

从 0.3.0 版本开始, 项目里提供了一个 docker-compose stack 来从零到一地构建一整套针对阿里云的监控告警系统(当然你也可以继续扩展这套系统来适配自有的IDC以及业务监控).

安装方式:

首先安装好 docker 1.17 以上版本, 安装方式可以自行 GG

接下来运行以下命令:

git clone [email protected]:aylei/aliyun-exporter.git
cd docker-compose
ALIYUN_ACCESS_ID=YOUR_ACCESS_ID ALIYUN_ACCESS_SECRET=YOUR_ACCESS_KEY docker-compose up

看到各个组件的启动日志基本滚完之后, 就可以访问 localhost:3000 来探索 Grafana 看板了.

更多的配置项请见 Docker Compose

安装

pip3 install aliyun-exporter

使用

首先需要在配置文件中写明阿里云的 Access Key 以及需要拉取的云监控指标,例子如下:

credential:
  access_key_id: <YOUR_ACCESS_KEY_ID>
  access_key_secret: <YOUR_ACCESS_KEY_SECRET>
  region_id: <REGION_ID>

metrics:
  acs_cdn:
  - name: QPS
  acs_mongodb:
  - name: CPUUtilization
    period: 300

启动 Exporter

> aliyun-exporter -p 9525 -c aliyun-exporter.yml

访问 localhost:9525/metrics 查看指标抓取是否成功

Docker 镜像

docker run -p 9525:9525 -v $(pwd)/aliyun-exporter.yml:$(pwd)/aliyun-exporter.yml aylei/aliyun-exporter:0.3.0 -c $(pwd)/aliyun-exporter.yml

Grafana 看板

预配置了一些 Grafana 看板. 见Screenshots

配置

rate_limit: 5 # 限流配置,每秒请求次数. 默认值: 10
credential:
  access_key_id: <YOUR_ACCESS_KEY_ID> # 必填
  access_key_secret: <YOUR_ACCESS_KEY_SECRET> # 必填
  region_id: <REGION_ID> # 默认值: 'cn-hangzhou'
  
metrics: # 必填, 目标指标配置
  acs_cdn: # 必填,云监控中定义的 Project 名字
  - name: QPS # 必填, 云监控中定义的指标名字
    rename: qps # 选填,定义对应的 Prometheus 指标名字,默认与云监控指标名字一致
    period: 60 # 选填,默认 60
    measure: Average # 选填,响应体中的指标值字段名,默认 'Average'

提示:

  • 云监控-预设监控项参考 可以查询 Project 与对应的指标
  • 云监控 API 有限流,假如被限流了可以调整限流配置
  • 云监控 API 每月调用量前 500 万次免费,需要计划好用量

假如配置了 50 个指标,再配置 Prometheus 60秒 抓取一次 Exporter,那么 30 天大约会用掉 2,160,000 次请求

特殊的 Project

有一些指标没有在云监控 API 中暴露, 为了保持配置的一致性, 我们定义了一些特殊 Project 来配置这些指标.

所有的特殊 Project:

  • rds_performance: RDS 的详细性能数据, 可选的指标名可以在这里找到: 性能参数表

自监控

cloudmonitor_request_latency_secondscloudmonitor_failed_request_latency_seconds 中记录了对 CloudMonitor API 的调用情况。

每一个 CloudMonitor 指标都有一个对应的 aliyun_{project}_{metric}_up 来表明该指标是否拉取成功。

Docker Compose

./docker-compose 目录下存放了整个 docker-compose stack, 这一套系统包含以下组件:

  • aliyun-exporter (就是本项目): 负责拉取阿里云的监控指标和资源信息
  • Prometheus: 负责存储指标以及计算警报
  • Alertmanager: 负责警报路由和警报通知
  • Grafana: 展现监控看板
  • prometheus-webhook-dingtalk: 为 Alertmanager 集成钉钉消息通知
# 配置 prometheus 的外部地址, 从警报跳转到详情时会用到, 需要外部可访问
export PROMETHEUS_HOST=YOUR_PUBLIC_IP_OR_HOSTNAME
# 配置钉钉机器人的 Token, 可以自行 GG 怎么创建钉钉机器人
export DINGTALK_TOKEN=YOUR_DINGTALK_ROBOT_TOEKN
# 配置阿里云 exporter 需要的验证信息
export ALIYUN_REGION=YOUR_REGION
export ALIYUN_ACCESS_ID=YOUR_ID
export ALIYUN_ACCESS_SECRET=YOUR_SECRET
# 后台运行整套系统
docker-compose up -d

启动后:

  • Grafana 默认监听 3000 端口
  • Alertmanager 默认监听 9093 端口
  • Prometheus 默认监听 9090 端口

启动之后, 预设的警报规则就会开始计算, 因此假如配置正确的话, 你可能会收到一些钉钉报警.

你可以修改 ./docker-compose/{component} 里的配置文件来自由配置各个组件, 有问题可以 GG 或者在 issue 里提问.

假如你自己制定了一些看板和警报规则, 非常欢迎你把它们贡献到项目里!

扩展与高可用

假如机器很多,云监控 API 可能比较慢,这时候可以把指标分拆多个 Exporter 实例中去。

HA 和 Prometheus 本身的 HA 方案一样,就是搭完全相同的两套监控。每套部署一台 Prometheus 加上对应的 Exporter。或者直接交给底下的 PaaS 设施来做 Standby。

部署两套会导致请求量会翻倍,要注意每月 API 调用量

贡献

我们欢迎 PR 或 issue 等任何形式的贡献! 你也可以在 help wanted label 下找到适合开始贡献的 issue!