操作场景
适用于多人多团队共用 CLS 日志服务的场景。该场景下,不同的用户需要频繁登录腾讯云控制台检索分析日志,会碰到以下问题:
账号管理成本高:公网访问控制台,需要运维人员频繁给申请人添加腾讯云账号,要求及时发现并清理离职人员的账号等。
功能访问路径深:开发人员查看日志或运营人员查看仪表盘的使用过程中登录验证频繁,且每次都需要从云产品菜单开始,数次跳转才能打开日志服务。期望可以打开即用,避免频繁登录和跳转。
为解决以上问题,CLS 发布 DataSight 独立控制台,具备了以下特性:
降低账号管理成本:
用户不需要腾讯云账号,即可使用 CLS 日志服务。
支持内网访问,安全性高,人员离职后即无法访问等。
支持用户按角色授予不同的 CLS 日志服务访问权限。
即使权限配置错误也只影响 CLS 日志服务,不会影响其他云产品,降低权限安全管控风险。
快捷的功能访问路径:
支持账号密码登录、免登录、单点登录等多种方式访问 CLS 日志服务。
支持通过访问地址快速打开、分享、内嵌对应页面。
说明:
DataSight 当前可免费使用。
DataSight 体验环境
功能特性
降低账号管理成本
用户不需要腾讯云账号,即可使用 CLS 日志服务。
降低权限安全管控风险
支持用户按角色授予不同的 CLS 日志服务访问权限。
即使权限配置错误也只影响 CLS 日志服务,不会影响其他云产品。
支持内网访问。
快捷的功能访问路径
支持账号密码登录、匿名登录、第三方认证登录等多种方式访问 CLS 日志服务。
支持通过访问地址快速打开、分享对应页面。
操作步骤
步骤1:创建 DataSight
1. 登录 日志服务 控制台,在概览页面,找到 DataSight,单击立即启用。
2. 在实例配置页面,选择访问方式。支持公网与内网两种访问方式。
访问方式 | 说明 |
公网访问 | 公网访问支持从互联网访问 DataSight 查看分析日志。仅支持密码鉴权登录。 |
内网访问 | 前提条件:用户办公网与腾讯云通过物理专线、VPN 安全隧道等方式互联互通。 内网访问支持从腾讯云内网访问 DataSight 查看分析日志,互联网无法访问,更安全。支持密码鉴权登录、匿名登录等多种登录方式。 |
步骤2:创建子用户获取 SecretId、SecretKey
1. 登录 访问管理 控制台,在用户列表页面,单击新建用户。
2. 选择自定义创建进入创建流程,再选择可访问资源并接收消息,单击下一步。
3. 配置子用户信息,并勾选编程访问,单击下一步。
4. 设置用户权限,选择从策略列表中选取策略关联。建议使用 CLS 只读访问权限策略 QcloudCLSReadOnlyAccess ,也可以根据需求自建策略,策略配置见 CLS 访问策略模板。配置完成后单击下一步。


5. 配置用户标签后审阅角色信息,完成子用户创建。
6. 单击显示密钥,复制密钥信息。


步骤3:选择登录方式
填写用户名、密码、以及用户权限对应的密钥后,保存配置。支持添加多个用户。
配置项 | 配置说明 |
用户名 | 登录 DataSight 的用户名 |
密码 | 登录 DataSight 的用户密码 ,密码要求8 ~ 30位字符,不能以" / "开头,至少包含:小写字母 a ~ z、大写字母 A ~ Z、数字0 ~ 9、()!@#$%^&*|?>< 中的三项。 |
SecretId、SecretKey | |
访问 IP 限制 | 限制访问来源的 IP,支持输入 IP 地址或 CIDR,多个之间使用英文逗号分隔。 白名单:符合白名单的 IP 地址才能访问 DataSight。 黑名单:符合黑名单的 IP 地址将被拒绝访问 DataSight。 |
填入 SecretId、SecretKey 后保存配置。匿名登录仅内网访问支持,无需鉴权。建议使用只读权限的密钥,避免安全风险。
配置项 | 配置说明 |
SecretId、SecretKey | |
访问 IP 限制 | 限制访问来源的 IP,支持输入 IP 地址或 CIDR,多个之间使用英文逗号分隔。 白名单:符合白名单的 IP 地址才能访问 DataSight。 黑名单:符合黑名单的 IP 地址将被拒绝访问 DataSight。 |
DataSight 支持反向代理处理身份认证后访问,实现对接第三方身份认证系统(LDAP、OAuth 等)。第三方认证登录仅内网访问支持,配置步骤如下:

