• [集成开发] 如何确认从ManageOne接收到的SNMP告警的完整性
    1 背景说明ManageOne运维面作为华为云Stack解决方案的运维中心,可对数据中心内的物理设备、虚拟化资源、云服务等多种资源进行统一告警的管理,同时ManageOne运维侧对外提供了SNMP接口,可以通过Trap方式主动推送告警给第三方网管系统,具有实时性高的特点,但SNMP基于UDP协议,为不可靠协议,如果网络出现波动,则有可能出现丢包,此时有可能出现丢失告警通知的情况。为避免这种情况出现,可以通过接口定期查询的方式,确保接收到的数据未出现丢失。2 准备工作本文档指导适用于华为云Stack ManageOne 6.5.x、8.x版本。正式调用ManageOne运维侧接口前,请先检查准备工作是否已完成,参考链接:cid:link_13 查询步骤步骤1 获取token调用方法:PUT调用URL:https://{运维侧对外访问域名}/rest/plat/smapp/v1/oauth/token请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求body:{    "grantType": "password",    "userName": "XXX",    "value": "***"}响应示例:{ "accessSession": "xxxxxxxxxxxxx", "roaRand": "xxxxxxxxxxxxx", "expires": 1800, "additionalInfo": null}accessSession的值即为token值。步骤2 查询当前告警流水号可指定过滤条件查询告警的sn号列表(详细可参考:如何条件查询告警流水号)具体请求示例如下:调用方法:POST调用URL:https://{运维侧对外访问域名}/rest/fault/v1/current-alarms/csns(查询历史告警流水号使用此链接:https://{运维侧对外访问域名}/rest/fault/v1/history-alarms/csns)请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8X-Auth-Token:xxxxxxxxxxxxx请求体:(其中values填写需要查询的时间范围的时间戳){ "query": { "filters": [ { "name": "OCCURUTC", "field": "OCCURUTC", "operator": "BETWEEN", "values": [ 1763103600000, 1763107200000 ] } ] }, "sort": [ { "field": "OCCURUTC", "order": "desc" } ] }响应体示例:{ "count": 26, "sizeExceeded": false, "csns": [ 335296, 316826, 313652, 311858, 137171, 132276, 129400, 129396, 129009, 124491, 124106, 120060, 120057, 120053, 119986, 119982, 119855, 119854, 118422, 117654, 117650, 114924, 114923, 114895, 113497, 112730 ]}步骤3 查询当前告警详情(可选)将上面查询到的告警流水号,与本地接收到的告警流水号对比。如果发现本地告警有缺失,则将上面接口查询到的告警流水号取出,并进一步查询告警详情,补全本地告警数据库。根据步骤2中查询到的csn号列表,我们查询告警的详细信息。csn列表以查询参数包含在请求中,建议数量不超过200个。具体请求示例如下:调用方法:GET调用URL:https://{运维侧对外访问域名}/rest/fault/v1/current-alarms?csns=316826&csns=335296(查询历史告警详情使用此链接:https://{运维侧对外访问域名}/rest/fault/v1/history-alarms)请求头:lication/jsonContent-Type:application/json;charset=UTF-8X-Auth-Token:xxxxxxxxxxxxx请求体:无响应体示例:[ { "csn": 335296, "category": 1, "version": 14, "changeFlag": 1, "count": 1, "mergeGroupId": 311562, "merged": 2, "cleared": 0, "clearUser": "", "clearUtc": 0, "clearTime": 0, "clearDst": 0, "clearCategory": 1, "acked": 0, "ackUser": "", "ackUtc": 0, "firstOccurUtc": 1525607580000, "firstOccurTime": 0, "firstOccurDst": 0, "occurUtc": 1525607580000, "occurTime": 0, "occurDst": 0, "arriveUtc": 1525762550339, "latestOccurUtc": 1525607580000, "latestOccurTime": 0, "latestOccurDst": 0, "matchKey": "OSS_9B01FA7F49343EE691EAD50201864D5C_1407379178586113_1", "mergeKey": "oMMsTjIqr5egAX/Tjx7y0A", "nativeMeDn": "006502D7-083F-E611-92AB-9C37F4994BC6", "nativeMoDn": "", "nativeMoName": "", "meDn": "9B01FA7F49343EE691EAD50201864D5C", "meName": "006502D7-083F-E611-92AB-9C37F4994BC6", "moc": "", "meCategory": "PhysicalHost", "meType": "SYS_PhysicalHost", "productName": "", "alarmGroupId": "278460410", "originSystemType": "OSS", "originSystemId": "0", "originSystem": "OSS", "originSystemName": "OSS", "tenant": "", "tenantId": "", "regionId": "C4CA4238A0B933828DCC509A6F75849B", "shardId": 125, "region": "global", "dcId": "", "dcName": "", "svcGroupId": "", "manufacturer": "", "domain": "", "address": "192.166.76.174", "moi": "集群=manage-aggr, 物理主机名称=006502D7-083F-E611-92AB-9C37F4994BC6, 管理IP地址=192.166.76.174, 虚拟化类型=kvm", "backupStatus": 0, "identifier": 0, "subCsn": 0, "eventType": 4, "alarmId": "0005000100010001", "alarmName": "CPU使用率超过阈值", "severity": 1, "probableCause": "", "reasonId": 0, "serviceAffectedType": 0, "affectedService": "", "rootCsn": "", "subRootCsn": "", "additionalInformation": "产生条件≥1%, 发生时采集值=5.0%, 发生时刻=2018-05-06 19:53:00", "userData": "", "comment": "", "specialAlarmStatus": 0, "corrGroupId": "", "workOrderId": "", "workOrderSender": "", "workOrderUtc": 0, "workOrderStatus": "0", "invalidated": 0, "ownerUID": "", "aggrGroupId": "", "aggrRootCsn": "", "aggrStatus": 0, "ruleName": "", "azoneId": "", "azoneName": "", "logicalRegionId": "D24CF618FC443FA48BC808A4EA428172", "logicalRegionName": "cn-north", "resPoolId": "", "resPoolName": "", "resGroupId": "", "vdcId": "", "vdcName": "", "deviceTypeId": "", "clearType": 0, "ackDst": 0, "backedupOnSource": 0, "ckSource": 0, "locParseFlag": 0, "commentUtc": 0, "commentUser": "", "changedFields": [], "domainSubnetId": "", "reportNorth": 0, "extParams": {} }, {.....}]关于接口详细字段的解释,请参考:cid:link_2
  • [集成开发] ManageOne获取租户操作日志
    1 说明ManageOne运营面支持记录租户操作日志,使得用户可以了解本人或他人的操作信息,便于定位问题和排除故障等。为方便第三方审计系统获取ManageOne运营面租户日志(租户申请资源,创建用户等操作相关的日志),ManageOne开放了租户查询日志接口,该接口支持查询所有租户操作日志,也支持查询指定租户操作日志。2 接口列表&准备工作正式调用接口前,需要获取接口文档,账号,域名和对接账号,请参考:cid:link_0查询租户操作日志涉及到的接口如下:序号URL说明域名1【POST】/v3/auth/tokens获取tokenIAM北向接口域名(iam-apigateway-proxy.xxxxxx)2【GET】/rest/octrace/v3.0/traces查询租户操作日志运维面北向接口域名(oc.{region_id}.xxxxxx)3 获取租户操作日志步骤1 获取token获得运营管理员权限的token,示例如下:(如仅查询单个租户的操作日志,可替换为VDC管理员的token)请求URL:https://{运营侧北向接口对外域名}/v3/auth/tokens请求方法:POST请求头示例:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体示例:{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "XXXXXX", "password": "XXXXXX", "domain": { "name": "mo_bss_admin" } } } }, "scope": { "domain": { "name": "mo_bss_admin" } } }} 返回的token在响应头中,示例如下:Content-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤2 查询租户操作日志请求URL:https://{运维侧北向接口对外域名}/rest/octrace/v3.0/traces?limit=3&start=0&language=zh-cn 说明:URL路径参数支持操作日志过滤,具体过滤条件和参数详细信息及说明参考《ManageOne 8.x 运维面API参考 .docx》文档中的“查询操作日志接口”章节。请求方法:GET请求头示例:Content-Type: application/json Accept: application/json X-Auth-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==请求体:无响应体示例:{    "total": 102619,    "traces": [        {            "user_name": "vdc_admin",            "trace_message": "修改服务成功。",            "source_ip": "160.133.65.30",            "domain_id": "b6ff69d6703748bebd7b3075cf97059b",            "domain_name": "op_service",            "trace_type": "ConsoleAction",            "project_id": "system",            "httpCode": 200,            "invoke_trace_id": "7eb520a8f82bff147eb520a8f82bff14",            "trace_id": "806f2152-2c24-4b02-9405-9a31c42cb2cd",            "trace_result": "successed",            "trace_name": "修改服务",            "resource_type": "Product",            "end_time": 1594024617416,            "trace_rating": "normal",            "api_version": "v2",            "start_time": "1594024617416",            "service_type": "MOProduct",            "user_id": "32cb5a3c9de44bcf9696db98c1db828a",            "resource_id": "e02dd4ad12aa46e997bbce03ab00dc43",            "resource_name": "安装Nginx服务",            "record_time": 1594024617431,            "request_id": "RouteID-movappservice-15-0-200706163657-451712"        },        {            "user_name": "vdc_admin",            "trace_message": "修改服务成功。",            "source_ip": "160.133.65.30",            "domain_id": "b6ff69d6703748bebd7b3075cf97059b",            "domain_name": "op_service",            "trace_type": "ConsoleAction",            "project_id": "system",            "httpCode": 200,            "invoke_trace_id": "7eb520a8f82bff147eb520a8f82bff14",            "trace_id": "59907ba2-2852-4ce1-bb54-8d0cba1d302f",            "trace_result": "successed",            "trace_name": "修改服务",            "resource_type": "Product",            "end_time": 1594024617225,            "trace_rating": "normal",            "api_version": "v2",            "start_time": "1594024617225",            "service_type": "MOProduct",            "user_id": "32cb5a3c9de44bcf9696db98c1db828a",            "resource_id": "c5b9faa868364c1fb94a117abfd39e56",            "resource_name": "安装Kafka集群",            "record_time": 1594024617235,            "request_id": "RouteID-movappservice-15-0-200706163657-451707"        },        {            "user_name": "vdc_admin",            "trace_message": "修改服务成功。",            "source_ip": "160.133.65.30",            "domain_id": "b6ff69d6703748bebd7b3075cf97059b",            "domain_name": "op_service",            "trace_type": "ConsoleAction",            "project_id": "system",            "httpCode": 200,            "invoke_trace_id": "7eb520a8f82bff147eb520a8f82bff14",            "trace_id": "d97c05a4-8991-4a16-8d63-312d84e16c4b",            "trace_result": "successed",            "trace_name": "修改服务",            "resource_type": "Product",            "end_time": 1594024616965,            "trace_rating": "normal",            "api_version": "v2",            "start_time": "1594024616965",            "service_type": "MOProduct",            "user_id": "32cb5a3c9de44bcf9696db98c1db828a",            "resource_id": "48b119eb0feb459698ffa16a545e2527",            "resource_name": "安装Kafka服务",            "record_time": 1594024616974,            "request_id": "RouteID-movappservice-15-0-200706163656-451702"        }    ]} 
  • [集成开发] 【ManageOne运营侧】如何获取用户的Token
    1 背景介绍第三方系统对接华为云Stack时,需要对接实现的功能不同,需要使用的账号角色也不同,获取token时,也需要指定权限范围,才能正确的调用接口。这里给出常见权限的token,方便开发者对号入座,使用正确的token调用接口。2 获取用户Token2-1 获取运营管理员Token适用场景:运营管理员拥有全局用户管理、租户管理、计量和日志查询权限,不具备申请使用云服务资源的权限。调用准备:1、获得运营管理员账号密码.2、正式调用接口前,您需要获取对应的IP、IAM对外域名,请参考:cid:link_0调用步骤:1、获得scope权限范围为domain的运营管理员token,运营管理员的domain为固定值,mo_bss_admin,示例如下:请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:{    "auth": {        "identity": {            "methods": [                "password"            ],            "password": {                "user": {                    "domain": {                        "name": "mo_bss_admin"                    },                    "name": "XXXXXX",                    "password": "XXXXXX"                }            }        },        "scope": {            "domain": {                "name": "mo_bss_admin"            }        }    }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedDate: Wed, 12 Feb 2020 07:14:47 GMTContent-Type: application/json; charset=utf-8Transfer-Encoding: chunkedConnection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-IAM-Trace-Id: df659e8ff4feecf1adfffe72f7335d40ETag: W/"259-Qgmz1aPq7XYjfweWaVCVmseNMls"X-Request-Id: df659e8ff4feecf1adfffe72f7335d40Server: api-gatewayX-Subject-Token的值即为我们所需要的token2-2 获取VDC管理员或租户用户的Token适用场景:对租户内部进行用户、资源空间(资源集)、企业项目等管理;申请和管理云资源。调用准备:1、正式调用接口前,您需要获取对应的IP、IAM对外访问域名,请参考:cid:link_02、获得VDC管理员账号密码.3、获取到账号后,还需要获得该租户管理员所属租户的名称,以及该租户下一个project的Id或者名称,方法如下:·        使用租户管理员账号登录ManageOne运营侧(ManageOne运营侧的访问地址请联系现场华为工程师获取)·        点击右上角的用户图标,切换到“个人设置”页面,如下:可以看到,租户名称为xssvdc,我们选择的project为xssvdc,下面我们来获取token调用示例:请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:{    "auth": {        "identity": {            "methods": [                "password"            ],            "password": {                "user": {                    "domain": {                        "name": "用户所属的租户名称"                    },                    "name": "用户名",                    "password": "密码"                }            }        },        "scope": {            "project": {                "name": "用户关联的项目名称"            }        }    }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedDate: Wed, 12 Feb 2020 07:14:47 GMTContent-Type: application/json; charset=utf-8Transfer-Encoding: chunkedConnection: keep-aliveX-Subject-Token: MIAIIIQSDSwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesU3FGESDVSDMASWQX-IAM-Trace-Id: df659e8ff4feecf1adfffe72f7335d40ETag: W/"259-Qgmz1aPq7XYjfweWaVCVmseNMls"X-Request-Id: df659e8ff4feecf1adfffe72f7335d40Server: api-gateway这里我们就获得了VDC管理员在指定domain,project内的权限,可以用这个token去创建子级VDC、project、用户,也可以在指定的project内创建、操作资源。说明:如果获取token时,仅指定了domain,这个token可以用于创建子级VDC、project、用户,但不能创建、操作具体资源,因为所有的资源都分配在指定的project下。例如下面的请求体示例,获取的token就不能用于创建、操作资源:{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "用户所属的租户名称" }, "name": "用户名", "password": "密码" } } }, "scope": { "domain": { "name": "用户所属的租户名称" } } }}
  • [集成开发] ManageOne运营侧北向接口对接准备工作
    1 说明如果您需要通过调用华为云Stack北向接口,实现对租户、用户、虚拟资源的管理,您需要与华为云Stack 中的ManageOne运营侧(提供鉴权,用户,租户管理)和云服务(提供云资源管理)进行对接,正式对接前,您可以参考本帖获取需要的账号、IP等信息,具体准备工作如下:A、获取接口文档ManageOne北向API参考文档各版本汇总获取:cid:link_1从以上链接下载到对应版本的文档后,可得到以下压缩包:(以8.5.1版本为例)压缩包中各文件解释如下: ManageOne x.x.x API参考:ManageOne对外开放的API接口参考文档。 华为云Stack x.x.x 云服务API参考:HCS云服务对外开放的API接口的参考文档。 注:8.3.0及之前的版本,仅包含云服务的目录,具体各云服务的API文档需要从文档内的蓝色链接获取。ManageOne x.x.x API参考 中包含以下文档: 压缩包中开发需要使用的文档解释如下:ManageOne x.x.x 运营面API参考.docx:提供运营侧接口列表,支持VDC,产品,订购,流程审批,计量计价等功能。 ManageOne x.x.x 云服务Params参数说明.docx:配合《ManageOne x.x.x 运营面API参考》使用,介绍订购接口中params参数的使用说明。 B、获取网关地址、端口号及域名1)获取网关IP:获取环境LLD(从华为Stack安装部署工具中导出的环境详情,联系华为工程师获取,如果存在多个region,则应有多个LLD导出表。)打开主region的LLD表,选择“2.1 工具生成的IP参数”页签,找到“AGW-LB-Float-IP”节点的规划值,即为API Gateway的IP。如下图,AGW-LB-Float-IP的值为160.133.4.130。选择“1.2基本参数”页签,找到“external_global_domain_name”节点的规划值。如下图,external_global_domain_name的值为manageone.cus.com。选择“1.2基本参数”页签,找到“region0_id”节点的规划值。如下图,region0_id的值为dg-dg-1。打开需要调用接口的系统的hosts文件(Windows路径为C:\Windows\System32\drivers\etc\hosts,linux路径为/etc/hosts),在其中添加如下内容。{AGW-LB-Float-IP}   iam-apigateway-proxy.{external_global_domain_name}{AGW-LB-Float-IP}   sc.{external_global_domain_name}{AGW-LB-Float-IP}   oc.{region0_id}.{external_global_domain_name}                                   #6.5.X版本为oc.{external_global_domain_name}{AGW-LB-Float-IP}   vpc.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   ecs.{region0_id}.{external_global_domain_name{AGW-LB-Float-IP}   ims.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   evs.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   ccs.{region0_id}.{external_global_domain_name}我们上面获取到了AGW-LB-Float-IP的值为160.133.4.130,external_global_domain_name的值为manageone.cus.com,region0_id的值为dg-dg-1。将相应的值填入上面的模板中,得到hosts如下:160.133.4.130 iam-apigateway-proxy.manageone.cus.com160.133.4.130 sc.manageone.cus.com160.133.4.130 oc.dg-dg-1.manageone.cus.com                         #6.5.X版本为oc.manageone.cus.com160.133.4.130 vpc.dg-dg-1.manageone.cus.com160.133.4.130 ecs.dg-dg-1.manageone.cus.com160.133.4.130 ims.dg-dg-1.manageone.cus.com160.133.4.130 evs.dg-dg-1.manageone.cus.com160.133.4.130 ccs.dg-dg-1.manageone.cus.com(可选)如果存在从region,则需要打开从region的LLD文件,重复步骤2~5。配置好的hosts示例如下:160.133.5.170 vpc.xa-xa-1.manageone.cus.com160.133.5.170 ecs.xa-xa-1.manageone.cus.com160.133.5.170 ims.xa-xa-1.manageone.cus.com160.133.5.170 evs.xa-xa-1.manageone.cus.com160.133.5.170 ccs.xa-xa-1.manageone.cus.com(注:MangeOne仅部署在主region上,从region不包含ManageOne,配置的域名前缀无需再包含"iam-apigateway-proxy"、“sc”、"oc"。)C、网络打通要求如果现网中,第三方系统与华为云Stack 系统中间有防火墙隔离,需要做防火墙策略,则网络打通要求如下: 访问IP 被访问IP 被访问端口 访问诉求 备注 第三方系统 API Gateway浮动IP 443 单向,第三方系统-->API Gateway浮动IP 防火墙策略放通后,如果要确认是否成功,可通过telnet命令进行测试,如下(此处以80端口为例,请根据实际环境修改):D、获取对接账号进行正式对接前,需要获取对接账户,请联系华为现场工程师,获取一个ManageOne运营侧租户管理员(即一级VDC管理员)账号,且该租户的配额是不限的。获取到账号后,还需要获得该租户管理员所属租户的名称,以及该租户下一个project的Id或者名称,方法如下:使用租户管理员账号登录ManageOne运营侧(ManageOne运营侧的访问地址请联系现场华为工程师获取)点击右上角的用户图标,切换到“个人设置”页面,如下:8.3.1及以上版本,参考此链接创建用户:cid:link_0E、获取对接所需的SSL证书通常情况,调试接口可通过配置curl或postman忽略ssl证书验证,无需证书。在正式对接场景下需要配置SSL证书,获取证书的方法请参考此链接:cid:link_2由于不通编程语言、不同http客户端配置证书的方法均不相同,相关配置方法需用户自行查找,本文不再介绍。附:服务、域名,文档关系说明注意:北向接口的域名与ManageOne页面使用的域名不相同,严禁使用“auth.xxx.xxx.xxx”等非标准方案的域名进行接口调用,非标方案无法确保升级兼容。更多云服务的域名请参考服务对应的API文档服务类型使用域名(样例)接口调用示例(样例)对应接口文档(以8.5.1接口文档为例)弹性云服务器(ECS)ecs.sa-fb-1.demo.comhttps://ecs.sa-fb-1.demo.com/v2/{tenant_id}/servers弹性云服务器(ECS) 8.x API参考(for 华为云Stack 8.x)裸金属服务(BMS)bms.sa-fb-1.demo.comhttps://bms.sa-fb-1.demo.com/v1/{project_id}/baremetalservers裸金属服务器(BMS) 8.x API参考(for 华为云Stack 8.x)镜像服务(IMS)ims.sa-fb-1.demo.comhttps://ims.sa-fb-1.demo.com/v2/images镜像服务(IMS) 8.x API参考(for 华为云Stack 8.x)弹性伸缩服务(AS)as.sa-fb-1.demo.comhttps://as.sa-fb-1.demo.com/autoscaling-api/v1/{tenant_id}/scaling_configuration弹性伸缩(AS) 8.x API参考(for 华为云Stack 8.x)云磁盘(EVS)evs.sa-fb-1.demo.comhttps://evs.sa-fb-1.demo.com/v2/{tenant_id}/volumes云硬盘(EVS) 8.x API参考 (for 华为云Stack 8.x)虚拟私有云(VPC)vpc.sa-fb-1.demo.comhttps://vpc.sa-fb-1.demo.com/v2.0/networks虚拟私有云(VPC) 8.x API参考(for 华为云Stack 8.x)弹性IP(EIP)eip.sa-fb-1.demo.comhttps://eip.sa-fb-1.demo.com/v2.0/floatingips弹性IP(EIP) 8.x API参考(for 华为云Stack 8.x)弹性负载均衡(ELB)vpc.sa-fb-1.demo.comhttps://vpc.sa-fb-1.demo.com/v2.0/lbaas/loadbalancers弹性负载均衡(ELB) 8.x API参考(for 华为云Stack 8.x)网络ACl(虚拟防火墙、VFW)acl.sa-fb-1.demo.comhttps://acl.sa-fb-1.demo.com/v2.0/fwaas/firewall_policies网络ACL(Network ACL) 8.x API参考(for 华为云Stack 8.x)身份认证服务(IAM)iam-apigateway-proxy.demo.comhttps://iam-apigateway-proxy.demo.com/v3/auth/tokensManageOne 8.x OTenantSecurity服务API参考运营管理服务(ManageOne运营面)sc.demo.comhttps://sc.demo.com/rest/vdc/v3.0/usersManageOne 8.x 运营面API参考云配置服务(CCS)ccs.sa-fb-1.demo.comhttps://ccs.sa-fb-1.demo.com/v1.0/resource-tags华为云Stack 8.x 云服务API参考-->公共组件-->华为云Stack 8.x 公共组件 
  • [技术干货] 华为HuaweiCloudStack(一)介绍与架构
    HCS简介HCS全称华为HuaweiCloudStack,也叫华为云Stack,是华为面向市场推出的大型私有云解决方案。什么叫大型呢,相对于HCS,华为有另外一个中小型私有云平台FusionCompute,FC平台只要内存大一些,在自己家电脑上也可以搭建。但HCS不一样,从部署方式上讲他至少需要有7个物理服务器的节点,门槛非常高,这个我文章后半段再讲。除此之外HCS还有一些特点,华为公有云采用也是HCS这套架构,相当于就将公有云的架构打包卖给客户;HCS在资源管理方面采用的是社区版的OpenStack进行二次开发。HCS架构纵向结构从下到上共分为五层1.硬件层 - 硬件基础设施 - 物理数据中⼼,服务器,存储设备,⽹络设备2.云资源池 - FusionSphere Openstack FSO华为使⽤开源openstack商业加固,⼆次开发云计算平台,把物理服务器资源统⼀管理起来 , FSO⾃⼰本身不提供各种类型云计算服务3.公共组件 - 为HCS 提供公共功能 DNS域名解析,NTP时钟同步。提供HA⾼可⽤功能nginx, HAproxy,LVS,提供优化功能等。所有的公共组件都虚拟机4.云服务层 - 单独搭建⼀套环境,安装各种类型云计算产品服务。所有的云服务都是以单独产品软件部署云计算平台中的。⽐如⽤户如果需要使⽤ECS产品,需要在HCS云计算平台中部署ECS软件。5.应用层:提供客户各种行业的业务  管理平台类型在HCS的管理中有三个管理平台:运营管理平台 - ManageOne service center - SC - 单独提供WEB访问界⾯: ——云计算管理 - 发布云计算产品 - 上线/下线,创建租户/⽤户 (给云管理员用的)运维管理平台 - ManageOne operation center - OC - 单独提供WEB访问界⾯: ——健康状态监控,⽇志统⼀管理 , 环境进⾏综合运⾏维护 (给用户管理员用的)资源管理平台 - Service OM (FusionManager - AllinOne FusionManager - AllinoneFM) ——对fusionSPhere openstack 底层资源进⾏管理 ——提供规格,镜像 ,底层⽹络所有管理平台 - 都是以虚拟机⽅式部署。公共组件都虚拟机 和 管理平台虚拟机 都是部署在FSO上。HCS节点类型HCS有三种节点,这个和后面部署有关系。它和开源OpenStack节点类型的区别就在于,开源OpenStack没有公共组件虚机与管理平台虚机,而HCS的管理节点需要承载这些管理虚机的部署管理节点: 类似于OpenStack的Allinone部署 ——承担云资源池服务入口,部分管理虚拟机还需要部署-云服务软件计算节点:为租户/用户提供计算资源⽹络节点:提供vRouter,vDHCP,vLB负载均衡器,SNAT,安全组,EIP弹性IP地址、软件定义⽹络FusionSphere OpenStack又称FSO,是华为对开源OpenStack进行了商用加固之后的产物,具有以下几个特点:基于mitaka版本OpenStack开发消除了厂商锁定,提供标准OpenStack API能够根据用户需求进行功能扩展与裁剪管理服务均以主备或负载分担模式部署,消除单点故障将物理网络分为多个逻辑平面,采用vlan隔离相对于开源OpenStack,取消了Horizon,增加了Service OMFSO主要包含四个组件,SC OC ServiceOM CPS CPS全称cloud provisioning service负责laas的云平台层的部署和升级,是ISSA中真正面向硬件设备,并将其池化软件化的部件。 用以部署、配置、升级laas层的各种服务CPS为C/S架构 CPS server部署在控制节点上,至少三节点,形成集群,一主两备,用于接受web portal 或CLI的 CPS client组件部署在所有节点,每个节点都为主用,接受server的消息CPS功能非常丰富,包括硬件软件两方面:硬件——系统安装、内核配置、网络、磁盘管理、资源隔离、网络状态检测软件——软件安装、软件管理、软件升级、主机管理以及维护、服务管理在FSO安装完成后会自动设置SSO单点登录,同时只支持一人登录取消单点登录后可以直接登录CPS,但由于CPS权限非常高,所以一般不建议这么操作ServiceOMServiceOM是资源池(计划、存储、网络)以及基础云服务(ECS,EVS等)的管理工具管理员使用Service OM对资源池以及基础云服务进行管控和配置HCSD安装工具在自动化安装过程中会以主备模式创建ServiceOM的虚机,并且运行在控制节点主要功能包括资源监控、系统管理、资源管理、资源审计SC 运营面面向租户和运营管理的入口,提供云服务的运营集成能力,支持多种云服务的集成↓资源池规划/服务定义(建云)——同构、异构云统一接入管理,多级VDC管理,企业项目管理↓资源消费(用云)——可视化自定义、支持流程编排引擎,云服务统一接入↓运营管理(管云)——统一资源中心、应用管理、计量报表OC 运维面直接搞了个华为ppt的截图看吧 HCS部署架构region type部署架构介绍在老版本中,一共有三种HCS部署方式:HCS region type1 - 单独部署网络节点,实现软件SDN - vrouter,vdhcp,vfw等HCS region type2 - 单独部署网络节点,对接硬件SDN - 以前必须是的Agile Controller -AC平台,但现在已经下线了,与IMaster-NCE也无法对接HCS region type3 - 不部署网络节点,无SDN,没有弹性IP地址,vLB等高级SDN服务8.0.3版本之后只使用type1进行安装HCS region type1——⾄少6个节点(服务器)起步实验环境下采用3个管理节点 2个⽹络节点 1个计算节点HCS需要通过华为安装平台安装 | 在安装前华为会对环境进⾏硬件兼容性监测, 如果不通过,则直接报错HCS部署原则HCS 华为云stack部署过程通过⾃动化编排⼯具HuaweiCloudStackDeploy——HCSD部署在Region Type I部署下:服务器节点需求: 管理节点3+节点 网络节点2节点 计算节点1节点硬件需求:40vCPU 256G内存 1T*2 网络节点必须万兆交换机需求:万兆SW 生产环境中使用两台堆叠配套存储:华为自家存储5500v3/v5区域部署原则(分级)这个和AWS什么基本一样,有一个AZ的概念,HCSD以AZ为最小单元进行部署①global —— 全局概念,使用IAM身份管理进行统一认证服务(底层是keystone)②region —— L0层概念,即地理区域。同AWS的region,通常是一个城市 一个region内多个AZ冗余,同一个region内延时少于2ms,不然需要再多开一个region例: 华南-广州 华东-上海1 华东-上海2③AZ —— 可用分区,通常是一个城市的一个区,一个AZ共享同一套独立供电、独立网络、独立存储系统,ISP裸光纤连接例:西北-甘肃-AZ1 华东-上海1-AZ2④资源池 —— 根据AZ计算类型的不同来分类,以便进行定位例:通用资源池、裸金属资源池、网络资源池⑤主机组 主机 - FSO计算节点 、HCS - KVM主机 nova主机主机组 - 每个主机加入到资源池中时,需要进入到对应的主机组⼀个global包含多个region⼀个region可以有多个AZ可⽤分区⼀个AZ可分区只能⾪属于⼀个region⼀个AZ下的资源来⾃于资源池⼀个资源池内可以包含多个主机组⼀个主机组只能⾪属于⼀个资源池⼀个主机组内包含多个主机⼀个主机只能⾪属于⼀个主机组级联问题HCS-6.5.1-Type1专属问题——级联问题(在HCS8.1.1中取消了级联架构)type1采用级联架构,分为两层: 级联层 cascading 被级联层 cascaded目的是为了便于扩展:1、没有级联架构时:管理节点直接管理计算节点2、有级联架构时:被级联层被级联层管理所有计算节点都属于被级联层级联层只有管理节点级联层管理节点 —— 使用物理机部署被级联层管理节点 —— 在管理节点内以虚机方式部署 HCS安装部署实际项目中,在开始安装之前,需要对整套方案有整体规划,而不是像我接下来写的一样走一步算一步HCS安装分两步1、规划设计 —— 部署工程2、自动化部署 PXE server HCSD PXE部署,需要提前登录服务器ibmc口,给服务器配置ip与pxe启动 管理员通过web访问EulerOS,创建工程,使用HCSD进行部署1、本机pc和HCSD进行互通2、HCSD和物理服务器互通3、挂载镜像的方式安装HCSD4、上传软件包到HCSD、完全工程创建5、自动化安装HCSD工程步骤:1、创建工程 ——选择要装什么功能,全局设置2、核对工程信息 3、配置工程参数 —— 在线参数修改(或导入参数模板的xls)4、上传和校验软件包 —— 没有项目合同无法从官网下载5、安装前检查 ——验证密码等6、安装组件 —— 自动化安装网络平面要求管理节点网络节点要求:Internal_Base:FSO组件通信网络 - HCSD PXE部署用的网络External_OM:向下对接资源External_API:类似FC管理网络Region Type I网络要求: (通过子接口完成,并创建vlan)Cascading_External_API平⾯ —— FC管理网络Cascading_External_OM平⾯ —— 向下对接资源的网络Cascading_Internal_Base平⾯ —— 级联层组件通信网络Cascaded_Internal_Base平⾯ —— 被级联层组件通信网络Cascaded_External_OM平⾯ —— BMS裸金属被级联层互通网络平面设计iBMC:Access VLAN Internal_Base:子接口untag - 根据trunk和hybrid接口pvid改变 纯二层External_OM:子接口走VLAN 三层网络External_API:子接口走VLAN 三层网络并且在物理交换机中,对于Internal_Base接口对接的trunk或hybird口的vlan id需要与pvid相同,否则untag的流量没法走通HCSD部署方式HCSD部署,部署完之后可以删掉 虚拟机、物理机皆可三种部署方式:1、VMwareWorkstation部署2、其他虚机环境比如vsphere,fusionsphere3、物理机部署华为文档中建议使用物理机看完上面的内容你应该知道了,HCSD节点只需要一块网卡,剩余的网络平面都可以通过Linux子接口的方式打tag来完成但VMwareWorkstation不支持trunk,所以如果用VMwareWorkstation只能图一乐但是图一乐差不多也够了,毕竟真是没这个环境去布一整个AZ的                        原文链接:https://blog.csdn.net/qq_72569959/article/details/134549867
  • [技术干货] 【ManageOne二次开发】使用开源Keycloak与MO进行联邦的配置及开发
     在企业级 IT 架构中,身份认证与授权的统一管理是保障系统安全和提升运维效率的关键环节。Keycloak 作为开源的身份和访问管理解决方案,具备强大的身份联邦能力;华为云 Stack HCS(以下简称 HCS)则为企业提供了稳定、安全的云基础设施服务。本文将详细介绍如何基于 SAML(Security Assertion Markup Language,安全断言标记语言)协议,实现 Keycloak 与 HCS 的身份联邦配置,让用户能够通过 Keycloak 账号一键登录 HCS 平台,实现统一身份认证。一、前期准备在进行联邦配置前,需完成软硬件环境搭建、账号权限准备及必要文件获取,确保后续配置流程顺利进行。1.1 环境与软件准备类别具体要求说明Keycloak 环境Keycloak 18.0.0 及以上版本推荐使用 Docker 容器部署或独立服务器部署,确保服务可被 HCS 平台访问(网络互通)。示例部署地址:https://keycloak.example.com:8443(建议配置 HTTPS,保障数据传输安全)。HCS 环境HCS 8.5.1 版本需确保 HCS 的 IAM(Identity and Access Management)服务正常运行,且管理员具备 “身份提供商管理” 权限。HCS 控制台地址:https://console.hcs.example.com。客户端工具浏览器(Chrome/Firefox 最新版)、文本编辑器(Notepad++/VS Code)、证书管理工具(OpenSSL)浏览器用于访问 Keycloak 和 HCS 控制台;文本编辑器用于处理 SAML 元数据文件;OpenSSL 用于生成或验证证书(若需自定义证书)。网络环境Keycloak 服务器与 HCS 平台网络互通需开放 Keycloak 的 HTTPS 端口(默认 443 或自定义端口,如 8443)和 HCS IAM 服务端口(默认 443),避免防火墙拦截。1.2 账号与权限准备Keycloak 账号:需拥有 Keycloak 的 “管理员” 权限(如admin角色),用于创建 Realm(领域)、客户端(Client)及用户。HCS 账号:需拥有 HCS 的 “IAM 管理员” 或 “系统管理员” 权限,用于在 HCS 中配置身份提供商(IdP)、关联用户组及授权。1.3 必要文件与信息收集Keycloak 元数据文件:后续需将 Keycloak 作为 SAML IdP,向 HCS 提供元数据(包含 IdP 的实体 ID、单点登录地址、证书等信息),可提前获取或后续在 Keycloak 配置中生成。HCS 服务提供商(SP)元数据信息:HCS 作为 SAML SP,需向 Keycloak 提供 SP 的实体 ID、断言消费者服务地址(ACS URL),可从 HCS IAM 控制台获取(后续配置步骤会详细说明)。证书文件(可选):若需自定义 SAML 断言签名证书,可提前使用 OpenSSL 生成密钥对(私钥用于 Keycloak 签名断言,公钥提供给 HCS 验证签名);若使用 Keycloak 默认证书,可直接在 Keycloak 配置中导出。二、详细配置步骤配置流程分为两部分:Keycloak 端配置(作为 SAML IdP) 和 HCS 端配置(作为 SAML SP),需确保两端参数一致,避免协议交互失败。2.1 Keycloak 端配置(SAML IdP 配置)步骤 1:创建 Realm(领域)Realm 是 Keycloak 中隔离身份数据的逻辑单元,建议为 HCS 联邦场景创建独立 Realm,避免与其他业务混淆。访问 Keycloak 管理员控制台,使用管理员账号登录。在左侧导航栏点击【Master】下拉菜单,选择【Add Realm】。填写 Realm 信息:Realm name:输入自定义名称(如HCS-Federation),需与后续 HCS 配置中的 IdP 名称对应。Enabled:勾选 “ON”,启用该 Realm。点击【Create】,完成 Realm 创建,页面自动切换到新创建的 Realm(顶部显示HCS-Federation)。步骤 2:配置 SAML IdP 元数据与证书Keycloak 默认会为 Realm 生成 SAML IdP 元数据,需确认元数据中的关键信息(如实体 ID、单点登录地址),并导出公钥证书供 HCS 使用。在 Realm 左侧导航栏,点击【Realm Settings】→【Endpoints】→【SAML 2.0 Identity Provider Metadata】。点击链接,浏览器会下载或显示 Keycloak 的 SAML IdP 元数据 XML 文件,记录以下关键信息(后续 HCS 配置需使用):EntityID:(IdP 的唯一标识。SingleSignOnService Location:HCS 发起 SAML 登录时的跳转地址。导出 IdP 公钥证书:在【Realm Settings】→【Keys】→【Active】标签页,找到 “Algorithm” 为RS256的 “Key Type”(默认用于 SAML 签名)。点击该密钥行的【Certificate】按钮,复制证书内容(包含-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----),保存为keycloak-idp-cert.pem文件(后续 HCS 配置需上传)。步骤 3:创建 HCS 对应的 SAML 客户端(Client)客户端代表与 Keycloak 交互的应用(此处为 HCS),需配置 HCS 作为 SAML SP 的相关信息,确保 Keycloak 能正确接收和处理 HCS 的 SAML 请求。在 Realm 左侧导航栏,点击【Clients】→【Create】。填写客户端基本信息:Client Type:选择SAML(关键,需与协议匹配)。Client ID:输入 HCS 的 SP 实体 ID(后续从 HCS 获取,需要使用管理员登录后再集成配置中创建并获取)。Name:输入自定义名称(如HCS-SP,便于识别)。点击【Save】,进入客户端详细配置页面,按以下要求配置关键参数:参数分类具体参数配置值说明基本配置EnabledON启用该客户端 Include AuthnStatementON确保 SAML 断言包含认证语句 Signature AlgorithmRSA_SHA256签名算法(需与 HCS 一致) SAML Assertion ID Generatororg.keycloak.saml.DefaultSAMLAssertionIDGenerator默认即可客户端 SAML 设置Assertion Consumer Service URL从 HCS 获取的 ACS URL(格式如https://console.hcs.example.com/iam/saml/acs)HCS 接收 SAML 断言的地址,需精确匹配 Single Logout Service URL可选(若需支持单点登出,填写 HCS 的 SLO URL)暂不配置可后续补充 Name ID Formaturn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress用户名格式(需与 HCS 用户标识字段一致,此处以邮箱为例) Root URLHCS 控制台根地址(如https://console.hcs.example.com)可选,用于自动填充其他 URL密钥配置Sign AssertionsON启用断言签名(保障断言完整性,HCS 会验证签名) Sign RequestsOFFHCS 作为 SP 发起请求时通常自行签名,此处关闭 Encrypt AssertionsOFF暂不启用加密(如需加密,需额外配置密钥,复杂度较高)配置完成后,点击【Save】。步骤 4:创建 Keycloak 用户与用户组(可选,也可使用现有用户)需在 Keycloak 中创建用户,后续用于登录 HCS。若需实现权限映射(如 Keycloak 用户组对应 HCS 用户组),可创建用户组并关联用户。创建用户:左侧导航栏【Users】→【Add user】,填写Username(如hcs-test-user)、Email(需与 Name ID Format 匹配,),勾选【Email Verified】(避免验证邮件),点击【Save】。进入用户详情页的【Credentials】标签页,点击【Set Password】,设置临时密码(首次登录需修改),取消【Temporary】勾选(可选,避免强制改密),点击【Save】。创建用户组(可选):左侧导航栏【Groups】→【New】,输入组名称(如HCS-Admin-Group,对应 HCS 的管理员组),点击【Save】。在【Users】中找到已创建的用户,进入【Groups】标签页,点击【Join Group】,选择创建的用户组,完成关联。步骤 5:配置 SAML 属性映射(关键)Keycloak 需在 SAML 断言中向 HCS 传递用户标识(如邮箱、用户名)及权限信息(如用户组),需通过属性映射配置断言中的字段。在【Clients】中找到已创建的HCS-SP客户端,进入【Mappers】标签页,点击【Create】。配置用户标识映射(以邮箱为例):Name:输入Email Attribute(自定义名称)。Mapper Type:选择User Property。Property:选择email(Keycloak 用户的邮箱属性)。SAML Attribute Name:输入Email(HCS 期望接收的用户标识字段名,需与 HCS 配置一致)。SAML Attribute NameFormat:选择Basic。点击【Save】。配置用户组映射(可选,实现权限同步):再次点击【Create】,【Mapper Type】选择Group List。Name:输入Group Attribute。SAML Attribute Name:输入Groups(HCS 接收用户组的字段名)。Full Group Path:选择OFF(仅传递组名称,不包含路径)。点击【Save】。2.2 HCS 端配置(SAML SP 配置)HCS 作为 SAML SP,需添加 Keycloak 作为身份提供商(IdP),并配置断言验证、用户映射及权限授权,确保能正确接收和解析 Keycloak 的 SAML 断言。步骤 1:获取 HCS 的 SP 元数据信息HCS 的 SP 元数据(实体 ID、ACS URL)需提供给 Keycloak(已在 2.1.3 步骤中使用),此处需先确认该信息:登录 HCS 控制台(需要使用管理员登录),进入集成商管理。选择身份提供商类型为【SAML IdP】,页面会显示 HCS 的 SP 信息:SP 实体 ID:需与 Keycloak 客户端的 Client ID 一致。ACS URL:(需与 Keycloak 客户端的 Assertion Consumer Service URL 一致)。记录上述信息,若 Keycloak 已配置,需核对是否一致(不一致会导致登录失败)。步骤 2:添加 Keycloak 作为 SAML IdP在 HCS【身份提供商】页面,点击【新建身份提供商】→【SAML IdP】,进入配置页面。填写基本信息:身份提供商名称:输入自定义名称(如Keycloak-IdP,便于用户登录时选择)。状态:选择【启用】。配置 SAML IdP 元数据(二选一,推荐方式 1):方式 1:上传元数据文件:点击【上传元数据文件】,选择之前从 Keycloak 下载的 IdP 元数据 XML 文件,系统会自动解析出 EntityID、单点登录地址、证书等信息。方式 2:手动输入元数据:若无法上传文件,手动填写:IdP 实体 ID:从 Keycloak 元数据中获取的 EntityID。单点登录地址:Keycloak 的 SingleSignOnService Location。IdP 证书:复制keycloak-idp-cert.pem文件中的证书内容(包含 BEGIN 和 END 行),粘贴到文本框中。配置断言验证与用户映射:断言签名验证:选择【启用】(必须,确保断言来自可信 IdP),签名证书自动从元数据中获取(或手动上传 Keycloak 公钥)。用户标识字段:选择【Email】(需与 Keycloak 的 Name ID Format 及属性映射一致,此处以邮箱为例),表示 HCS 通过 SAML 断言中的Email字段识别用户。用户创建策略:选择【自动创建】(当 Keycloak 用户首次登录 HCS 时,HCS 自动创建对应的本地用户,无需手动预创建)。配置用户组映射(可选,实现权限同步):勾选【启用用户组映射】。用户组字段名:输入Groups(需与 Keycloak 属性映射中的 SAML Attribute Name 一致)。映射规则:点击【添加映射规则】,设置 Keycloak 用户组与 HCS 用户组的对应关系,例如:Keycloak 组名:HCS-Admin-Group → HCS 组名:admin(HCS 内置管理员组)。Keycloak 组名:HCS-User-Group → HCS 组名:common_user(HCS 普通用户组)。点击【确定】,完成 Keycloak IdP 的添加。步骤 3:配置 HCS 登录策略(可选)可配置 HCS 登录页面是否显示 Keycloak IdP 的登录入口,方便用户选择登录方式:在 HCS【统一身份认证】→【登录设置】→【身份提供商登录】。勾选【显示身份提供商登录入口】,并将Keycloak-IdP添加到 “可选身份提供商” 列表中。点击【保存】,后续用户访问 HCS 登录页时,将看到 “密码登录” 和 “Keycloak-IdP 登录” 两个选项。三、最终验证配置完成后,需通过实际登录流程验证联邦认证是否生效,确保 Keycloak 用户能成功登录 HCS 并获得正确权限。3.1 验证流程(用户视角)访问 HCS 控制台登录页,若已配置登录策略,将显示两个登录选项:【密码登录】和【Keycloak-IdP 登录】。点击【Keycloak-IdP 登录】,系统自动跳转到 Keycloak 的登录页面。在 Keycloak 登录页,输入之前创建的测试用户账号(如hcs-test-user)和密码,点击【登录】。Keycloak 验证账号密码通过后,生成 SAML 断言(包含用户邮箱、用户组等信息),并自动跳转到 HCS 的 ACS URL。HCS 接收 SAML 断言,验证签名(通过 Keycloak 公钥),解析用户信息:若用户为首次登录,HCS 自动创建本地用户(用户名与 Keycloak 的 Email 一致)。若配置了用户组映射,HCS 将用户添加到对应的本地用户组(如admin组)。      6.验证通过后,用户成功进入 HCS 控制台,可根据关联的用户组权限访问对应的云资源(如 ECS)结尾给大家推荐佳杰云星的运营平台华为云Stack社区版本,一站式全栈云运营平台,灵活计费与多租户管理,畅享公有云级体验支持40+云产品,轻松管理华为云Stack(HCS) 
  • [集成开发] ManageOne双因素认证对接指导
    注:本文适用于8.3.1及更高版本,在此之前的版本请参考链接。一、简介ManageOne具备远程通知的能力。通过远程通知,运维人员可以设置短信网关、短信猫或邮箱服务器的通信参数,使系统具备自动和手动发送短消息和邮件的能力。同时,通过远程通知,运维人员还可以设置短消息或邮件所要发送的目标用户,内容模板等。至8.5.1版本,ManageOne有如下功能支持远程通知:类别产品功能邮件通知短消息通知运维面(OC)  发送告警支持支持发送周期任务报表支持不支持双因素认证支持支持运营面(SC)    VDC自运维订阅通知支持支持运营面找回密码支持支持发送VDC租户计量信息支持不支持发送订单处理信息支持支持双因素认证支持支持 ManageOne远程通知支持的对接协议如下:功能类别协议邮箱SMTP短信SMPP3_3、SMPP3_4、CMPP2_x、CMPP3_x、SMGP、SGIP、CNGP、HTTP、HTTPS注:HCS 8.3.0及以上版本短信支持HTTP、HTTPS。若需要对接的第三方邮箱、短信系统不支持上述协议,则需要开发适配程序进行对接,方案如下图所示:方案说明:1. 用户需要开发第三方适配器(Adapter)与OC进行对接,适配器内启动一个短信或邮箱服务器,监听从OC发送的信息,OC发送的信息包含①消息的接收人(手机号或邮箱)②消息体③消息发送人(系统中配置)。这里重点关注消息接收人的手机号或邮箱,以及消息体,消息发送人可不关注。当适配器接收到消息时,将其直接转发到第三方系统即可。2. SC本身不具备消息通知能力,其消息通知能力依赖OC实现。因此,远程通知仅需要在OC上配置,且防火墙只需要放通OC->Adapter的网络策略。网络策略:源端目的端协议策略ManageOne-Deploy01、02AdapterTCP/端口参考页面配置放通Adapter第三方系统由第三方系统决定放通注:ManageOne-Deploy01、02节点的IP地址可通过FCD安装部署工具的导出表(LLD)获取,具体请联系华为现场工程师。 短信对接提供示例程序(Demo):cid:link_2本文以短信对接为例,结合Demo,介绍ManageOne运维面和运营面如何配置用户登录的双因素认证,具体操作将在第二、三章中介绍。二、ManageOne主门户配置双因素认证步骤1:配置远程通知使用管理员账号登录ManageOne运维面,进入“系统管理 > 系统设置 > 远程通知”。按需求配置“短消息设置”(短信)或“邮箱设置”。示例如下:①短消息设置(短信):对接参考:cid:link_2 ②邮箱设置:使用SMTP协议对接此处我们以短信对接为例,使用链接 给出的Demo对接到ManageOne1)首先下载示例代码:cid:link_02)按需修改默认配置信息,然后运行启动Demo程序。3)使用管理员账号登录ManageOne运维面,进入“系统管理 > 系统设置 > 远程通知 > 短消息设置 > 短信网关设置”。4)在“短信网关设置”界面设置服务器地址、用户名、密码等相关参数,Demo默认的“短消息编码协议”为SMPP3_4。设置完成后,填写“接收短消息号码”,然后单击“测试”,当界面上方显示“测试成功”字样,表明消息已成功发送。5)查看Demo程序,程序可正常接收到短信,表明对接成功。步骤2-1:管理员用户启用双因素认证1)使用管理员账号登录ManageOne主门户,进入“安全管理”。选择左侧列表中的“用户管理”,单击“创建”。2)填写创建用户的基本信息:填写登录名、用户姓名、手机号、邮箱,认证方式选择“本地用户”,密码生成方式选择“自定义”。信息填写完成后,选择关联的用户组,然后完成创建。3)在“用户管理”页面,勾选已创建的用户,单击右侧“更多”,单击“开启双因子认证”,按需选择认证类型,本文以短信为例。步骤2-2:租户用户启用双因素认证1)使用管理员账号登录ManageOne运营面,进入“组织-租户管理”,选中需要开启双因素认证的租户,单击右侧“修改”2)找到“双因素认证”选项,将其修改为“开启”。开启后,该租户下所有用户将启用双因素认证,需要为该租户下所有用户配置手机号或邮箱。3)进入“组织-用户管理”,选择指定租户下的用户,单击右侧“修改”4)为该用户配置手机号等信息,然后点击“确定”步骤3:用户登录1)使用浏览器访问登录ManageOne,输入用户名和密码,单击“登录”2)开启了双因素认证的用户需要填写验证码,单击“获取验证码”。3)此时对接程序能获取到短信验证码,并同时获得目标发送手机号码。4)输入验证码后,可成功登录ManageOne。
  • [问题求助] 租户镜像导出问题
    租户ECS迁移数据和ECS到其它云平台,手动制定租户的ECS为镜像,但由于ECS系统和数据盘较大,系统盘为300G,数据盘为2T,思路是制作镜像导出,有怎么样的方法?同时想问下,制作的系统盘镜像和数据盘镜像是存在哪里了?怎么导出?
  • [问题求助] 华为私有云对接manageone接口获取性能指标中的高阶云服务相关指标
       对接获取性能指标接口时需要传参OBJ_TYPE_ID(类型id)、INDICATOR_ID(指标id),如图高阶云服务相关指标下没有对应的指标id 通过接口也获取不到对应的indicators;求解如何获取到高阶云服务相关指标性能数据
  • [基础知识] 一朵云管理1
    1.背景说明随着越来越多的企业选择多云环境,如何有效地管理不同类型的云成为云管平台的必备能力:不同厂商的云使用方式不一样,企业IT人员需要熟悉每一种云的使用方法,学习成本随着云的数量增多而增加,多云管理平台要致力于屏蔽各种云的差异。不同厂商的云接口不一样,多云管理平台需要逐一对接每种云的接口,这实际上是一种确定性的重复劳动,如果多云管理平台每种云都以自有人力去实现,则需要消耗大量人力和时间,多云管理平台应支持通过合作伙伴来扩展多云对接的能力。不同厂商的云模型也有差异,多云管理平台需要适配多种模型,提供统一的监控视图,便于企业IT人员从单一视图就能监控所有云的运行情况。2.特性介绍ManageOne基于同一云服务接入规范,实现一朵云管理  2.1 云联邦华为云云联邦华为云通过联邦认证,把华为云Stack和华为公有云结成一个联邦体系,ManageOne的VDC用户既能访问华为云Stack,也能访问华为公有云,可以集成华为公有云基础服务、数据库服务、容器服务、大数据服务、EI服务(无需每个服务API进行对接),支持如下功能:统一权限管理、统一服务目录、统一组织管理、统一服务流程、统一配额、统一计量、统一资源中心、统一租户资源监控监控 2.2 云联邦HCS企业早期建设HCS资源池的时候,由于规划等原因,建设了多朵HCS;在使用高阶服务之后,希望统一建设高阶服务资源池,如大数据资源池集中建设(以大数据举例,其他高阶服务类似),发挥大数据规模效应的优势,不再分散建设,其他资源池要使用大数据时,统一到大数据资源池申请使用。常规做法是多云合一,使用工程方案,把多朵云合成一朵云,但是多云合一比较复杂,不同的HCS版本均需要ManageOne、云服务适配,工作量比较大;云联邦HCS可以低成本的方式实现跨HCS的资源共享。云联邦HCS支持跨HCS资源共享,VDC用户可以通过云联邦方式使用另一个HCS的云服务资源,以低成本的方式实现跨HCS的资源共享,支持统一服务目录、统一组织管理、统一服务流程、统一配额、统一计量、统一资源中心、统一租户资源监控。    2.3 异构纳管ManageOne提供多云适配框架,按照十统一接入规范,适配插件N2One开发三方云服务在ManageOne上的前台页面和适配程序后台,并调用第三方系统的API实现ManageOne统一运营运维管理三方云服务能力。   
  • [基础知识] 域名调用
    1 .背景说明第三方系统调用HCS北向API,需要通过域名方式调用您可以参考本帖获取需要的账号、IP等信息 2.使用方法A、获取网关地址、端口号及域名1)获取网关IP:获取环境LLD(从华为Stack安装部署工具中导出的环境详情,联系华为工程师获取,如果存在多个region,则应有多个LLD导出表。)打开主region的LLD表,选择“2.1 工具生成的IP参数”页签,找到“AGW-LB-Float-IP”节点的规划值,即为API Gateway的IP。如下图,AGW-LB-Float-IP的值为160.133.4.130。选择“1.2基本参数”页签,找到“external_global_domain_name”节点的规划值。如下图,external_global_domain_name的值为manageone.cus.com。选择“1.2基本参数”页签,找到“region0_id”节点的规划值。如下图,region0_id的值为dg-dg-1。打开需要调用接口的系统的hosts文件(Windows路径为C:\Windows\System32\drivers\etc\hosts,linux路径为/etc/hosts),在其中添加如下内容。{AGW-LB-Float-IP}   iam-apigateway-proxy.{external_global_domain_name}{AGW-LB-Float-IP}   sc.{external_global_domain_name}{AGW-LB-Float-IP}   oc.{region0_id}.{external_global_domain_name}                                   #6.5.X版本为oc.{external_global_domain_name}{AGW-LB-Float-IP}   vpc.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   ecs.{region0_id}.{external_global_domain_name{AGW-LB-Float-IP}   ims.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   evs.{region0_id}.{external_global_domain_name}{AGW-LB-Float-IP}   ccs.{region0_id}.{external_global_domain_name}我们上面获取到了AGW-LB-Float-IP的值为160.133.4.130,external_global_domain_name的值为manageone.cus.com,region0_id的值为dg-dg-1。将相应的值填入上面的模板中,得到hosts如下:160.133.4.130 iam-apigateway-proxy.manageone.cus.com160.133.4.130 sc.manageone.cus.com160.133.4.130 oc.dg-dg-1.manageone.cus.com                         #6.5.X版本为oc.manageone.cus.com160.133.4.130 vpc.dg-dg-1.manageone.cus.com160.133.4.130 ecs.dg-dg-1.manageone.cus.com160.133.4.130 ims.dg-dg-1.manageone.cus.com160.133.4.130 evs.dg-dg-1.manageone.cus.com160.133.4.130 ccs.dg-dg-1.manageone.cus.com(可选)如果存在从region,则需要打开从region的LLD文件,重复步骤2~5。配置好的hosts示例如下:160.133.5.170 vpc.xa-xa-1.manageone.cus.com160.133.5.170 ecs.xa-xa-1.manageone.cus.com160.133.5.170 ims.xa-xa-1.manageone.cus.com160.133.5.170 evs.xa-xa-1.manageone.cus.com160.133.5.170 ccs.xa-xa-1.manageone.cus.com(注:MangeOne仅部署在主region上,从region不包含ManageOne,配置的域名前缀无需再包含"iam-apigateway-proxy"、“sc”、"oc"。)B、网络打通要求如果现网中,第三方系统与华为云Stack 系统中间有防火墙隔离,需要做防火墙策略,则网络打通要求如下: 访问IP 被访问IP 被访问端口 访问诉求 备注 第三方系统 API Gateway浮动IP 443 单向,第三方系统-->API Gateway浮动IP 防火墙策略放通后,如果要确认是否成功,可通过telnet命令进行测试,如下(此处以80端口为例,请根据实际环境修改):C、获取对接账号进行正式对接前,需要获取对接账户,请联系华为现场工程师,获取一个ManageOne运营侧租户管理员(即一级VDC管理员)账号,且该租户的配额是不限的。获取到账号后,还需要获得该租户管理员所属租户的名称,以及该租户下一个project的Id或者名称,方法如下:使用租户管理员账号登录ManageOne运营侧(ManageOne运营侧的访问地址请联系现场华为工程师获取)点击右上角的用户图标,切换到“个人设置”页面,如下:8.3.1及以上版本,参考此链接创建用户:cid:link_0D、获取对接所需的SSL证书通常情况,调试接口可通过配置curl或postman忽略ssl证书验证,无需证书。在正式对接场景下需要配置SSL证书,获取证书的方法请参考此链接:cid:link_1由于不通编程语言、不同http客户端配置证书的方法均不相同,相关配置方法需用户自行查找,本文不再介绍。 附:服务、域名,文档关系说明注意:北向接口的域名与ManageOne页面使用的域名不相同,严禁使用“auth.xxx.xxx.xxx”等非标准方案的域名进行接口调用,非标方案无法确保升级兼容。更多云服务的域名请参考服务对应的API文档服务类型使用域名(样例)接口调用示例(样例)对应接口文档(以8.0.0接口文档为例)弹性云服务器(ECS)ecs.sa-fb-1.demo.comhttps://ecs.sa-fb-1.demo.com/v2/{tenant_id}/servers弹性云服务器(ECS) 8.x API参考(for 华为云Stack 8.x)裸金属服务(BMS)bms.sa-fb-1.demo.comhttps://bms.sa-fb-1.demo.com/v1/{project_id}/baremetalservers裸金属服务器(BMS) 8.x API参考(for 华为云Stack 8.x)镜像服务(IMS)ims.sa-fb-1.demo.comhttps://ims.sa-fb-1.demo.com/v2/images镜像服务(IMS) 8.x API参考(for 华为云Stack 8.x)弹性伸缩服务(AS)as.sa-fb-1.demo.comhttps://as.sa-fb-1.demo.com/autoscaling-api/v1/{tenant_id}/scaling_configuration弹性伸缩(AS) 8.x API参考(for 华为云Stack 8.x)云磁盘(EVS)evs.sa-fb-1.demo.comhttps://evs.sa-fb-1.demo.com/v2/{tenant_id}/volumes云硬盘(EVS) 8.x API参考 (for 华为云Stack 8.x)虚拟私有云(VPC)vpc.sa-fb-1.demo.comhttps://vpc.sa-fb-1.demo.com/v2.0/networks虚拟私有云(VPC) 8.x API参考(for 华为云Stack 8.x)弹性IP(EIP)eip.sa-fb-1.demo.comhttps://eip.sa-fb-1.demo.com/v2.0/floatingips弹性IP(EIP) 8.x API参考(for 华为云Stack 8.x)弹性负载均衡(ELB)vpc.sa-fb-1.demo.comhttps://vpc.sa-fb-1.demo.com/v2.0/lbaas/loadbalancers弹性负载均衡(ELB) 8.x API参考(for 华为云Stack 8.x)网络ACl(虚拟防火墙、VFW)acl.sa-fb-1.demo.comhttps://acl.sa-fb-1.demo.com/v2.0/fwaas/firewall_policies网络ACL(Network ACL) 8.x API参考(for 华为云Stack 8.x)身份认证服务(IAM)iam-apigateway-proxy.demo.comhttps://iam-apigateway-proxy.demo.com/v3/auth/tokensManageOne 8.x OTenantSecurity服务API参考运营管理服务(ManageOne运营面)sc.demo.comhttps://sc.demo.com/rest/vdc/v3.0/usersManageOne 8.x 运营面API参考云配置服务(CCS)ccs.sa-fb-1.demo.comhttps://ccs.sa-fb-1.demo.com/v1.0/resource-tags华为云Stack 8.x API接口参考-->公共组件-->CCS
  • [基础知识] API认证介绍
    1 背景介绍第三方系统对接华为云Stack时,需要对接实现的功能不同,需要使用的账号角色也不同,获取token时,也需要指定权限范围,才能正确的调用接口。这里给出几种常见权限的token,方便开发者对号入座,使用正确的token调用接口。2 用户角色介绍首先,我们介绍一下ManageOne运营面的几类用户角色,ManageOne运营面默认提供运营管理员、VDC管理员、VDC业务员、VDC只读管理员四类角色,同时还支持自定义角色,不同的角色拥有的权限不同,如下表所示:角色权限权限解读运营管理员具有运营管理类的所有权限。具备资源池接入、租户管理、产品管理、审批流程管理等权限,不具备申请使用资源的权限VDC管理员具有所属VDC及下级VDC的管理权限,以及对所有资源具有管理权限。具备管理VDC内部project、用户、产品、审批流程以及子级VDC的权限,同时具备申请、使用资源的权限VDC业务员VDC业务员在其关联的项目内,对所有资源具有管理权限。仅具备申请、使用资源的权限,不具备管理用户、project的权限VDC只读管理员VDC只读管理员对本VDC及其下级VDC中资源、用户、项目、自运维等具有查看权限。对VDC、project、用户、资源、产品等具备查看权限,无修改、删除、创建权限自定义角色在自定义时为该角色赋予相应的操作权限。自定义角色权限集为VDC管理员权限集的子集3 权限各异的token这里主要给出两种权限的token的获取方法,如下表所示:token类别权限范围适用的对接场景具有云服务管理员权限的token具备一级VDC、资源池管理权限和云服务管理权限,支持创建规格,不能申请云资源第三方系统对接华为云Stack时,需要自定义规格时使用该token具有VDC管理员权限的token(常见场景)内部project、用户、产品、审批流程以及子级VDC的权限,具备资源申请、使用权限,不具备创建规格权限第三方系统对接华为云Stack时,需要管理project,用户,并在project中申请、使用资源时使用3.1 具有云服务管理员权限的token适用场景:第三方云管对接华为云Stack时,需要支持在第三方云管上创建规格,此时需要获取管理员权限的token;该token也可用于创建一级VDC,一级VDC管理员调用准备:1、获得运营管理员账号密码.2、正式调用接口前,您需要获取对应的IP、IAM对外域名,请参考:cid:link_0调用步骤:1、获得scope权限范围为domain的运营管理员token,运营管理员的domain为固定值,mo_bss_admin,示例如下:请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:{    "auth": {        "identity": {            "methods": [                "password"            ],            "password": {                "user": {                    "domain": {                        "name": "mo_bss_admin"                    },                    "name": "XXXXXX",                    "password": "XXXXXX"                }            }        },        "scope": {            "domain": {                "name": "mo_bss_admin"            }        }    }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedDate: Wed, 12 Feb 2020 07:14:47 GMTContent-Type: application/json; charset=utf-8Transfer-Encoding: chunkedConnection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-IAM-Trace-Id: df659e8ff4feecf1adfffe72f7335d40ETag: W/"259-Qgmz1aPq7XYjfweWaVCVmseNMls"X-Request-Id: df659e8ff4feecf1adfffe72f7335d40Server: api-gatewayX-Subject-Token的值即为我们所需要的token使用curl调用接口示例如下:curl -X POST -d '{"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"mo_bss_admin"},"name":"xxxxx","password":"xxxxx"}}},"scope":{"domain":{"name":"mo_bss_admin"}}}}' -k -i -H "Content-Type: application/json" https://{IAM对外访问域名}/v3/auth/tokens2、使用上一步中获取的token,查询运营管理员管理的默认Project,示例如下:请求URL:https://{IAM对外访问域名}/v3/auth/projects请求方法:GET请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8X-Auth-Token:MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA== 请求体:无响应体:{    "projects": [        {            "id": "a2a6e4500b614249afdc0d463971de91",            "name": "STD_test-region-1_mo_bss_project",            "domain_id": "c386760daaad424ca00ef0044d14eca5",            "description": "",            "enabled": true,            "parent_id": "c386760daaad424ca00ef0044d14eca5",            "is_domain": false,            "links": {                "self": "None/v3/projects/a2a6e4500b614249afdc0d463971de91"            }        }    ],    "links": {        "next": null,        "self": "None/v3/auth/projects",        "previous": null    }}这样,我们就拿到了运营管理员的project,STD_test-region-1_mo_bss_project注意:如果查询到多个项目,优先使用项目名称后缀为mo_bss_project的项目3、使用运营管理员账号密码,domain name和project name,重新获得token,示例如下:1、获得scope权限范围为domain的运营管理员token,运营管理员的domain为固定值,mo_bss_admin,示例如下:请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体(请注意scope部分的变化):{    "auth": {        "identity": {            "methods": [                "password"            ],            "password": {                "user": {                    "domain": {                        "name": "mo_bss_admin"                    },                    "name": "XXXXX",                    "password": "XXXXXX"                }            }        },        "scope": {            "project": {                "domain": {                    "name": "mo_bss_admin"                },                "name": "STD_test-region-1_mo_bss_project"            }        }    }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedDate: Wed, 12 Feb 2020 07:14:47 GMTContent-Type: application/json; charset=utf-8Transfer-Encoding: chunkedConnection: keep-aliveX-Subject-Token: MIASQCwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6XCVSDASAX-IAM-Trace-Id: df659e8ff4feecf1adfffe72f7335d40ETag: W/"259-Qgmz1aPq7XYjfweWaVCVmseNMls"X-Request-Id: df659e8ff4feecf1adfffe72f7335d40Server: api-gateway此处获得的token即可用于调用云服务接口创建规格(【POST】/v2.1/{project_id}/flavors,project_id即为第2步中查询到的project的Id),注意,创建规格时,需要指定规格的可见范围为公用,否则其他租户无法使用该规格,即设置:"os-flavor-access:is_public": true3.2 具有VDC管理员权限的token适用场景:第三方云管对接华为云Stack时,需要调用准备:1、正式调用接口前,您需要获取对应的IP、IAM对外访问域名,请参考:cid:link_02、获得VDC管理员账号密码.3、获取到账号后,还需要获得该租户管理员所属租户的名称,以及该租户下一个project的Id或者名称,方法如下:·        使用租户管理员账号登录ManageOne运营侧(ManageOne运营侧的访问地址请联系现场华为工程师获取)·        点击右上角的用户图标,切换到“个人设置”页面,如下:可以看到,租户名称为xssvdc,我们选择的project为xssvdc,下面我们来获取token调用示例:请求URL:https://{IAM对外访问域名}/v3/auth/tokens请求方法:POST请求头:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体:{    "auth": {        "identity": {            "methods": [                "password"            ],            "password": {                "user": {                    "domain": {                        "name": "用户所属的租户名称"                    },                    "name": "用户名",                    "password": "密码"                }            }        },        "scope": {            "project": {                "domain": {                    "name": "用户所属的租户名称"                },                "name": "用户关联的项目名称"            }        }    }}返回的token在响应头中,示例如下:HTTP/1.1 201 CreatedDate: Wed, 12 Feb 2020 07:14:47 GMTContent-Type: application/json; charset=utf-8Transfer-Encoding: chunkedConnection: keep-aliveX-Subject-Token: MIAIIIQSDSwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesU3FGESDVSDMASWQX-IAM-Trace-Id: df659e8ff4feecf1adfffe72f7335d40ETag: W/"259-Qgmz1aPq7XYjfweWaVCVmseNMls"X-Request-Id: df659e8ff4feecf1adfffe72f7335d40Server: api-gateway这里我们就获得了VDC管理员在指定domain,project内的权限,可以用这个token去创建子级VDC、project、用户,也可以在指定的project内创建、操作资源。说明:如果获取token时,仅指定了domain,这个token可以用于创建子级VDC、project、用户,但不能创建、操作具体资源,因为所有的资源都分配在指定的project下。例如下面的请求体示例,获取的token就不能用于创建、操作资源:{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "用户所属的租户名称" }, "name": "用户名", "password": "密码" } } }, "scope": { "domain": { "name": "用户所属的租户名称" } } }}
  • [集成开发] 日志上报(提供日志给上层分析平台)
    1、场景说明ManageOne运营面支持记录租户操作日志,使得用户可以了解本人或他人的操作信息,便于定位问题和排除故障等。为方便第三方审计系统获取ManageOne运营面租户日志(租户申请资源,创建用户等操作相关的日志),ManageOne开放了租户查询日志接口,该接口支持查询所有租户操作日志,也支持查询指定租户操作日志。同时ManageOne运维面支持通过Syslog协议将运维面系统日志和操作日志上报给第三方平台。2、使用流程 1. 接口列表&准备工作1.1 获取租户操作日志准备工作查询租户操作日志涉及到的接口如下:序号URL说明1【POST】/v3/auth/tokens获取token2【GET】/rest/octrace/v3.0/traces查询租户操作日志,该接口未做分权分域,所有用户均可调用该接口,且能够查询所有的租户操作日志正式调用接口前,需要获取接口文档,账号,域名和对接账号,请参考:https://bbs.huaweicloud.com/forum/thread-41849-1-1.html1.2 获取运维面日志准备工作运维面操作日志采用Syslog协议上报,需要的准备工作如下:需要获取Syslog服务端的IP地址和端口,如,192.168.1.2, 8895;且需要确保ManageOne运维面后台节点可访问Syslog服务端,网络访问要求如下:节点名称被访问节点访问要求ManageOne-Service01Syslog服务端指定端口ManageOne-Service01可访问Syslog服务端指定端口ManageOne-Service02Syslog服务端指定端口ManageOne-Service02可访问Syslog服务端指定端口ManageOne-Deploy01Syslog服务端指定端口ManageOne-Deploy01可访问Syslog服务端指定端口ManageOne-Deploy02Syslog服务端指定端口ManageOne-Deploy02可访问Syslog服务端指定端口2. 对接步骤2.1获取租户操作日志步骤1 获取token获得scope权限范围为domain的VDC管理员token,VDC管理员的domain为VDC名称,示例如下:请求URL:https://{运营侧北向接口对外域名}/v3/auth/tokens请求方法:POST请求头示例:Accept:application/jsonContent-Type:application/json;charset=UTF-8请求体示例:{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "XXXXXX", "password": "XXXXXX", "domain": { "name": "sfy_vdc" } } } }, "scope": { "domain": { "name": "sfy_vdc" } } }} 返回的token在响应头中,示例如下:Content-Type: application/json; charset=utf-8Connection: keep-aliveX-Subject-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==X-Subject-Token的值即为我们所需要的token步骤2 查询租户操作日志请求URL:https://{运营侧北向接口对外域名}/rest/octrace/v3.0/traces?limit=3&start=0&language=zh-cn (8.0以上版本需使用运维侧北向接口对外域名)说明:URL路径参数支持操作日志过滤,具体过滤条件和参数详细信息及说明参考《ManageOne 运营面API参考 .docx》(8.0以上版本为《ManageOne 运维面API参考 .docx》)文档中的“查询操作日志接口”章节。请求方法:GET请求头示例:Content-Type: application/json Accept: application/json X-Auth-Token: MIIECwYxxxxxxxxxxxxxxxxxxSQ3G2RAj89N+t9GECHGnnGUgkKj7vMesUZ2jEW6EiVYA==请求体:无响应体示例:{    "total": 102619,    "traces": [        {            "user_name": "vdc_admin",            "trace_message": "修改服务成功。",            "source_ip": "160.133.65.30",            "domain_id": "b6ff69d6703748bebd7b3075cf97059b",            "domain_name": "op_service",            "trace_type": "ConsoleAction",            "project_id": "system",            "httpCode": 200,            "invoke_trace_id": "7eb520a8f82bff147eb520a8f82bff14",            "trace_id": "806f2152-2c24-4b02-9405-9a31c42cb2cd",            "trace_result": "successed",            "trace_name": "修改服务",            "resource_type": "Product",            "end_time": 1594024617416,            "trace_rating": "normal",            "api_version": "v2",            "start_time": "1594024617416",            "service_type": "MOProduct",            "user_id": "32cb5a3c9de44bcf9696db98c1db828a",            "resource_id": "e02dd4ad12aa46e997bbce03ab00dc43",            "resource_name": "安装Nginx服务",            "record_time": 1594024617431,            "request_id": "RouteID-movappservice-15-0-200706163657-451712"        },        {            "user_name": "vdc_admin",            "trace_message": "修改服务成功。",            "source_ip": "160.133.65.30",            "domain_id": "b6ff69d6703748bebd7b3075cf97059b",            "domain_name": "op_service",            "trace_type": "ConsoleAction",            "project_id": "system",            "httpCode": 200,            "invoke_trace_id": "7eb520a8f82bff147eb520a8f82bff14",            "trace_id": "59907ba2-2852-4ce1-bb54-8d0cba1d302f",            "trace_result": "successed",            "trace_name": "修改服务",            "resource_type": "Product",            "end_time": 1594024617225,            "trace_rating": "normal",            "api_version": "v2",            "start_time": "1594024617225",            "service_type": "MOProduct",            "user_id": "32cb5a3c9de44bcf9696db98c1db828a",            "resource_id": "c5b9faa868364c1fb94a117abfd39e56",            "resource_name": "安装Kafka集群",            "record_time": 1594024617235,            "request_id": "RouteID-movappservice-15-0-200706163657-451707"        },        {            "user_name": "vdc_admin",            "trace_message": "修改服务成功。",            "source_ip": "160.133.65.30",            "domain_id": "b6ff69d6703748bebd7b3075cf97059b",            "domain_name": "op_service",            "trace_type": "ConsoleAction",            "project_id": "system",            "httpCode": 200,            "invoke_trace_id": "7eb520a8f82bff147eb520a8f82bff14",            "trace_id": "d97c05a4-8991-4a16-8d63-312d84e16c4b",            "trace_result": "successed",            "trace_name": "修改服务",            "resource_type": "Product",            "end_time": 1594024616965,            "trace_rating": "normal",            "api_version": "v2",            "start_time": "1594024616965",            "service_type": "MOProduct",            "user_id": "32cb5a3c9de44bcf9696db98c1db828a",            "resource_id": "48b119eb0feb459698ffa16a545e2527",            "resource_name": "安装Kafka服务",            "record_time": 1594024616974,            "request_id": "RouteID-movappservice-15-0-200706163656-451702"        }    ]}2.2 配置运维面日志上报首先参考2.2章节,获取到第三方Syslog服务端的IP和端口信息,并确认网络可达,然后执行以下操作(适用于6.5.1和8.0.0版本)步骤1 使用管理员账户,登录ManageOne运维面步骤2 依次点击"系统管理"-->"日志管理"-->"日志转发设置",进入日志转发配置页面,如下图所示:步骤3 点击“创建”,进入日志转发服务器配置页面,如下图所示:填写正确的IP地址和端口号,根据需要配置协议类型和日志级别,完成配置后,点击“确定”即可。接下来,可以在运维面上执行一些操作,然后与Syslog服务端确认是否能正常收到日志,如果不能收到,建议现排查网络是否可达。   
  • [集成开发] 单点登录(第三方系统作为认证中心)
    1、场景说明ManageOne分为运营侧/运维侧支持对接到第三方的SSO Server,通过第三方认证中心完成登录授权。 2、使用流程约束条件:8.0.3及以下版本,运维侧作为SSO客户端对接第三方SSO Server后,只有运维侧本身支持单点登录功能,已经与运维侧单点登录集成的系统不支持直接登录,比如ServiceOM、CPS、eSight等。8.2.1及以上版本,ManageOne运维侧与IAM集成,实现统一登录,运维侧不再单独作为客户端与第三方SSO Server对接。用户只需将运营面与第三方SSO Server对接,运维面可同步实现对接。 demo地址:运营面:cid:link_0 功能扩展:1、运营侧作为SSO Client使用原生页面登录:cid:link_1
  • [集成开发] 单点登录(ManageOne作为认证中心)
    1、场景说明ManageOne是基于CAS 2.0协议提供SSO Server服务,第三方系统对接后可实现单点登录功能。 2、使用流程CAS基本原理图:  CAS Client与受信任的第三方系统部署在一起,以Filter的方式保护Web应用系统的资源,过滤从浏览器发送的每一个web请求。  约束条件:ManageOne 6.5.0 及以上版本 步骤如下:1.用户访问受信系统被CAS Client拦截。2.重定向到CAS Server登录页面。3.用户认证过程,如果用户提供了正确的认证信息,CAS Server随机产生一个不可伪造的(Service Ticket)ST,并缓存以待将来验证。4.CAS Server携带ST重定向到受信客户端系统,并为客户端浏览器设置一个(Ticket Granted Cookie)TGC。5.CAS Client提取ST到CAS Server验证。6.CAS Client得到合法用户信息,完成单点登录。 demo地址(需登录):cid:link_0