SuperAPI AI 工具集

elasticsearch

通用与其它

查看项目

更新于 10-16 08:11

技能介绍

用途:该技能用于通过 Elasticsearch REST API 查询和排查结构化应用日志,适合按 trace ID 追踪请求、按级别或容器名过滤错误、统计日志条目数量等场景。

环境配置:每个环境的 URL、索引模式与可选凭据保存在技能根目录的 environments.json,通过 python3 scripts/envs.py 管理(list / add / update / remove / get / check)。若文件不存在,可复制 environments.example.json 或直接用 add 创建首个环境;至少需配置一个环境,最后一个环境不可删除。该文件可能含凭据,已被 gitignore,在 Unix 上权限自动设为 600。

环境选择:用户指定环境名时直接使用;未指定且存在多个环境时需询问。查询前先加载环境变量:eval "$(python3 scripts/envs.py get <env-name> --format export)",它会设置 ES_BASE_URL、ES_INDEX_PATTERN 及可选的 ES_USERNAME / ES_PASSWORD。每个环境的凭据优先于 shell 环境变量。

鉴权与用法:curl 命令统一使用 -u "$ES_USERNAME:$ES_PASSWORD";搜索请求用 POST,Content-Type 为 application/json。主要端点为 _search,可用 term 精确匹配(如 trace.id)、match 全文搜索(如 message)、bool 组合多条件、range 过滤时间范围、exists 检查字段存在。常用参数包括 _source 字段筛选、size 限制数量、sort 按 @timestamp 排序,也可用 URL 参数 ?filter_path=hits.hits._source 精简响应。

其它端点:_count 在只需计数时比 _search 更快;_mapping 查看字段类型与结构;_msearch 一次请求执行多个搜索;_scroll 分页获取超过 10000 条文档;/_cat/indices?v 列出索引;_stats 查看索引统计。

常用字段:@timestamp、message、level、trace.id、span.id、req.url、req.method、req.query、req.headers.*、appContext.userId、appPayload.res.statusCode、kubernetes.container.name、kubernetes.pod.name、hostname。

限制与排错:size 默认 10、最大 10000,超过需用 _scroll;字段路径区分大小写,嵌套字段用点号表示,字段名不确定时先用 _mapping 探查;结果为空时先确认字段路径与取值,再尝试 match_all 放宽查询;鉴权失败时检查 ES_USERNAME / ES_PASSWORD 是否设置或环境是否存有凭据,并确认网络可达;未配置环境时用 envs.py list 查看并 add 添加。资料未提供该技能的收费、价格或具体平台信息。