1. 创建 DataSight 角色。
填写角色名称及角色权限对应的密钥信息。角色将与第三方身份认证系统的用户角色进行映射。
配置项 | 配置说明 |
角色名 | DataSight 的角色名称 |
SecretId、SecretKey |
2. 配置反向代理并设置用户与 DataSight 角色的映射。
2.1 准备一个 Nginx 环境用作反向代理
该反向代理必须可以访问 DataSight 所属的私有网络,同时需确保已安装 --with-http_auth_request_module 模块,可使用
nginx -V
命令可查看是否已存在该模块。1.12版本以上的 Nginx 默认安装该模块,如果没有安装,请升级 Nginx 版本或参考 ngx_http_auth_request_module 进行安装。2.2 登录机器并配置反向代理,配置模板可参见 腾讯云日志服务 CLS DataSight 登录校验代理。目前提供 LDAP 与 Oauth 两种对接方式。
对接 LDAP
2.2.1 复制模板文件到本地。
git clone https://github.com/TencentCloud/cls-datasight-demo.git
2.2.2 打开文件目录
cls-datasight-demo/auth-proxy/ldap
中的 nginx-ldap-auth.conf 文件,并按文档内的提示信息进行修改。2.2.3 将修改后的
nginx-ldap-auth.conf
文件复制到 Nginx 配置文件中,然后重启 Nginx 服务。cp nginx-ldap-auth.conf /etc/nginx/conf.d/nginx-ldap-auth.conf## 请根据实际情况修改文件路径systemctl restart nginx## 重启Nginx服务
2.2.4 打开文件目录
cls-datasight-demo/auth-proxy/ldap
中的 .env 文件,按照注释指引,生成并配置 ENCRYPTION_KEY 环境变量。2.2.5 在目录
auth-proxy/ldap
下运行 LDAP 校验模块、登录模块。(推荐) 通过 docker 运行:
docker build -f Dockerfile-auth -t nginx-ldap-auth .docker build -f Dockerfile-login -t nginx-ldap-login .docker run -d -p 8888:8888/tcp --env-file ".env" nginx-ldap-authdocker run -d -p 9000:9000/tcp --env-file ".env" nginx-ldap-login
本地直接通过 Python 运行。如遇到安装依赖报错,请根据报错提示搜索相关依赖包文档解决。
python3 -m pip install python-ldap python-dotenv setuptools_rust cryptographynohup python3 nginx-ldap-login.py >login.log 2>&1 &nohup python3 nginx-ldap-auth.py >auth.log 2>&1 &
对接 OAuth
前提条件:本示例基于 Nginx + vouch-proxy 实现,需要已安装Nginx,并下载 vouch-proxy 到本地。您也可以根据实际情况使用其他 OAuth 校验软件,例如 oauth2-proxy。
2.2.1 复制模板文件到本地。
git clone https://github.com/TencentCloud/cls-datasight-demo.git
2.2.2 打开
cls-datasight-demo/auth-proxy/oauth/keycloak(oidc)
目录。其中 config.yml 是 vouch-proxy 配置文件,nginx-oauth-keycloak.conf 是 nginx 配置文件。2.2.3 按文档内的提示信息修改
nginx-oauth-keycloak.conf
配置文件并复制到 Nginx 配置文件中,然后重启 Nginx 服务。cp nginx-oauth-keycloak.conf /etc/nginx/conf.d/nginx-oauth-keycloak.conf## 请根据实际情况修改文件路径systemctl restart nginx## 重启Nginx服务
2.2.4 按文档内的提示信息修改
config.yml
,放到本地 vouch-proxy 的 config 文件夹中。cp config.yml /root/vouch-proxy/config/config.yml## 请按实际情况自行修改 vouch-proxy 的 config 文件路径
2.2.5 参考 vouch-proxy 指引运行 vouch 服务。推荐通过 docker 方式运行。
docker run -d \\-p 9090:9090 \\-v ${PWD}/config:/config \\quay.io/vouch/vouch-proxy
3. 填写反向代理的内网 IP。
填写 Nginx 内网 IP 地址或 CIDR。支持填写多个,使用英文逗号分隔。
步骤4:登录 DataSight 查看日志
密码鉴权登录或匿名登录
在云控制台概览页面查看 DataSight 管理列表,获取访问地址。在浏览器打开访问地址,登录 DataSight 使用日志服务。如果为密码鉴权登录,则需要在登录页面输入用户名与密码。




