Новая версия payments пишет логи, Elasticsearch принимает документы, а Discover пуст. Дежурный собирается перезапустить Logstash. Но в Kibana выбран источник logs-nginx*: события платежей в него не входят. Это как искать посылку в каталоге писем. Посылка на складе есть, каталог смотрит не на ту полку.
Представление, а не копия
Data view
задаёт, где искать и по какому полю фильтровать время. Старое название index pattern
встречается в инструкциях и означает предшественника data view. Не путай его с index_patterns в
шаблоне Elasticsearch: тот настраивает будущие индексы, а data view выбирает источники для чтения.
У «Гонца» два data streams:
logs-gonets.app-default: JSON-события приложения;logs-nginx.access-default: access-логи nginx.
Шаблон logs-* охватывает оба. Узкий logs-gonets.app-* оставляет приложение. Поле времени в обоих случаях @timestamp, тип date.
Создай view в настоящей Kibana
- В Discover открой меню источника и выбери Create a data view.
- Назови его
Гонец · приложениеи задай Index patternlogs-gonets.app-*. - Выбери Timestamp field
@timestampи сохрани. - Задай абсолютный интервал 30 июня 2026. Последние 15 минут сегодня не содержат учебных событий за июнь.
Создание требует прав Kibana Data View Management и права Elasticsearch view_index_metadata. Создать view не значит автоматически получить доступ к документам: права чтения проверяются отдельно.
Сравни две полки
Виджет ниже моделирует выбор источника и времени, но не сохраняет объекты Kibana и не создаёт runtime-поля. Источник задан свойством index.
Попробуй в нижнем виджете service.name : payments. Пустой результат здесь верен: payments не живёт в access-логе. Верни поиск 5xx и сравни время всплеска с верхним виджетом. Два разных источника рассказывают об одном инциденте.
Поле есть, но график не строится
Если один индекс хранит duration_ms числом, а другой строкой, широкий view столкнётся с конфликтом типов. Исправляют маппинг и данные, а не переименовывают колонку в Kibana. Новый view не чинит старые документы.
Runtime-поля
могут вычислять значение при чтении, например категорию ответа по HTTP-коду. Они помогают исследовать данные, но не заменяют согласованную схему для постоянных тяжёлых запросов. В нашей Discover runtime-вычислений нет.
Если событий не видно
Проверяй по порядку: имя источника, абсолютное время и пояс, поле времени и его тип, активный KQL и фильтры, права чтения. Лишь затем проверяй доставку. Поиск непосредственно в _search отличает проблему Kibana от отсутствия документа. В следующем уроке разберём ещё одну причину: старые данные уже удалены политикой хранения.
урок из курса
Урок из курса «Elasticsearch и ELK». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.