# 通过AK/SK认证模式安装配置CES Exporter
当您在使用其他监控平台（例如Prometheus）时，可以通过配置CES Exporter将云监控服务指标数据对接到其他监控平台进行查看。将服务接入Prometheus前，需要先安装配置CES Exporter。
本章节为您介绍如何通过AK/SK认证模式安装配置CES Exporter。
#### 约束与限制
- CES Exporter目前仅支持安装在**Linux x86架构的操作系统** 中，主机规格选择**"4vCPUs \| 8GiB"或更高配置**。
- 如果您使用本地系统部署CES Exporter，请确保网络可以连通公网，才能查询资源和指标数据。
- 当您部署CES Exporter服务器为ECS，必须绑定EIP，才能访问数据。绑定EIP的操作方法，请参见[为资源绑定EIP](https://support.huaweicloud.com/usermanual-eip/eip_0009.html#section2)。
- CES Exporter支持的拓展标签信息请参阅[支持的拓展标签说明](https://support.huaweicloud.com/usermanual-ces/ces_01_0155.html#ces_01_0155__section1915431714423)。
- 在启动CES Exporter时需要使用华为云账号的访问密钥，不能使用临时访问密钥。
 
#### 前提条件
- 已获取用于部署CES Exporter的服务器的root密码、私网IP地址。
- 请确保CES Exporter配置文件中使用的华为云账号具有导出监控数据依赖的权限，具体权限请参阅[CES Exporter导出监控数据依赖的接口及授权项]。
- 已获取华为云账号的访问密钥，如何获取访问密钥请参阅[新增访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html#section1)。
 
#### 环境准备
以Ubuntu 18.04系统为例。
表1环境准备 
| 环境条件      | 描述           |
|:---|:---|
| ECS操作系统 | Ubuntu 18.04 |
| ECS私网IP | 192.168.0.xx |
   
#### 安装配置cloudeye-exporter
1. 进入[cloudeye-exporter开源项目](https://github.com/huaweicloud/cloudeye-exporter/releases)，获取cloudeye-exporter插件下载地址。
   以v2.0.31版本为例：<https://github.com/huaweicloud/cloudeye-exporter/releases/download/v2.0.31/cloudeye-exporter-v2.0.31.tar.gz>
   
2. 使用root用户登录用于部署CES Exporter的ECS，登录方式请参考[Linux ECS登录方式概述](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0013771089.html)。
3. 执行以下命令下载cloudeye-exporter。
   ```
   mkdir cloudeye-exporter
   cd cloudeye-exporter
   wget https://github.com/huaweicloud/cloudeye-exporter/releases/download/v2.0.31/cloudeye-exporter-v2.0.31.tar.gz
   ```
   
4. 下载成功后，执行以下命令，解压安装包。
   ```
   tar -xzvf cloudeye-exporter-v2.0.31.tar.gz
   ```
   
5. 编辑clouds.yml配置文件，配置公有云信息。
   以下内容以华北-北京四区域为例，对clouds.yml配置文件进行修改：
   ```
   global:
     prefix: "huaweicloud"
     port: "127.0.0.1:8087"
     scrape_batch_size: 300
     resource_sync_interval_minutes: 20
     ignore_ssl_verify: false
   auth:
     auth_url: "https://iam.cn-north-4.myhuaweicloud.com/v3"
     project_name: "cn-north-4"
     access_key: ""
     secret_key: ""
     region: "cn-north-4"
   ```
   表2global参数说明 
   | 参数                            | 参数说明                                                                                                                                                                                                                                                                                                                                                | 取值样例                                                          |
   |:---|:---|:---|
   | prefix                         | CES Exporter会自动将查询到的指标数据与配置的前缀进行拼接，默认前缀为huaweicloud，无需进行修改。                                                                                                                                                                                                                                                                                          | huaweicloud                                                    |
   | port                           | 监听端口。 出于安全考虑，不建议将Exporter服务端口暴露到公网，建议配置为127.0.0.1:{port}，或{内网ip}:{port}，例如：192.168.1.100:8087。如果业务需要将该端口暴露到公网，请确保合理配置安全组，防火墙，iptables等访问控制策略，以确保最小访问权限。 注意： 默认的监控端口为8087。                                                                                                             | 192.168.1.100:8087                                            |
   | scrape_batch_size               | 查询CES指标数据时分页数，例如：300表示每页包含300条指标数据。保持默认即可。                                                                                                                                                                                                                                                                                                         | 300                                                           |
   | resource_sync_interval_minutes | 资源信息更新频率，单位为分钟，默认180分钟更新一次。当参数值小于10分钟，资源信息更新频率为10分钟一次。                                                                                                                                                                                                                                                                                               | 20                                                            |
   | ep_ids                         | **可选配置** ，根据企业项目ID过滤资源，支持企业项目id过滤的云服务参阅[表1](https://support.huaweicloud.com/usermanual-ces/ces_01_0155.html#ces_01_0155__table1470819489185)，不配置默认查询所有资源的指标，多个ID使用英文逗号进行分隔。关于如何查看企业项目ID，请参阅[获取企业项目ID](https://support.huaweicloud.com/api-ces/ces_03_0061.html)。                                                                                   | c3dddfcb-7f21-4ac3-a386-24xxx1,c3dddfcb-7f21-4ac3-a386-24xxx2 |
   | logs_conf_path                 | **可选配置**，用于指定日志配置文件路径，建议使用绝对路径。配置文件中不增加该参数或参数值为空时，将默认使用执行启动命令所在目录下的日志配置文件logs.yml。                                                                                                                                                                                                                                                                     | /root/logs.yml                                                 |
   | metrics_conf_path             | **可选配置**，用于指定指标配置文件路径，指标配置文件用于配置指标白名单。 建议使用绝对路径。配置文件中不增加该参数或参数值为空时，将默认使用执行启动命令所在目录下的指标配置文件metric.yml。                                                                                                                                                                                                                 | /root/metric.yml                                               |
   | endpoints_conf_path             | **可选配置**，用于指定服务域名配置文件路径。 建议使用绝对路径。配置文件中不增加该参数或参数值为空时，将默认使用执行启动命令所在目录下的服务域名配置文件endpoints.yml。                                                                                                                                                                                                                            | /root/endpoints.yml                                           |
   | ignore_ssl_verify               | **可选配置**，Exporter查询资源或指标时，是否校验ssl证书。若用户因ssl证书校验导致功能异常，可将该配置项配置为true跳过ssl证书校验。参数取值如下： - true：查询资源或监控指标数据时，跳过ssl证书校验。如果由于ssl证书校验导致功能异常，例如查询监控数据失败，可将该配置项配置为true。  - false：查询资源或监控指标数据时，需要进行ssl证书校验。   | false                                                         |
   | client_cn                       | **可选配置**，指定被信任的DNS列表，用于校验https证书链中的DNS名称，列表中多个DNS名称请以英文逗号分隔。                                                                                                                                                                                                                                                                                         | 100.125.1.250                                                  |
   | unit_standardization_enabled   | **可选配置**，用于启用指标数据的单位优化能力，默认关闭。启用后，原单位unit与华为云CES控制台、帮助中心文档保持一致，同时新增unit_v2，为华为云各云服务的指标单位制定新标准，更易读，更易理解，方便用户在配置可视化监控看板（例如：Grafana看板）时选择单位使用。                                                                                                                                                                                                           | false                                                          |
   | i18n_config_file_path          | **可选配置**，指标数据的标签优化能力依赖于CES I18N国际化配置信息，Exporter默认从CES服务I18N接口获取国际化配置，若接口不可用，建议指定该国际化配置的本地文件路径。                                                                                                                                                                                                                                                      | /root/i18n.json                                                  |
   | unit_standardization_file_path | **可选配置** ，指标数据的单位标签优化能力依赖该文件，开启优化能力时建议指定该配置文件路径。unit_standardization_enabled为**true**时该参数配置有效。                                                                                                                                                                                                                                                      | /root/unit_standard_transform.json                            |
   | metric_timestamp_export_enabled | **可选配置**，用于导出指标原始时间戳，默认false。启用后，指标时间戳字段将取值为实际的采集时间，否则取值为监控平台（例如：Prometheus）通过Exporter请求导出指标数据的时间。                                                                                                                                                                                                                                                     | false                                                           |
   | metric_query_duration          | **可选配置**，用于查询指标数据的时间间隔，默认10分钟 可根据指标上报周期自行配置。 **取值范围：** 10\~60 **单位：** 分钟                                                                                                                                                      | 10                                                            |
   | proxy_schema                   | **可选配置**，当需要配置代理查询资源和指标时，需要输入代理协议。                                                                                                                                                                                                                                                                                                                   | http                                                            |
   | proxy_host                     | **可选配置**，当需要配置代理查询资源和指标时，需要代理地址。                                                                                                                                                                                                                                                                                                                     | proxy.huaweicloud.com                                          |
   | proxy_port                     | **可选配置**，当需要配置代理查询资源和指标时，需要代理端口号。                                                                                                                                                                                                                                                                                                                   | 8080                                                           |
   | proxy_username                   | **可选配置**，如果配置的代理需要认证，需要输入代理认证的用户名。 说明： 出于安全考虑，您还可以选择在启动CES Exporter时使用-p参数并输入代理认证的用户名和密码，避免明文配置在clouds.yml文件中引起泄露。                                                                                                                                                                                                       | username                                                       |
   | proxy_password                 | **可选配置**，如果配置的代理需要认证，需要输入代理认证的密码。                                                                                                                                                                                                                                                                                                                   | password                                                         |
   | rms_retry_times                 | **可选配置**，从配置审计服务查询资源失败时可以重试，直至成功；最大重试次数为10次，默认为1次。                                                                                                                                                                                                                                                                                                    | 1                                                               |
      
   表3auth参数说明 
   | 参数           | 参数说明                                                                                                                                                                                                                                                                                                                       | 取值样例                                       |
   |:---|:---|:---|
   | auth_url    | IAM用户认证地址，格式为"https://iam.{region_id}.myhuaweicloud.com/v3"，region_id请参阅[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/CES)页面"区域"列。                                                                                                                                                                       | https://iam.cn-north-4.myhuaweicloud.com/v3 |
   | project_name | 华为云项目名称。 登录[IAM控制台](https://console.huaweicloud.com/iam/?locale=zh-cn#/iam/projects)即可查看当前账号下的所有项目。                                                                                                                                                                                          | cn-north-4                               |
   | access_key    | IAM用户访问密钥ID。如何获取访问密钥请参阅[新增访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html#section1)。 出于安全考虑，建议在配置文件中配置加密后的AK、SK，由于Exporter只能传明文的AK、SK，您还需要使用自己的解密方式对脚本中的AK、SK解密。 说明： 出于安全考虑，您还可以选择在启动CES Exporter时使用-s参数并输入ak、sk，避免明文配置在clouds.yml文件中引起泄露。 | *your_decrypt_function("加密的AK")*           |
   | secret_key     | IAM用户秘密访问密钥，与access_key一同使用。                                                                                                                                                                                                                                                                                              | *your_decrypt_function("加密的SK")*           |
   | region        | 指标数据所属区域的区域ID，区域ID信息请参阅[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/CES)。                                                                                                                                                                                                                             | cn-north-4                                |
      
   
6. 启动cloudeye-exporter。 您可以选择[命令方式启动cloudeye-exporter]或[Shell脚本启动cloudeye-exporter]，命令方式简单快捷，适合临时调试时使用。脚本启动需要将命令、参数写到Shell脚本中，脚本文件可以保存和重复使用，方便管理。
   
 
- [命令方式启动cloudeye-exporter]
  
  - 后台启动命令如下，推荐使用nohup将Exporter转为后台运行，并将日志输出到server.log文件，便于后续运维排查问题。
    ```
    nohup ./cloudeye-exporter > server.log 2>&1 &
    ```
    
  
  - 前台启动命令如下，若命令行无报错信息返回，表示Exporter启动成功。
    ```
    ./cloudeye-exporter
    ```
    
  
  
  ![](https://support.huaweicloud.com/usermanual-ces/public_sys-resources/caution_3.0-zh-cn.png)
  - 启动Exporter时，若未指定clouds.yml文件路径，系统将默认使用当前cloudeye-exporter目录下的clouds.yml文件，如需使用其他目录下的clouds.yml文件，需要通过-config参数指定其路径，示例如下：
    ```
    nohup ./cloudeye-exporter -config=/root/clouds.yml > server.log 2>&1 &
    ```
    
  
  - 出于安全考虑，CES Exporter提供了启动参数，避免AK/SK、proxy信息和https信息配置在clouds.yml文件中引起泄露。 **-s**：通过命令行交互的方式输入AK/SK。
    **-p**：通过命令行交互的方式输入代理的userName和password。
    **-k**：以https协议（双向认证）启动CES Exporter，通过命令行交互的方式输入CA证书路径、服务端https证书路径、服务端https私钥路径以及私钥密码（建议您使用自己公司购买的通过权威认证的CA证书制作双向证书，也支持自签名证书，并将证书上传到主机上，例如："/opt/cloud/cloudeye-exporter"）。
    
  
  - 在多参数场景下，则参数顺序为-s -p -k。
    ```
    ./cloudeye-exporter -s true -p true -k true
    ```
    
   
- [Shell脚本启动cloudeye-exporter]
  
  1. 创建Shell脚本。
  
  2. 在脚本中配置以下内容。
     ![](https://support.huaweicloud.com/usermanual-ces/public_sys-resources/caution_3.0-zh-cn.png)
     出于安全考虑，cloudeye-exporter提供了启动参数。建议在shell脚本中配置加密后的AK、SK、proxyPassword和CA证书、服务端https证书、私钥以及私钥密码信息以及proxyUserName信息，并分别以huaweiCloud_AK、huaweiCloud_SK、huaweiCloud_ProxyUserName、 huaweiCloud_ProxyPassword、root_path、server_crt_path、server_key_path、 huaweiCloud_https_password参数传入CES Exporter。
     ```
     #!/bin/bash
     huaweiCloud_AK=your_decrypt_function("加密的AK")
     huaweiCloud_SK=your_decrypt_function("加密的SK")
     huaweiCloud_ProxyUserName="userName"
     huaweiCloud_ProxyPassword=your_decrypt_function("加密的proxyPassword")
     huaweiCloud_https_ca=your_decrypt_function("加密的CA证书")
     huaweiCloud_https_crt=your_decrypt_function("加密的https证书")
     huaweiCloud_https_key=your_decrypt_function("加密的https私钥")
     huaweiCloud_https_password=your_decrypt_function("加密的https私钥密码")
     root_path="/opt/cloud/cloudeye-exporter/root_crt"
     server_crt_path="/opt/cloud/cloudeye-exporter/server_crt"
     server_key_path="/opt/cloud/cloudeye-exporter/server_key"
     # CA证书写入CA临时文件，exporter读取完毕后会自动删除
     cat > $root_path << EOF
     $huaweiCloud_https_ca
     EOF
     # https证书写入证书临时文件，exporter读取完毕后会自动删除
     cat > $server_crt_path << EOF
     $huaweiCloud_https_crt
     EOF
     # 私钥写入私钥临时文件，exporter读取完毕后会自动删除
     cat > $server_key_path << EOF
     $huaweiCloud_https_key
     EOF
     ./cloudeye-exporter -s=true -p=true -k=true<<EOF
     $huaweiCloud_AK $huaweiCloud_SK
     $huaweiCloud_ProxyUserName $huaweiCloud_ProxyPassword
     $root_path $server_crt_path $server_key_path $huaweiCloud_https_password
     EOF
     ```
     
   
#### 后续操作
CES Exporter启动成功后，您就可以[将监控数据导出到自建Prometheus/Grafana](https://support.huaweicloud.com/usermanual-ces/ces_01_0154.html)，查看监控数据。
 #### CES Exporter导出监控数据依赖的接口及授权项
如果需要导出云服务的监控数据，请确保账号拥有[表4]中列举的基础权限。部分服务在导出监控数据时，除了基础权限外，还需要对应云服务的特定权限，云服务及其对应的权限信息请参见[表5]。
 表4基础权限 
| 服务     | 授权项                          | 接口                                                                                  | 接口说明                        |
|:---|:---|:---|:---|
| IAM    | iam:projects:listProjects     | /v3/projects                                                                        | 查询指定条件下的项目列表。              |
| IAM    | 任意一个全局类权限。                   | /v3/auth/domains                                                                     | 查询IAM用户可以访问的账号详情。         |
| CES  | ces:namespacesDimensions:list | /v2/{project_id}/instances/{instance_id}/agent-dimensions                            | 查询主机监控维度指标信息。               |
| CES    | ces:metrics:list                | /V1.0/{project_id}/metrics                                                           | 查询系统当前可监控指标列表。             |
| CES    | ces:metricData:list           | /V1.0/{project_id}/batch-query-metric-data                                           | 批量查询指定时间范围内指定指标的指定粒度的监控数据。 |
| Config | rms:resources:list           | /v1/resource-manager/domains/{domain_id}/provider/{provider}/type/{type}/resource | 列举指定类型的资源。                   |
| EPS    | eps:enterpriseProjects:list   | /v1.0/enterprise-projects                                                             | 查询企业项目列表。                  |
   
 表5云服务查询接口及授权项说明 
| 服务              | 授权项                            | 接口                                                         | 接口说明              |
|:---|:---|:---|:---|
| APIC           | apig:instances:list              | /v2/{project_id}/apigw/instances                         | 查询专享版实例列表。     |
| APIC           | apig:apis:list                 | /v2/{project_id}/apigw/instances/{instance_id}/apis       | 查看API列表。          |
| APIC           | apig:instances:get             | /v2/{project_id}/apigw/instances/{instance_id}           | 查看API网关专享版实例。   |
| APIC           | apig:apps:list                 | /v2/{project_id}/apigw/instances/{instance_id}/apps         | 查看应用列表。         |
| APIC           | apig:groups:list                 | /v2/{project_id}/apigw/instances/{instance_id}/api-groups | 查看API分组列表。       |
| APIC           | apig:plugins:list              | /v2/{project_id}/apigw/instances/{instance_id}/plugins   | 查看插件列表。          |
| CBR             | cbr:vaults:list                 | /v3/{project_id}/vaults                                    | 查询存储库列表。         |
| CC            | cc:cloudConnections:list       | /v3/{domain_id}/ccaas/cloud-connections                    | 查询云连接列表。       |
| CC            | cc:bandwidthPackages:list       | /v3/{domain_id}/ccaas/bandwidth-packages                  | 查询带宽包列表。       |
| CC            | cc:interRegionBandwidths:list | /v3/{domain_id}/ccaas/inter-region-bandwidths            | 查询域间带宽列表。       |
| CDM              | cdm:cluster:list               | /v1.1/{project_id}/clusters                               | 查询集群列表。         |
| CloudTable     | cloudtable:cluster:list        | /v2/{project_id}/clusters                                  | 查询集群列表。        |
| DAYU(DIS)     | dis:stream:list                | /v2/{project_id}/streams                                | 查询通道列表。           |
| DDMS            | ddm:instance:list             | /v1/{project_id}/instances                                 | 查询DDM实例列表。     |
| DDOS           | cnad:package:list               | /v1/cnad/packages                                        | 查询实例列表。         |
| DDOS           | cnad:protectedIp:list           | /v1/cnad/protected-ips                                     | 查询防护对象列表。     |
| DDS            | dds:instance:list               | /v3/{project_id}/instances                                | 查询实例列表。          |
| DLI           | dli:jobs:listAll                | /v1.0/{project_id}/streaming/jobs                          | 查询flink作业列表。     |
| DLI           | dli:elasticresourcepool:list   | /v3/{project_id}/elastic-resource-pools                  | 查询所有弹性资源池。      |
| DWS           | dws:openAPICluster:list        | /v1.0/{project_id}/clusters                              | 查询集群列表。           |
| ELB          | elb:loadbalancers:list         | /v3/{project_id}/elb/loadbalancers                         | 查询负载均衡器列表。     |
| ELB          | elb:listeners:list              | /v3/{project_id}/elb/listeners                            | 查询listener列表。 |
| ELB          | elb:pools:list                  | /v3/{project_id}/elb/pools                                 | 查询后端云服务器组列表。    |
| ELB          | elb:availability-zones:list    | /v3/{project_id}/elb/availability-zones                  | 查询可用区列表。         |
| GaussDBV5      | gaussdb:instance:list         | /v3/{project_id}/instances                              | 查询数据库实例列表。       |
| GCB           | cc:gcbandwidths:list             | /v3/{domain_id}/gcb/gcbandwidths                          | 查询全域互联带宽列表。     |
| LTS             | lts:groups:list               | /v2/{project_id}/groups                                 | 查询账号下所有日志组。      |
| LTS             | lts:topics:list                | /v2/{project_id}/groups/{log_group_id}/streams           | 查询指定日志组下的所有日志流。 |
| LakeFormation | lakeformation:instance:list     | /v1/{project_id}/instances                                | 查询实例列表。         |
| ModelArts    | modelarts:service:get         | /v1/{project_id}/services/{service_id}                    | 查询模型服务详情。      |
| MRS           | mrs:cluster:list               | /v1.1/{project_id}/cluster_infos                            | 查询集群列表（V1）。     |
| NoSQL        | nosql:instance:list              | /v3/{project_id}/instances                                 | 查询实例列表和详情。      |
| SFS          | sfs:shares:getShare              | /v2/{project_id}/shares                                   | 查询所有共享。        |
| WAF(Premium)    | waf:premiumInstance:list      | /v1/{project_id}/premium-waf/instance                    | 查询WAF独享引擎列表。    |
   