第三方认证登录
浏览器访问 Nginx 配置文件中配置的自定义域名,通过身份验证后登录 DataSight 控制台。
步骤5:让仪表盘订阅与告警通知的跳转链接默认打开 DataSight 控制台(可选)
1. 创建 订阅仪表盘,配置仪表盘链接为使用 DataSight 域名。保存后,发送的订阅仪表盘携带的链接将默认打开 DataSight。


2. 创建 告警通知渠道组,配置查询数据链接为使用 DataSight 域名。保存后,发送的告警通知携带的链接将默认打开 DataSight。


DataSight 场景案例
案例1:作为独立控制台提供给第三方使用
某公司需要开放业务日志给多个第三方合作伙伴查询,有以下诉求:
有多个第三方用户,每个用户可访问的资源权限不同。
第三方用户没有腾讯云账号,需要独立的账号密码鉴权。
解决方案
使用 DataSight 账号密码登录鉴权的能力,分别创建多个角色 PartnerA 与 PartnerB,对应不同权限的子用户密钥。实现角色间资源的隔离与权限的控制。
合作伙伴通过管理员提供的访问链接、用户名与密码。登录 DataSight 实现各自的业务需求。

操作步骤
1. 创建 DataSight 实例,详情请参见 创建实例。
2. 在控制台 访问管理 创建两个子用户,分别命名为 PartnerA 和 PartnerB 。PartnerA 配置指定日志主题的读写权限,详情请参见 对指定标签的主题具备管理权限。PartnerB 配置指定日志主题与仪表盘的只读权限,详情请参见 对指定资源的仪表盘具备只读权限。创建完成后,获取两个子用户的 SecretId、SecretKey,详情请参见 获取密钥。
3. 选择 DataSight 的登录方式为密码鉴权登录,创建两个用户命名为 PartnerA 和 PartnerB ,配置密码并填入对应的 SecretId、SecretKey,详情请参见 密码鉴权登录。
4. 保存配置,获得 DataSight 访问链接。用户通过访问链接,使用用户名与密码登录 DataSight 实现各自的业务需求。
案例2:作为独立控制台在企业内网免登录使用
某公司运维人员负责公司业务日志的管理,需要开放指定业务日志给公司内人员使用,有以下需求:
企业内部使用人员不需要登录腾讯云账号。
可以指定查看的业务日志和仪表盘资源。
用户通过企业内部域名访问,不使用 DataSight 域名。
解决方案
选择内网访问 DataSight,使用匿名登录,子用户密钥配置对指定资源仅具备只读权限,实现内网匿名访问。
配置 Nginx 反向代理实现自定义域名。
用户在内网环境下,通过运维人员提供的访问链接(自定义域名),登录 DataSight 实现各自的需求。

