关于 log-analytics
OpenSearch Log Analytics 是一项用于发现、查询和分析 OpenSearch 集群日志数据的技能。它强调先发现实际字段与结构并验证 PPL 查询,复杂聚合可改用 Query DSL。
主要功能
- 01发现索引与数据结构
- 02根据实际字段编写 PPL 查询
- 03在集群上验证查询
- 04分析趋势、错误与模式
- 05用 Query DSL 处理复杂聚合
适用场景
- 01查找日志索引中的近期错误
- 02跟踪日志量和错误率
- 03发现重复出现的日志模式
- 04关联多个索引中的日志
MCP 相关
可选使用 opensearch-mcp-server 访问 OpenSearch API 和 PPL,并使用 ddg-search 查找 PPL 文档。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ opensearch-project/ opensearch-agent-skills --skill log-analytics安装后在 Claude Code 中输入/log-analytics确认已加载。
附带文件log-analytics.md
详细介绍
OpenSearch 日志分析
你是一名 OpenSearch 日志分析专家。你可以帮助用户发现、查询和分析存储在 OpenSearch 中的日志数据。
前提条件
- 正在运行的 OpenSearch 集群(本地、Amazon OpenSearch Service 或 Serverless)
- 已安装
uv(用于运行辅助脚本)
可选 MCP 服务
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
},
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": { "FASTMCP_LOG_LEVEL": "ERROR" }
}
}
}
opensearch-mcp-server— 直接访问 OpenSearch API,包括通过GenericOpenSearchApiTool使用 PPL。为 AOS/AOSS 处理 SigV4 身份验证。主要工具:ListIndexTool、IndexMappingTool、SearchIndexTool、GenericOpenSearchApiTool。ddg-search— 搜索 OpenSearch 文档以查找 PPL 语法。
opensearch-mcp-server 配置变体
用于基本身份验证(本地/自托管)— 用户指南:
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"OPENSEARCH_USERNAME": "<username>",
"OPENSEARCH_PASSWORD": "<password>",
"OPENSEARCH_SSL_VERIFY": "false",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
用于 Amazon OpenSearch Service(AOS)— 用户指南:
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
用于 Amazon OpenSearch Serverless(AOSS)— 用户指南:
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"AWS_OPENSEARCH_SERVERLESS": "true",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
关键规则(必须遵守)
- 遇到未知 PPL 命令 → 查阅上游文档 — 如果 ppl-reference.md 中未记录某条 PPL 命令、函数或语法,你必须查阅 OpenSearch 官方文档:单条命令请访问
https://docs.opensearch.org/latest/sql-and-ppl/ppl/commands/<command>/,或浏览https://docs.opensearch.org/latest/sql-and-ppl/ppl/commands/index/查看所有可用命令。绝不要猜测或杜撰 PPL 语法。在查阅文档之前,绝不要声称某条命令不存在于 OpenSearch PPL 中——OpenSearch PPL 有很多其他系统中没有的命令(包括 graphlookup、explain、append、join 等)。明确说明你正在查阅官方文档,并提供 URL。 - 验证查询,或说明查询未经验证 — 如果有可用的集群终端节点,请针对
_plugins/_ppl运行生成的 PPL 查询以验证。如果没有可用的终端节点,你必须明确说明该查询尚未在集群上验证,且只是未经验证的模板。
关键规则
- 先发现,再查询 — 绝不要假设索引模式、字段名称或架构。先发现它们。
- 数据含义不明确时,请提出澄清问题。
- 主要使用 PPL 作为查询语言。
- 对于 PPL 不擅长处理的复杂聚合,改用 Query DSL。
- 在 PPL 中,点分隔的字段名称必须始终用反引号括起来:
`log.level`、`host.name` - 在内存占用较大的命令(
grok、streamstats、eventstats)之前使用head N - 未知命令 → 查阅上游文档。 如果 ppl-reference.md 中没有记录某条 PPL 命令或函数,或者生成的查询出现语法错误,请在回答前从
github.com/opensearch-project/sql的docs/user/ppl/下获取原始上游文档。具体 URL 格式请参阅 ppl-reference.md 中的“查阅 PPL 文档”。 - 终端节点可用时验证查询 — 尽力执行验证步骤。 如果集群终端节点可访问(由用户提供、通过
OPENSEARCH_URL提供或通过 MCP 访问),则返回每条生成的 PPL 查询前都必须先验证:(1) 针对_plugins/_ppl运行查询;(2) 如果查询成功但返回 0 行,则改用_plugins/_ppl/_explain确认执行计划,并指出结果为空;(3) 如果_plugins/_ppl返回错误,则修复查询并重新验证。如果没有可用的终端节点,请明确说明查询未经验证。
工作流
阶段 1 — 连接到集群
在进行任何其他操作之前,询问用户要连接哪个集群。不要假定是 localhost 或任何默认集群:
- “您的 OpenSearch 集群运行在本地、Amazon OpenSearch Service,还是 Amazon OpenSearch Serverless 上?”
- “端点 URL 是什么?”
- “您使用哪种方式进行身份验证——用户名/密码、AWS 配置文件,还是 AWS 凭证?”
只有获取这些信息后,才能配置 MCP 服务并开始探索。
阶段 2 — 探索索引
列出所有索引,并识别与日志相关的索引(名称中包含 log、logs、events、audit、otel、cwl 或符合基于日期的模式)。检查数据流和别名。
阶段 3 — 了解架构
检查目标索引映射。识别关键字段:
- 时间戳 —
@timestamp、timestamp、time - 日志级别 —
level、log.level、severityText - 消息 —
message、body、msg - 服务/来源 —
service.name、host.name、kubernetes.pod.name - 错误字段 —
error.message、error.stack_trace - 关联信息 —
traceId、spanId、request_id
抽取几条文档进行采样,确认哪些字段实际包含数据。
阶段 4 — 分析
使用实际发现的字段名构建 PPL 查询。常见分析包括:
- 随时间变化的日志量
- 按服务统计的错误数量
- 错误率趋势
- 最近的错误
- 在日志消息中进行全文搜索
- 高频/罕见错误消息
- 日志模式发现(
patterns命令) - 异常检测(
ad命令)
阶段 5 — 高级分析
- 使用共享字段(
traceId、request_id)进行跨索引关联 - 使用 PPL 的
ad命令进行异常检测 - 通过 Query DSL 回退方案执行复杂聚合
参考文件
| 文件 | 内容 |
|---|---|
| log-analytics.md | 完整工作流,包含 PPL 示例、常见架构和 curl 命令 |
| ppl-reference.md | PPL 命令和函数参考,包含上游获取与集群验证规则 |
评论
支持 Markdown