У меня ниже похожие логи.
Я создал манекен показатель
и создал отображение
как ниже в инструменты для разработчиков
ПОСТАВИТЬ новый
{
"сопоставления": {
"характеристики": {
"@timestamp": {
"тип": "дата",
"формат": "гггг-ММ-дд ЧЧ:мм:сс.ССС"
}
}
}
}
и проиндексирован
данные, как показано ниже,
ПОСТАВИТЬ /новый/_doc/1
{
"@timestamp": "2021-11-05 08:12:14.534",
"уровень": "ИНФО",
"идентификатор": "1",
"text": "веб-сайт открыт",
"статус": "нажато"
}
ПОСТАВИТЬ /новый/_doc/2
{
"@timestamp": "2021-10-14 09:11:14.534",
"уровень": "ИНФО",
"идентификатор": "3",
"text": "веб-сайт открыт",
"статус": "нажато"
}
ПОЛОЖИТЬ /новый/_doc/3
{
"@timestamp": "2021-09-09 02:08:20.534",
"уровень": "ИНФО",
"идентификатор": "4",
"text": "веб-сайт открыт",
"статус": "нажато"
}
Я могу получить общее количество, используя ниже запрос
запрос,
ПОЛУЧИТЬ новый/_поиск
{
"аггс": {},
"размер": 0,
"поля": [],
"запрос": {
"буль": {
"должен": [],
"фильтр": [
{
"буль": {
"должен": [
{
"match_phrase": {
"text": "веб-сайт доступен"
}
}
],
"минимум_должен_соответствовать": 1
}
},
{
"спектр": {
"@timestamp": {
"гте": "2021-10-01",
"лте": "2021-10-30"
}
}
}
],
"должен": [],
"не должен": []
}
}
}
Получающий отклик
как показано ниже,
{
"взял": 0,
"timed_out": ложь,
"_осколки": {
"всего" : 1,
«успешно»: 1,
"пропущено": 0,
"не удалось" : 0
},
"хиты" : {
"общее количество" : {
"значение": 1,
"отношение": "экв"
},
"max_score": ноль,
"хиты" : [ ]
}
}
Как видите, мне нужно жесткий код
в датировать
получить значение для конкретного месяц
то есть получить ту же информацию для сентябрь
месяц, мне нужно изменить диапазон даты и времени
как показано ниже в запросе на завивку,
"спектр": {
"@timestamp": {
"гте": "2021-09-01",
"лте": "2021-09-30"
}
}
Ниже приведен завить запрос на звонок
.
curl -u elastic:xxx -XGET "http://10.10.10.10:9200/new/_search?pretty" -H 'Тип содержимого: приложение/json' -d'
{
"аггс": {},
"размер": 0,
"поля": [],
"запрос": {
"буль": {
"должен": [],
"фильтр": [
{
"буль": {
"должен": [
{
"match_phrase": {
"text": "веб-сайт доступен"
}
}
],
"минимум_должен_соответствовать": 1
}
},
{
"спектр": {
"@timestamp": {
"гте": "2021-10-01",
"лте": "2021-10-30"
}
}
}
],
"должен": [],
"не должен": []
}
}
}'
Как я могу пройти год
и месяц
динамически (т.е. без фактического жесткого кодирования самого запроса) к запросу curl, который будет извлекать информацию для этого конкретного месяц
, год
?
Обновить -
Я могу получить результаты за последний месяц (ноябрь) или последние 2 месяца (октябрь) и т. д., используя ниже,
прошлый месяц - ноябрь
-
"gte": "сейчас-М",
"lt": "сейчас/М"
2 месяца - октябрь
"gte": "сейчас-2М/М",
"lte": "сейчас-2М/М"
Но есть ли способ обеспечить желаемое год
и месяц
получить результаты?
Спасибо,