dis*_*231 3 elasticsearch elasticsearch-query
我想在ELK中查询IP范围:172.16.0.0到172.31.0.0
我尝试了两种查询方法,但都失败了。
{
"query": {
"bool": {
"should": [
{
"regexp": {
"DstIP": "172.(3[0-1]|1[6-9]|2[0-9]).*"
}
}
],
"minimum_should_match": 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
{
"query": {
"range": {
"DstIP": {
"gte": "172.16.0.0",
"lte": "172.31.0.0"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
ELK中如何查询IP范围?
为了使范围查询能够在 IP 值上正确工作,必须将字段数据类型定义为ip
。
下面是包含映射、示例文档和搜索查询的工作示例。
映射:
{
"mappings": {
"properties": {
"dest": {
"type": "ip"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
指数数据:
然后我采取了一些示例文档,如下所示:
{ "dest":"172.16.0.0"}
{ "dest":"172.31.0.0"}
{ "dest":"172.21.0.0"}
{ "dest":"172.1.0.0" }
{ "dest":"172.12.0.0"}
Run Code Online (Sandbox Code Playgroud)
搜索查询:
{
"query": {
"range": {
"dest": {
"gte": "172.16.0.0",
"lte": "172.31.0.0"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
搜索结果 :
"hits": [
{
"_index": "foo4",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"dest": "172.16.0.0"
}
},
{
"_index": "foo4",
"_type": "_doc",
"_id": "2",
"_score": 1.0,
"_source": {
"dest": "172.31.0.0"
}
},
{
"_index": "foo4",
"_type": "_doc",
"_id": "3",
"_score": 1.0,
"_source": {
"dest": "172.21.0.0"
}
}
]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8322 次 |
最近记录: |