SLS 服务日志支持记录 Project 内的用户操作日志等多种日志数据,并提供多种分析维度的仪表盘。在开通此功能后,相关的日志都会被存储到指定位置(project)下的两个特殊 logstore:internal-operation_log
以及 internal-diagnostic_log
,我们可以像操作普通 logstore 一样,对它们进行查询、分析、消费以及构建仪表盘等。
服务日志的开启过程涉及到一系列 SLS 资源的创建,包括 logstore、索引、仪表盘等,因此,目前仅支持通过控制台开启此功能。但考虑到我们需要管理的 project 数量可能会有几十上百个,逐个到控制台开启费时费力,无法满足自动化运维的需求。对此,本文将介绍如何通过日志服务的 API 来实现服务日志功能的开启。
参考文档安装或者直接在控制台上打开 CloudShell(入口参考下图)。
代码已托管于 Github,可直接下载:
$ git clone https://github.com/Goclis/logtail-monitor.git
$ ls -al logtail-monitor/sls_project_logging_ctl.py
针对指定的 project,工具脚本会创建对应的 logstore 来存储服务日志,并对相关的索引/仪表盘进行创建或更新(会对当前已存在的配置进行覆盖,请在执行前确认是否会有影响)。
在使用之前,需要修改脚本 sls_project_logging_ctl.py
的内容,对以下参数进行配置:
access_key_id
:AK 信息,必填。access_key_secret
:AK 信息,必填。region_endpoint
:要开启服务日志的 project 所在 region 的 endpoint,可通过参数指定。project_name
:要开启服务日志的 project 名,可通过参数指定。store_project_name
: 存储服务日志的 project 名,可通过参数指定。
可执行 sls_project_logging_ctl.py -h
可查看更多相关说明。
注意:操作日志(internal-operation_log)为收费内容,请根据需要来确认是否开启。
# 开启所有日志
./sls_project_logging_ctl.py enable all
# 仅开启诊断日志
./sls_project_logging_ctl.py enable internal-diagnostic_log
# 仅开启操作日志
./sls_project_logging_ctl.py enable internal-operation_log
# 开启所有日志(cn-hangzhou 公网)
./sls_project_logging_ctl.py enable cn-hangzhou.log.aliyuncs.com my-project-name all
# 仅开启诊断日志(cn-shanghai 公网)
./sls_project_logging_ctl.py enable cn-shanghai.log.aliyuncs.com my-project-name internal-diagnostic_log
# 仅开启操作日志(cn-hangzhou 内网)
./sls_project_logging_ctl.py enable cn-hangzhou-intranet.log.aliyuncs.com my-project-name internal-operation_log
# 开启所有日志(cn-hangzhou 公网),存储到另一个 project 中
./sls_project_logging_ctl.py enable cn-hangzhou.log.aliyuncs.com my-project-name all another-project
基于服务日志进行 logtail 监控: