Как искать данные в asticsearch?
Недавно я следовал руководству, предоставленному на сайте asticsearch, чтобы перенести данные в эластичное облако, и я успешно смог это сделать.
https://www.youtube.com/watch?v=oMmLNbJPF-M
Я также могу опубликовать образец документа и выполнить поиск по нему. Но я не могу сделать то же самое для журнала apache.
Ниже приведен запрос, который я разместил в эластичном облаке.
curl -H 'Content-Type: application/json' -k -u elastic:changeme -XPUT https://5a482b9559fc4a59b6b*************.ap-southeast-1.aws.found.io:9243/test-data/cities/21 -d '{ "rank": 21, "city": "Bangalore", "state": "Karnataka"}'
Когда я ищу термин называется Bangalore
Я использую запрос ниже
curl -H 'Content-Type: application/json' -k -u elastic:changeme -XGET https://5a482b9559fc4a5****************.ap-southeast-1.aws.found.io:9243/test-data/cities/_search?pretty=true -d '{"query": {"query_string": {"query": "bangalore"}}}'
Я успешно получаю следующий результат
{
"took" : 4,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.2876821,
"hits" : [
{
"_index" : "test-data",
"_type" : "cities",
"_id" : "21",
"_score" : 0.2876821,
"_source" : {
"rank" : 21,
"city" : "Bangalore",
"state" : "Karnataka"
}
}
]
}
}
Теперь для примеров журналов apache, которые я разместил в эластичном облаке, если я выполню запрос для индекса .monitoring-kibana-6-2018.03.16
и введите doc
, он возвращает мне всю информацию для конкретного журнала
запрос
curl -H 'Content-Type: application/json' -k -u elastic:changeme -XGET https://5a482b9559fc4a5************.ap-southeast-1.aws.found.io:9243/.monitoring-kibana-6-2018.03.19/doc/_search?pretty=true
Информация отправлена обратно
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 4935,
"max_score" : 1.0,
"hits" : [
{
"_index" : ".monitoring-kibana-6-2018.03.19",
"_type" : "doc",
"_id" : "zQyPO2IBFM2Pr3qzOtYp",
"_score" : 1.0,
"_source" : {
"cluster_uuid" : "-fcvGIrYRpaQInvIaV2yxA",
"timestamp" : "2018-03-19T00:01:05.061Z",
"interval_ms" : 10000,
"type" : "kibana_stats",
"source_node" : {
"uuid" : "QdV84OHQQHK2cqfcosLYOg",
"host" : "172.29.73.212",
"transport_address" : "172.29.73.212:19974",
"ip" : "172.29.73.212",
"name" : "instance-0000000002",
"timestamp" : "2018-03-19T00:01:05.062Z"
},
"kibana_stats" : {
"cloud" : {
"name" : "aws",
"id" : "ec2dd6c8-6f45-fabe-5bf4-8184ef1b3d63"
},
"concurrent_connections" : 66357,
"os" : {
"load" : {
"1m" : 0.29833984375,
"5m" : 0.470703125,
"15m" : 0.5126953125
},
"memory" : {
"total_in_bytes" : 32168431616,
"free_in_bytes" : 1181507584,
"used_in_bytes" : 30986924032
},
"uptime_in_millis" : 5260700000
},
"process" : {
"event_loop_delay" : 90620.95409584045,
"memory" : {
"heap" : {
"total_in_bytes" : 153329664,
"used_in_bytes" : 137886824,
"size_limit" : 872415232
},
"resident_set_size_in_bytes" : 209448960
},
"uptime_in_millis" : 306763138
},
"requests" : {
"disconnects" : 0,
"total" : 63356,
"status_codes" : {
"200" : 1437,
"302" : 61069,
"304" : 839,
"404" : 11
}
},
"response_times" : {
"average" : 2447.6666666666665,
"max" : 3864
},
"timestamp" : "2018-03-19T00:01:00.092Z",
"kibana" : {
"uuid" : "0f753e6b-a648-433a-8b35-36de5ce4a3a5",
"name" : "ba105a5a75ee",
"index" : ".kibana",
"host" : "ba105a5a75ee",
"transport_address" : "0.0.0.0:18472",
"version" : "6.2.2",
"snapshot" : false,
"status" : "green"
},
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
Он возвращает очень bg выходные данные, поэтому я показываю только его часть. Теперь, если я попытаюсь выполнить запрос для поиска термина скажем response_times
запрос
curl -H 'Content-Type: application/json' -k -u elastic:QbKxXTTXwxnV4kQ0UA48Kedz -XGET https://5a482b9559fc4a5****************.ap-southeast-1.aws.found.io:9243/.monitoring-kibana-6-2018.03.19/doc/_search?pretty=true -d '{"query": {"query_string": {"query": "response_times"}}}'
Я получаю вывод ниже
{
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
Так почему же один и тот же поисковый запрос не работает для логов apache?
1 ответ
В зависимости от того, что вы хотите сделать, но вы можете запустить Range Query, например, на этом response_times
поле:
curl -XGET 'localhost:9200/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"range" : {
"kibana_stats.response_times" : {
"gte" : 3800,
"lte" : 3900
}
}
}
}
'