aggregationクエリ内でのField追加及び日付指定について
ElasticSearchにおけるaggregationクエリ内でのField追加及び日付指定について、
以下、アグリゲーションで指定フィールドを集約した結果を日付で抽出し、上位を表示させております。
まずは1点目の質問
1.集約されたフィールドがそれぞれ表示されますが、そこにデータを追加で表示させたいのですがどのようにすればよろしいでしょうか。
"key" : "122.xxx.xxx.xxx",
"doc_count" : 2013,
"sample_sum" : {
"value" : 7730929.0
以下が追加したいデータ
場所は問いません
----------------------------
"bgp_ipv4_next_hop" : 1 or 0
----------------------------
},
"sample_range" : {
"buckets" : [ {
"key" : "2016-02-24T09:14:00.000Z-2016-02-24T09:29:18.517Z",
"from" : 1.45630524E12,
"from_as_string" : "2016-02-24T09:14:00.000Z",
"to" : 1.456306158517E12,
"to_as_string" : "2016-02-24T09:29:18.517Z",
"doc_count" : 295,
"sample_calculate" : {
"value" : 1043050.0
}
例えば上記のクエリの集約結果にbgp_ipv4_next_hopのデータをipごとに追加したい場合、
どのように追加すればよろしいでしょうか。作成クエリは下部に記載しております。
色々ネストしてみましたが、なかなか上手くいきません。
2.現在、以下の設定で1時間ごとのデータ抽出を行っておりますが。
こちら定常的に00:00に実行したい場合、時間の指定は出来るのでしょうか。
またそうであれば、どのように毎日決められた時間に実行するのでしょうか。
(正直、まだ時間の記法についてよくわかっていません...)
"gte": "now-1h/h",
"lte": "now/d",
以下、作成クエリ
{
"size": 0,
"query": {
"filtered": {
"query": {
"query_string": {
"query": "*",
"analyze_wildcard": true
}
},
"filter": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": "now-1h/h",
"lte": "now/d",
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
}
}
},
"aggs": {
"sample_query": {
"terms": {
"field": "ipv4_src_addr",
"size": 15,
"order": {
"tsutsui_sum": "desc"
}
},
"aggs": {
"sample_sum": {
"sum": {
"field": "in_bytes"
}
},
"sample_range": {
"date_range": {
"field": "@timestamp",
"ranges": [
{
"from": "now-15m/m",
"to": "now"
}
]
},
"aggs": {
"sample_calculate": {
"sum": {
"field": "in_bytes"
}
}
}
}
}
}
}
}
どうぞよろしくお願い致します。
以下、使用するnetflowのデータ構造
"mappings" : {
"netflow" : {
"properties" : {
"@timestamp" : {
"type" : "date",
"format" : "strict_date_optional_time||epoch_millis"
},
"bgp_ipv4_next_hop" : {
"type" : "string"
},
"bgp_ipv6_next_hop" : {
"type" : "string"
},
"direction" : {
"type" : "long"
},
"dst_as" : {
"type" : "long"
},
"dst_mask" : {
"type" : "long"
},
"egress_vrf_id" : {
"type" : "long"
},
"first_switched" : {
"type" : "date",
"format" : "strict_date_optional_time||epoch_millis"
},
"flow_sampler_id" : {
"type" : "long"
},
"flow_sampler_mode" : {
"type" : "long"
},
"flow_sampler_random_interval" : {
"type" : "long"
},
"flow_seq_num" : {
"type" : "long"
},
"flowset_id" : {
"type" : "long"
},
"forwarding_status" : {
"type" : "long"
},
"geoip_city" : {
"type" : "string"
},
"geoip_country" : {
"type" : "string"
},
"geoip_lat" : {
"type" : "double"
},
"geoip_lon" : {
"type" : "double"
},
"geoip_pin" : {
"type" : "string"
},
"host" : {
"type" : "string"
},
"in_bytes" : {
"type" : "long"
},
"in_pkts" : {
"type" : "long"
},
"ingress_vrf_id" : {
"type" : "long"
},
"input_snmp" : {
"type" : "long"
},
"ipv4_dst_addr" : {
"type" : "string"
},
"ipv4_src_addr" : {
"type" : "string"
},
"ipv6_dst_addr" : {
"type" : "string"
},
"ipv6_dst_mask" : {
"type" : "long"
},
"ipv6_flow_label" : {
"type" : "long"
},
"ipv6_option_headers" : {
"type" : "long"
},
"ipv6_src_addr" : {
"type" : "string"
},
"ipv6_src_mask" : {
"type" : "long"
},
"l4_dst_port" : {
"type" : "long"
},
"l4_src_port" : {
"type" : "long"
},
"last_switched" : {
"type" : "date",
"format" : "strict_date_optional_time||epoch_millis"
},
"output_snmp" : {
"type" : "long"
},
"protocol" : {
"type" : "long"
},
"sampler_name" : {
"type" : "string"
},
"src_as" : {
"type" : "long"
},
"src_mask" : {
"type" : "long"
},
"src_tos" : {
"type" : "long"
},
"system" : {
"type" : "string"
},
"tcp_flags" : {
"type" : "long"
},
"version" : {
"type" : "long"
}
}
}
}
}
}
以下サンプルデータ
@timestamp March 3rd 2016, 14:36:00.000
t_id AVM6-heNCCEYIL1vsnDa
t_index flow-20160303
#_score 1
t_type netflow
tbgp_ipv6_next_hop ::
#direction 0
#dst_as 0
#egress_vrf_id 1,610,612,736
first_switched March 3rd 2016, 14:35:45.999
#flow_sampler_id 1
#flow_seq_num 150,022,732
#flowset_id 266
#forwarding_status 64
thost 133.130.xxx.xxx
#in_bytes 1,500
#in_pkts 1
#ingress_vrf_id 1,610,612,736
#input_snmp 84
tipv6_dst_addr 2400:8500:1301:2519:157:7:xx:xx
#ipv6_dst_mask 64
#ipv6_flow_label 0
#ipv6_option_headers 0
tipv6_src_addr 2001:da8:208:849d:c86d:769a:xxxx:xxxx
#ipv6_src_mask 32
#l4_dst_port 25,565
#l4_src_port 6,944
last_switched March 3rd 2016, 14:35:45.999
#output_snmp 10
#protocol 6
#src_as 23,910
#src_tos 0
#tcp_flags 16
#version 9