一键导入
kibana
Kibana/OpenSearch Dashboards — поиск по логам через ES/OpenSearch API. Используй когда нужны nginx/infra-логи или access-логи, недоступные через Loki.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Kibana/OpenSearch Dashboards — поиск по логам через ES/OpenSearch API. Используй когда нужны nginx/infra-логи или access-логи, недоступные через Loki.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
API Health — проверка здоровья JSON-RPC сервиса через SMD. Используй когда нужно убедиться что RPC-endpoint жив, собрать тайминги методов или диагностировать недоступность API.
Appkit — библиотека vmkteam/appkit: метрики, pprof, HTTP client, service metadata, X-Request-ID. Используй при подключении метрик/pprof в сервис, работе с HTTP-клиентом appkit или добавлении корреляционных ID.
CI/CD — GitLab CI + Nomad deploy для Go-сервисов vmkteam. Используй при редактировании .gitlab-ci.yml, *.nomad.hcl, настройке пайплайна или дебаге деплоя.
Colgen — генератор коллекций для Go-структур. Используй при работе с collection.go и конвертерами между слоями.
Commit message — краткое сообщение коммита на английском из git diff. Используй перед `git commit`, после /solve, или при явной просьбе 'сгенерируй commit message'.
Cron — менеджер cron-задач с UI, middleware и Prometheus-метриками. Используй при добавлении/правке cron-задачи, подключении пакета vmkteam/cron или настройке CronConfig.
| name | kibana |
| description | Kibana/OpenSearch Dashboards — поиск по логам через ES/OpenSearch API. Используй когда нужны nginx/infra-логи или access-логи, недоступные через Loki. |
OpenSearch Dashboards (или Kibana) для поиска по логам (nginx access/error, application). Приложенческие логи Go-сервисов — в Loki (см. /loki).
Разные индексы содержат разные данные от разных систем. Имена полей зависят от индекса. Всегда начинай с discovery.
OpenSearch Dashboards использует заголовок
osd-xsrf: trueвместоkbn-xsrf: true(Kibana).
Profile: @{kibana_profile}
Base URL: https://{kibana_host}
Header: osd-xsrf: true (OpenSearch) или kbn-xsrf: true (Kibana)
pcurl @{profile} 'https://{host}/api/saved_objects/_find?type=index-pattern&per_page=100' -s -H 'osd-xsrf: true'
pcurl @{profile} 'https://{host}/api/console/proxy?path={index}/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"sort":[{"@timestamp":"desc"}],"size":1}'
pcurl @{profile} 'https://{host}/api/console/proxy?path={index}/_mapping&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' -d '{}'
Типичные index patterns:
nginx-access-* — nginx access логи (ip, path, httpStatus, requestTime, serverName, platform, xRequestId)nginx-error-* — nginx error логи (level, description, connectionId){service}-* — приложенческие логи (если не в Loki)logstash-* — legacyИспользовать реальные имена полей из discovery.
# По query string
pcurl @{profile} 'https://{host}/api/console/proxy?path={index}/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"query":{"query_string":{"query":"{query}"}},"sort":[{"@timestamp":"desc"}],"size":20}'
# За период
pcurl @{profile} 'https://{host}/api/console/proxy?path={index}/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"query":{"bool":{"must":[{"query_string":{"query":"{query}"}},{"range":{"@timestamp":{"gte":"now-1h","lte":"now"}}}]}},"sort":[{"@timestamp":"desc"}],"size":50}'
# Nginx: 5xx ошибки
pcurl @{profile} 'https://{host}/api/console/proxy?path=nginx-access-*/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"query":{"bool":{"must":[{"range":{"httpStatus":{"gte":500}}},{"range":{"@timestamp":{"gte":"now-1h"}}}]}},"sort":[{"@timestamp":"desc"}],"size":20}'
# Nginx: медленные запросы
pcurl @{profile} 'https://{host}/api/console/proxy?path=nginx-access-*/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"query":{"bool":{"must":[{"range":{"requestTime":{"gte":1}}},{"range":{"@timestamp":{"gte":"now-1h"}}}]}},"sort":[{"requestTime":"desc"}],"size":20}'
# По X-Request-ID (trace)
pcurl @{profile} 'https://{host}/api/console/proxy?path=nginx-access-*/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"query":{"term":{"xRequestId":"{request_id}"}},"size":10}'
# Группировка по полю
pcurl @{profile} 'https://{host}/api/console/proxy?path={index}/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"query":{"range":{"@timestamp":{"gte":"now-1h"}}},"size":0,"aggs":{"by_field":{"terms":{"field":"{field}","size":20}}}}'
# Histogram по времени
pcurl @{profile} 'https://{host}/api/console/proxy?path={index}/_search&method=POST' \
-s -H 'osd-xsrf: true' -H 'Content-Type: application/json' \
-d '{"query":{"range":{"@timestamp":{"gte":"now-1h"}}},"size":0,"aggs":{"over_time":{"date_histogram":{"field":"@timestamp","fixed_interval":"5m"}}}}'
hits.total.value — количество записейhits.hits[]._source — данные записиaggregations — результаты агрегаций