日志服务提供 日志服务控制台 内嵌到其他系统的能力,满足不需要登录腾讯云控制台即可查询分析日志的诉求。通过内嵌日志服务控制台页面,可以给用户带来以下方便:
内嵌页面示例代码:cls-iframe-demo。
以下为内嵌日志服务控制台流程图:
注意: 若无 “允许角色登录控制台” 选项,请 提交工单 联系我们开通白名单。
e.为角色设置访问策略,例如只读策略权限 QcloudCLSReadOnlyAccess,单击【下一步】。
f. 输入角色名,完成创建。
通过 API 创建 CAM 角色: 创建角色请参见 创建角色 API 文档,其中,ConsoleLogin 需要填入1,允许角色登录控制台。 例如请求示例:
https://cam.tencentcloudapi.com/?Action=CreateRole&RoleName=CompanyOpsRole&ConsoleLogin=1&PolicyDocument={"version":"2.0","statement":[{"action":["cls:get*","cls:list*","cls:GetHistogram","cls:GetFastAnalysis","cls:GetChart","cls:ListChart","cls:ListDashboard","cls:GetDashboard","cls:searchLog","cls:downloadLog","cls:pullLogs"],"effect":"allow","principal":{"qcs":["qcs::cam::uin/100001234567:root"]}}]}
2. 获取当前用户的访问密钥。如何获取持久密钥,可参见主账号访问密钥管理文档。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
action | 是 | String | 操作动作,固定为roleLogin |
timestamp | 是 | Int | 当前时间戳 |
nonce | 是 | Int | 随机整数,取值1000-100000000 |
secretId | 是 | String | STS 返回的临时 AK |
- 拼接参数 将上一步排序好的请求参数,按“参数名称=参数值”拼接,例如
action=roleLogin&nonce=67439&secretId=AKI***PLE×tamp=1484793352
- 拼接签名串
按请求方法 + 请求主机 +请求路径 + ? + 请求字符串的规则拼接签名串。
参数必选描述请求主机和路径是固定为cloud.tencent.com/login/roleAccessCallback
请求方法是支持 GET 或 POST
签名串示例
GETcloud.tencent.com/login/roleAccessCallback?action=roleLogin&nonce=67439&secretId=AKI***PLE×tamp=1484793352
- 生成签名串 使用 HMAC-SHA1 算法对字符串签名,目前支持 HMAC-SHA1 和 HMAC-SHA256。具体代码如下,以 PHP 语言为例:
$secretKey = 'Gu5***1qA';
$srcStr = 'GETcloud.tencent.com/login/roleAccessCallback?action=roleLogin&nonce=67439&secretId=×tamp=1484793352';
$signStr = base64_encode(hash_hmac('sha1', $srcStr, $secretKey, true));
echo $signStr;
PHP 版本示例代码
<?php
$secretId = "AKI***"; //STS 返回的临时 AK
$secretKey = "Gu5***PLE"; //STS 返回的临时
Secret $token = "ADE***fds"; //STS 返回的安全 TOKEN
$param["nonce"] = 11886; //rand();
$param["timestamp"] = 1465185768; //time();
$param["secretId"] = $secretId;
$param["action"] = "roleLogin";
ksort($param);
$signStr = "GETcloud.tencent.com/login/roleAccessCallback?";
foreach ( $param as $key => $value ) { $signStr = $signStr . $key . "=" . $value . "&";
}
$signStr = substr($signStr, 0, -1);
$signature = base64_encode(hash_hmac("sha1", $signStr, $secretKey, true));
echo $signature.PHP_EOL;
6. 拼接完整登录信息以及目的页面地址进行登录。
a. 获取日志服务控制台检索分析页面。
https://console.cloud.tencent.com/cls/search?region=<region>&logset_id=<logset_id>&topic_id=<topic_id>
b. 拼接完整登录信息以及目的页地址进行登录,**参数值需要 urlencode 编码**。
https://cloud.tencent.com/login/roleAccessCallback
?algorithm=<签名时加密算法,目前只支持 sha1 和 sha256 ,不填默认 sha1
&secretId=<签名时 secretId>
&token=<临时密钥 token>
&nonce=<签名时 nonce>
×tamp=<签名时 timestamp>
&signature=<签名串>
&s_url=<登录后目的 URL>
7. 使用生成的最终链接,访问腾讯云日志服务控制台页面。例如检索分析页面的内嵌访问链接如下:
https://cloud.tencent.com/login/roleAccessCallback?nonce=52055817&s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2Fcls%2Fsearch%3Fregion%3Dap-guangzhou%26start_time%3D2020-05-26%25252014%25253A01%25253A18%26end_time%3D2020-05-26%25252014%25253A16%25253A18&secretId=AKID-vHJ7WPHcy_RVIOm-QTIktXOf9S9z_k_JackOp3dyQPJwmDrNLQJuiNuw9******&signature=eXeWaDn6iJlcPp1sqqGd6m9%2FQk****×tamp=1592455018&token=5e4vuBHL7fBQPi1V9fvSINw4Vu7PSr9Ic3de78b86109c171eb4e3ea27c137c1fIWKU8JC-LO01L87sIYlfTSaHHXeHcqim7Jg9hBuN2nbdfgeBUPXhmpyAk4G6e9bHFZ-7yNRig7Y33CQHxh6jOesP4VfhRzQprWGRtC5No1ty******-aoj_WJhA55oyvqaqxw2jtTdh8nx9OjJr3tlbIa9oJe7aZYoPbdpFqrF6ZjlCPPap2yQB_SkUsWwDl_9BrK2Km3U2IocdvQ7QxrW0ts1aiBi7xtTSJRcfkBYPYEV_YoJrtkhYW3E4L47imA1bfVAjM9F5uKWzVzsDGDT0aCUU9mqdb4vjJrY8tm-wJKKEe8eiyY9EbkH3VWnFV2YocYNDJqFyjKOWR******
日志服务控制台检索分析页面 URL 参数说明:
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
region | 是 | String | 地域简称,例如:ap-shanghai 表示上海地域,其他可用地域简称,请参见 可用地域 |
logset_id | 是 | String | 日志集 ID |
topic_id | 是 | String | 日志主题 ID |
start_time | 否 | String | 要检索日志的起始时间,格式样例:2019-11-13 10:00:00 |
end_time | 否 | String | 要检索日志的结束时间,格式样例:2019-11-13 20:00:00 |
query | 否 | String | 关键字检索语法,若关键字中有 URL 保留字符,需要进行 UrlEncode 编码 |
hideWidget | 否 | Boolean | 是否隐藏智能客服图标:true 表示隐藏,false 表示不隐藏 |
hideTopNav | 否 | Boolean | 是否隐藏腾讯云控制台顶部导航栏:true 表示隐藏,false 表示不隐藏 |
hideLeftNav | 否 | Boolean | 是否隐藏腾讯云控制台左侧导航栏:true 表示隐藏,false 表示不隐藏 |
hideHeader | 否 | Boolean | 是否隐藏日志服务顶部导航栏(标题及地域选择):true 表示隐藏,false 表示不隐藏 |
hideTopTips | 否 | Boolean | 是否隐藏日志服务顶部提示语框:true 表示隐藏,false 表示不隐藏 |
hideRegion | 否 | Boolean | 是否隐藏日志服务顶部的地域选择按钮:true 表示隐藏,false 表示不隐藏 |
hideLogsetSelect | 否 | Boolean | 是否隐藏日志服务日志集选择按钮:true 表示隐藏,false 表示不隐藏 |
hideTopicSelect | 否 | Boolean | 是否隐藏日志服务日志主题选择按钮:true 表示隐藏,false 表示不隐藏 |
有任何问题欢迎大家加入企业微信群咨询:【云原生日志服务CLS】技术社区群(或者联系:v_ltvli加入)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。