通过AK/SK认证模式安装配置CES Exporter
当您在使用其他监控平台(例如Prometheus)时,可以通过配置CES Exporter将云监控服务指标数据对接到其他监控平台进行查看。将服务接入Prometheus前,需要先安装配置CES Exporter。
本章节为您介绍如何通过AK/SK认证模式安装配置CES Exporter。
约束与限制
前提条件
- 已获取用于部署CES Exporter的服务器的root密码、私网IP地址。
- 请确保CES Exporter配置文件中使用的华为云账号具有导出监控数据依赖的权限,具体权限请参阅CES Exporter导出监控数据依赖的接口及授权项。
- 已获取华为云账号的访问密钥,如何获取访问密钥请参阅新增访问密钥。
环境准备
以Ubuntu 18.04系统为例。
| 环境条件 | 描述 |
|---|---|
| ECS操作系统 | Ubuntu 18.04 |
| ECS私网IP | 192.168.0.xx |
安装配置cloudeye-exporter
- 进入cloudeye-exporter开源项目,获取cloudeye-exporter插件下载地址。
以v2.0.31版本为例:https://github.com/huaweicloud/cloudeye-exporter/releases/download/v2.0.31/cloudeye-exporter-v2.0.31.tar.gz
- 使用root用户登录用于部署CES Exporter的ECS,登录方式请参考Linux ECS登录方式概述。
- 执行以下命令下载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
- 下载成功后,执行以下命令,解压安装包。
tar -xzvf cloudeye-exporter-v2.0.31.tar.gz
- 编辑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"
表2 global参数说明 参数
参数说明
取值样例
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,不配置默认查询所有资源的指标,多个ID使用英文逗号进行分隔。关于如何查看企业项目ID,请参阅获取企业项目ID。
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
表3 auth参数说明 参数
参数说明
取值样例
auth_url
IAM用户认证地址,格式为“https://iam.{region_id}.myhuaweicloud.com/v3”,region_id请参阅地区和终端节点页面“区域”列。
https://iam.cn-north-4.myhuaweicloud.com/v3
project_name
华为云项目名称。
登录IAM控制台即可查看当前账号下的所有项目。
cn-north-4
access_key
IAM用户访问密钥ID。如何获取访问密钥请参阅新增访问密钥。
出于安全考虑,建议在配置文件中配置加密后的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信息请参阅地区和终端节点。
cn-north-4
- 启动cloudeye-exporter。
您可以选择命令方式启动cloudeye-exporter或Shell脚本启动cloudeye-exporter,命令方式简单快捷,适合临时调试时使用。脚本启动需要将命令、参数写到Shell脚本中,脚本文件可以保存和重复使用,方便管理。
- 若您使用当前cloudeye-exporter目录下的clouds.yml文件,请使用以下启动命令:
./cloudeye-exporter
- 若您需要使用其他目录下的clouds.yml文件,可以使用-config参数指定clouds.yml文件路径:
./cloudeye-exporter -config=/root/clouds.yml
- 出于安全考虑,CES Exporter提供了启动参数,避免AK/SK、proxy信息和https信息配置在clouds.yml文件中引起泄露。
-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提供了启动参数。建议在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,查看监控数据。
CES Exporter导出监控数据依赖的接口及授权项
如果需要导出云服务的监控数据,请确保账号拥有表4中列举的基础权限。部分服务在导出监控数据时,除了基础权限外,还需要对应云服务的特定权限,云服务及其对应的权限信息请参见表5。
| 服务 | 授权项 | 接口 | 接口说明 |
|---|---|---|---|
| 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 | 查询企业项目列表。 |
| 服务 | 授权项 | 接口 | 接口说明 |
|---|---|---|---|
| APIC | apig:instances:list | /v2/{project_id}/apigw/instances | 查询专享版实例列表。 |
| apig:apis:list | /v2/{project_id}/apigw/instances/{instance_id}/apis | 查看API列表。 | |
| apig:instances:get | /v2/{project_id}/apigw/instances/{instance_id} | 查看API网关专享版实例。 | |
| apig:apps:list | /v2/{project_id}/apigw/instances/{instance_id}/apps | 查看应用列表。 | |
| apig:groups:list | /v2/{project_id}/apigw/instances/{instance_id}/api-groups | 查看API分组列表。 | |
| 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:bandwidthPackages:list | /v3/{domain_id}/ccaas/bandwidth-packages | 查询带宽包列表。 | |
| 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 | 查询实例列表。 |
| 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: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:listeners:list | /v3/{project_id}/elb/listeners | 查询listener列表。 | |
| elb:pools:list | /v3/{project_id}/elb/pools | 查询后端云服务器组列表。 | |
| 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: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独享引擎列表。 |