操作步骤
1. 创建 DataSight 实例,选择内网访问,详情请参见 创建实例。
2. 在控制台 访问管理 创建子用户, 配置对指定日志主题、仪表盘具备只读权限,详情请参见 对指定主题具备只读权限 和 对指定仪表盘具备只读权限。创建完成后,获取子用户的 SecretId、SecretKey,详情请参见 获取密钥。
3. 选择 DataSight 的登录方式为匿名登录,填入 SecretId、SecretKey,详情请参见 匿名登录。配置后保存配置。
4. 配置 Nginx 反向代理,使用企业内部域名,替代 DataSight 域名。(非必需,无自定义域名需求可不配置)
Nginx 配置模板:
# 请根据实际情况,修改此配置示例中<your-domain.com>、<your-domain-cert>、<domain-appid>(datasight域名前缀,支持公网/内网域名)部分# 强烈建议您为自定义域名开启https,并强制http跳转到https,以提升浏览器请求安全性、减少浏览器请求排队等待。# 如不希望强制跳转到https协议,可注释此server配置server {listen 80;server_name your-domain.com;return 301 https://$host$request_uri;}server {# 如希望通过http协议访问,可去掉下行注释# listen 80;listen 443 ssl http2;server_name your-domain.com;ssl_certificate your-domain-cert.pem;ssl_certificate_key your-domain-cert.key;location ~ ^/(.*) {# 可在此处增加自定义访问控制策略,例如:限制指定referer值才可访问#set $match "$1::$http_referer";#if ($match !~* ^(.+)::http[s]*://[www]*[.]*\\1.*$ ) {# return 403;#}proxy_pass https://datasight-111111111.clsconsole.tencent-cloud.com;proxy_set_header Host $proxy_host;proxy_set_header Origin https://$proxy_host;proxy_set_header Referer "https://$proxy_host/$1";proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Proxy true;proxy_set_header X-Proxy-Host $host;proxy_set_header X-Proxy-Real-IP $remote_addr;proxy_set_header X-Proxy-Forwarded-Proto $scheme;proxy_redirect ~^(.*)/login\\?s_url=https?%3A%2F%2F[a-z0-9\\-]+(.internal)?.clsconsole.tencent-cloud.com%2F(.*)$ $1/login?s_url=https%3A%2F%2Fyour-domain.com%2F$3;# 如需要隐藏或自定义DataSight页面的腾讯云图标(favicon),可通过以下两个header实现# proxy_set_header X-DATASIGHT-HIDE-FAVICON true;# proxy_set_header X-DATASIGHT-FAVICON-URL https://github.githubassets.com/favicons/favicon.png;}}
5. 获得 DataSight 访问链接。在内网环境,用户通过访问链接直接登录 DataSight 实现各自的业务需求。
案例3:内嵌集成 DataSight 页面到企业内部平台
某公司运维团队已经配置了 DataSight,开发人员可以通过 DataSight 查看应用日志。但是该公司自己开发了统一的运维平台,想要将 DataSight 集成到统一运维平台上,并基于企业统一身份认证系统登录,有以下需求:
支持内嵌页面,可隐藏 DataSight 导航菜单、操作按钮等页面元素。
使用用户自建的统一身份认证系统(LDAP 服务),实现用户的登录认证。
根据所属业务团队属性自动实现用户资源隔离。
解决方案
使用 DataSight 第三方认证登录 的能力,其目前支持对接 LDAP(包括 OpenLDAP 与 Active Directory)与 OAuth(包括 keycloak 等多个 OAuth 提供商)。分别创建 DataSight 角色 userA 与 userB,配置不同权限的子用户密钥,对应 A、B 两个不同的业务团队。
通过反向代理对接用户 LDAP 服务与 DataSight,将 DataSight 角色与 LDAP 的人员分组(Posixgroup)做映射。
用户通过反向代理访问 DataSight,并通过统一身份认证系统的账号密码实现登录和鉴权。
嵌入 URL,可通过参数控制页面元素的隐藏和显示

操作步骤
1. 创建 DataSight 实例,选择内网访问,详细操作请参见 创建实例。
2. 在控制台 访问管理 创建两个子用户,分别命名为 userA 和 userB 。userA、userB 分别配置指定标签日志主题、仪表盘的权限,详情请参见 对指定标签主题具备只读权限 和 对指定标签仪表盘具备管理权限。创建完成后,获取两个子用户的 SecretId、SecretKey,详情请参见 获取密钥。
3. 选择 DataSight 的登录方式为第三方认证登录,在第一步中创建两个角色命名为 userA 和 userB,填入对应的 SecretId、SecretKey。然后按照指引配置 LDAP 的反向代理认证,并填写反向代理的 IP 地址。详细操作请参见 第三方认证登录,完成后保存配置。
4. 在公司平台通过 iframe 嵌入 URL (注意是反向代理的域名不是 DataSight),用户使用 LDAP 的账号登录并查看日志。
内嵌示例:
// 一个快速查看效果的样例,请根据自身业务进行调整// 请根据实际情况修改 <your-domain>.com部分function prepareSdkFrame(url) {var ifrm = document.createElement("iframe");ifrm.setAttribute("src", url);ifrm.style.width = "1280px";ifrm.style.height = "960px";document.body.appendChild(ifrm);}const url = 'https://<your-domain>.com/cls/search?region=${Region}&topic_id=${TopicId}&query=${Query}&time=now-h,now&hideWidget=true&hideTopNav=true&hideLeftNav=true'prepareSdkFrame(url)
检索分析页面
// 请根据实际情况修改 <your-domain> 部分https://<your-domain>.com/cls/search?region=<region>&topic_id=<topic_id>
仪表盘页面
// 请根据实际情况修改 <your-domain> 部分https://<your-domain>.com/cls/dashboard/d?id=<dashboard_id>
关联问题
如果需要内嵌的 CLS 页面中的参数透传到外层主页面的 URL 里,用于分享、跳转等场景(如:通过分享的 URL 打开 CLS 内嵌页面中的指定 Topic),请使用 CLS 页面 SDK 自行开发集成,实现方法请参见 cls-console-sdk。
DataSight 权限配置模板