mcpField
A
aliyun-sls-log-query

aliyun-sls-log-query

github.com/cinience云与 DevOps396105 次安装11 周前更新
代码仓库

关于 aliyun-sls-log-query

该技能使用 SLS 查询语法和 Python SDK 搜索、过滤及分析日志,适合需要调查错误或统计日志数据的运维人员。它提供查询脚本和按字段分组的故障排查流程。

主要功能

  1. 01按条件搜索和过滤日志
  2. 02使用分析子句进行统计
  3. 03通过脚本设置时间范围与结果上限
  4. 04按字段分组排查错误
  5. 05支持多个 Logstore 查询

适用场景

  1. 01查找最近出现的 500 错误日志
  2. 02统计日志中各状态码的数量
  3. 03按状态字段汇总并检查故障

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-sls-log-query

安装后在 Claude Code 中输入/aliyun-sls-log-query确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
python-sdk.md
query-syntax.md
sources.md
templates.md
scripts/
query_logs.py
troubleshoot.py

详细介绍

Category: service

SLS 日志查询与故障排查

使用 SLS query|analysis 语法和 Python SDK 搜索、筛选和分析日志。

前置条件

  • 安装 SDK(建议使用虚拟环境,以避免 PEP 668 限制):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -U aliyun-log-python-sdk
  • 配置环境变量:
    • ALIBABACLOUD_ACCESS_KEY_ID
    • ALIBABACLOUD_ACCESS_KEY_SECRET
    • SLS_ENDPOINT(例如 cn-hangzhou.log.aliyuncs.com)
    • SLS_PROJECT
    • SLS_LOGSTORE(支持单个值或逗号分隔的多个值)

查询组合

  • 查询子句:筛选日志(例如 status:500)。
  • 分析子句:统计聚合,格式为 query|analysis。
  • 示例:* | SELECT status, count(*) AS pv GROUP BY status

完整语法请参阅 references/query-syntax.md。

快速开始(Python SDK)

import os
import time
from aliyun.log import LogClient, GetLogsRequest

client = LogClient(
    os.environ["SLS_ENDPOINT"],
    os.environ["ALIBABACLOUD_ACCESS_KEY_ID"],
    os.environ["ALIBABACLOUD_ACCESS_KEY_SECRET"],
)

project = os.environ["SLS_PROJECT"]
logstore = os.environ["SLS_LOGSTORE"]

query = "status:500"
start_time = int(time.time()) - 15 * 60
end_time = int(time.time())

request = GetLogsRequest(project, logstore, start_time, end_time, query=query)
response = client.get_logs(request)
for log in response.get_logs():
    print(log.contents)

脚本快速开始

python skills/observability/sls/aliyun-sls-log-query/scripts/query_logs.py \
  --query "status:500" \
  --last-minutes 15

可选参数:--project、--logstore(可重复指定,也可使用逗号分隔的多个值)、--endpoint、--start、--end、--last-minutes、--limit、--parallel。

故障排查脚本

python skills/observability/sls/aliyun-sls-log-query/scripts/troubleshoot.py \
  --group-field status \
  --last-minutes 30 \
  --limit 20

可选参数:--error-query、--group-field、--limit、--logstore(可重复指定,也可使用逗号分隔的多个值)、--parallel,以及上述时间范围参数。

工作流

  1. 确保已启用 Logstore 索引(没有索引时,查询和分析会失败)。
  2. 编写查询子句,并在需要时追加分析子句。
  3. 使用 SDK/脚本执行并检查结果。
  4. 使用 limit 控制返回的行数;需要时缩小时间范围。

验证

mkdir -p output/aliyun-sls-log-query
for f in skills/observability/sls/aliyun-sls-log-query/scripts/*.py; do
  python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/aliyun-sls-log-query/validate.txt

通过标准:命令以 0 退出,且已生成 output/aliyun-sls-log-query/validate.txt。

输出与证据

  • 将工件、命令输出和 API 响应摘要保存在 output/aliyun-sls-log-query/ 下。
  • 在证据文件中包含关键参数(地域/资源 ID/时间范围),以便复现。

参考资料

  • 语法和示例:references/query-syntax.md

  • Python SDK 初始化和查询:references/python-sdk.md

  • 故障排查模板:references/templates.md

  • 来源列表:references/sources.md

评论

支持 Markdown