どのようなデータ構造でElasticsearchに格納されているかが分かりませんので、回答がずれているかもしれませんが...
以下に示すようなデータ構造があり、IPアドレスごとの通信量のトップn件を求めたい、ということでしたら、後述するような設定で可能かと思います。
データ構造
192.168.0.1の合計は300(データ件数は3)
192.168.0.20の合計は400(データ件数は1)
192.168.0.100の合計は150(データ件数は15)
ip_addr(IPアドレス) |
int_volume(通信量) |
192.168.0.1 |
100 |
192.168.0.1 |
100 |
192.168.0.1 |
100 |
192.168.0.20 |
400 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
192.168.0.100 |
10 |
KibanaのVisualization
Metricsのところでは、
AggregationにSUM, fieldに通信量を示す int_volumeを指定しました。
Bucketsのところでは、Split rowsを選択し、
AggregationにTerms, fieldにIPアドレスを示すip_addrを指定しました。
Sizeでは、テストデータでは、IPアドレスが3種類しかありませんがTop10件の場合は、Sizeを10にします。
Tableの設定画面例だとこのようなイメージです。右に結果が出て期待した結果が得られていることが確認できるかと思います。
ご参考になれば幸いです。