名称: clscli
描述: 查询与分析腾讯云 CLS 日志
主页: https://github.com/
元数据:
{"requires": {"bin": ["clscli"], "env": ["TENCENTCLOUD_SECRET_ID", "TENCENTCLOUD_SECRET_KEY"]}}
查询与分析腾讯云 CLS 日志。
bash
brew tap dbwang0130/clscli
brew install dbwang0130/clscli/clsclibash
export TENCENTCLOUD_SECRET_ID="your-secret-id"
export TENCENTCLOUD_SECRET_KEY="your-secret-key"--region 参数指定地域(例如:ap-guangzhou)。!重要提示:如果不确定日志主题,请先列出所有主题。
列出指定地域的日志主题,以确定查询或上下文操作应使用的 --region 和主题 ID。
clscli topics --region <region> [--topic-name name] [--logset-name name] [--logset-id id] [--limit 20] [--offset 0]
示例:--output=json, --output=csv, -o topics.csv
| 选项 | 必填 | 描述 |
|---|---|---|
| --region | 是 | CLS 地域,例如 ap-guangzhou |
| --topic-name | 否 | 按主题名称过滤(模糊匹配) |
| --logset-name | 否 | 按日志集名称过滤(模糊匹配) |
| --logset-id | 否 | 按日志集 ID 过滤 |
| --limit | 否 | 每页大小,默认 20,最大 100 |
| --offset | 否 | 分页偏移量,默认 0 |
| --output, -o | 否 | 输出格式:json、csv 或文件路径 |
输出列:Region, TopicId, TopicName, LogsetId, CreateTime, StorageType。
clscli query -q "[查询条件] | [SQL语句]" --region <region> -t <TopicId> --last 1h
示例:
- 时间范围:--last 1h, --last 30m;或使用 --from/--to(Unix 毫秒时间戳)
- 多个主题:--topics <id1>,<id2> 或多个 -t <id>
- 自动分页和上限:--max 5000(分页直到获取 5000 条日志或 ListOver)
- 输出:--output=json, --output=csv, -o result.json(写入文件)
| 选项 | 必填 | 描述 |
|---|---|---|
| --region | 是 | CLS 地域,例如 ap-guangzhou |
| -q, --query | 是 | 查询条件或 SQL,例如 level:ERROR 或 * \| select count(*) as cnt |
| -t, --topic | -t/--topics 二选一 | 单个日志主题 ID |
| --topics | -t/--topics 二选一 | 逗号分隔的主题 ID,最多 50 个 |
| --last | --last/--from/--to 三选一 | 时间范围,例如 1h, 30m, 24h |
| --from, --to | --last/--from/--to 三选一 | 开始/结束时间(Unix 毫秒时间戳) |
| --limit | 否 | 每次请求的日志条数,默认 100,最大 1000 |
| --max | 否 | 日志总数上限;非零时,自动分页直到达到上限或 ListOver |
| --output, -o | 否 | 输出格式:json、csv 或文件路径 |
| --sort | 否 | 排序:asc 或 desc,默认 desc |
支持两种语法:
- CQL (CLS Query Language):CLS 专用的日志查询语法,易于使用,推荐。
- Lucene:开源 Lucene 语法;非为日志搜索设计,对特殊字符、大小写、通配符有更多限制;不推荐。
| 语法 | 描述 |
|---|---|
key:value |
键值搜索;字段(key)包含指定值的日志,例如 level:ERROR |
value |
全文搜索;包含指定值的日志,例如 ERROR |
AND |
逻辑与,不区分大小写,例如 level:ERROR AND pid:1234 |
OR |
逻辑或,不区分大小写,例如 level:ERROR OR level:WARNING, level:(ERROR OR WARNING) |
NOT |
逻辑非,不区分大小写,例如 level:ERROR NOT pid:1234, level:ERROR AND NOT pid:1234 |
() |
分组以控制优先级,例如 level:(ERROR OR WARNING) AND pid:1234。注意:无括号时,AND 优先级高于 OR。 |
" " |
短语搜索;双引号内的字符串,单词和顺序必须完全匹配,例如 name:"john Smith"。短语内不能使用逻辑运算符。 |
' ' |
短语搜索;单引号,与 "" 相同;当短语包含双引号时使用,例如 body:'user_name:"bob"' |
* |
通配符;匹配零个或多个字符,例如 host:www.test*.com。不支持前缀通配符。 |
>, >=, <, <=, = |
数值范围运算符,例如 status>400, status:>=400 |
\ |
转义符;转义后的字符视为字面量。需转义值中的空格、:、()、>、=、<、"、'、*。 |
key:* |
文本类型:字段存在(任意值)。长整型/双精度型:字段存在且为数值,例如 response_time:* |
key:"" |
文本类型:字段存在且为空。长整型/双精度型:值非数值或字段缺失,例如 response_time:"" |
| 语法 | 描述 |
|---|---|
| SELECT | 从表中选择;数据来自当前日志主题中匹配查询条件的日志 |
| AS | 为列(KEY)设置别名 |
| GROUP BY | 与聚合函数配合使用,按一列或多列(KEY)分组 |
| ORDER BY | 按 KEY 对结果集排序 |
| LIMIT | 限制返回行数,默认 100,最大 100 万 |
| WHERE | 过滤原始数据 |
| HAVING | 在 GROUP BY 之后、ORDER BY 之前过滤;WHERE 过滤原始数据 |
| 嵌套子查询 | 一个 SELECT 语句嵌套在另一个中,用于多步骤分析 |
| SQL 函数 | 丰富的分析功能:IP 地理位置、时间格式化、字符串分割/连接、JSON 提取、数学运算、去重计数等 |
检索指定日志前后的上下文信息。
clscli context <PkgId> <PkgLogId> --region <region> -t <TopicId>
示例:--output=json, --output=csv, -o context.json(写入文件)
| 选项 | 必填 | 类型 | 描述 | 示例 |
|---|---|---|---|---|
| --region | 是 | String | CLS 地域 | ap-guangzhou |
| -t, --topic | 是 | String | 日志主题 ID | - |
| PkgId | 是 | String | 日志包 ID,即 SearchLog Results[].PkgId | 528C1318606EFEB8-1A7 |
| PkgLogId | 是 | Integer | 包内索引,即 SearchLog Results[].PkgLogId | 65536 |
| --output, -o | 否 | - | 输出格式:json、csv 或文件路径 | - |