Я храню свои журналы сборки Jenkins в ElasticSearch с помощью плагина Jenkins Logstash.
Моя конфигурация выглядит примерно так:
Эта часть прекрасно работает, но я хотел бы просмотреть полный журнал в Kibana.
Плагин пошагово отправляет результаты в ES и разрывается на каждой новой строке.Это означает, что длинный журнал в Кибане может выглядеть примерно так:
Где каждая строка - это массивный JSON-вывод, содержащий тонны полей. Мне все равнооколо.Я действительно беспокоюсь только о поле сообщения.
Я сейчас читаю о агрегаторах , которые, похоже, являются тем, что мне нужно, но мои результаты не соответствуют желаемому.
curl -X GET "localhost:9200/_search" -H 'Content-Type: application/json' -d'
{
"aggs" : {
"buildLog" : {
"terms" : {
"field" : "data.url"
}
}
}
}'
Распечатывает большой шар json, который не имеет того, что мне нужно.
В идеальном мире я хотел бы объединить каждое поле сообщения из каждого data.urlи извлеките его.
В SQL отдельный запрос для этого может выглядеть примерно так:
SELECT message FROM jenkins-logstash WHERE data.url='job/playground/36' ORDER BY ASC
Где 'job / plays / 36' является одним примером каждого data.url.
Как я могу это сделать?