# KibanaでIPごとの通信量を集計しランキングにしたい

**URL:** https://discuss.elastic.co/t/kibana-ip/168225
**Category:** 日本語による質問・議論はこちら
**Created:** [February 13, 2019, 1:05pm UTC](https://discuss.elastic.co/t/kibana-ip/168225 "2019-02-13T13:05:59Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![koni](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@koni](https://discuss.elastic.co/u/koni)
#### Post date: [February 13, 2019, 1:05pm UTC](https://discuss.elastic.co/t/kibana-ip/168225/1 "2019-02-13T13:05:59Z")

</div>

それぞれ現行最新の6.6を使い、  
Filebeat -\> Logstash -\> ElasticSearchとデータ取り込みはできています。  
Proxyのログから  
・DATA型のIPアドレス（IPV4型ではなく）  
・INT型の通信量  
がElasticSearchへ取り込まれており、IPアドレスの件数などはKibanaのVisualizeで出せているのですが、「ログ全体」から「IPアドレスごと」に「各行にある通信量を足した合計」を出し、かつランキング形式で表示する手法にたどり着いていません。

ログ全体からIPアドレスが記載されている行の合計ではなく、  
もう一段階先のIPアドレスごとの通信量の足した合計（集計）はどのようにすればよいでしょうか。  
ElasticSearchのクエリは見かけたことがあるのですが、Kibanaの画面上でどうすればよいかがわかると助かります。

---

<div class="post-metadata">

### Author: ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)
#### Post date: [February 13, 2019, 1:46pm UTC](https://discuss.elastic.co/t/kibana-ip/168225/2 "2019-02-13T13:46:42Z")

</div>

どのようなデータ構造でElasticsearchに格納されているかが分かりませんので、回答がずれているかもしれませんが...

以下に示すようなデータ構造があり、IPアドレスごとの通信量のトップｎ件を求めたい、ということでしたら、後述するような設定で可能かと思います。

## データ構造

192.168.0.1の合計は300(データ件数は3）  
192.168.0.20の合計は400(データ件数は１）  
192.168.0.100の合計は150(データ件数は１５）

| 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の設定画面例だとこのようなイメージです。右に結果が出て期待した結果が得られていることが確認できるかと思います。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/7/1/713d485aedd7c3bcde84f17a27c962ab50c9dc91.png)

ご参考になれば幸いです。

---

<div class="post-metadata">

### Author: ![koni](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@koni](https://discuss.elastic.co/u/koni)
#### Post date: [February 14, 2019, 10:22am UTC](https://discuss.elastic.co/t/kibana-ip/168225/3 "2019-02-14T10:22:00Z")

</div>

早速のレス、ありがとうございました。

言われたとおり出来ないと思っていたら  
LogstashでINT型に指定してたのですがElasticSearch側でtextになってまして、  
テンプレートを作ることで解決しました。

今度はこのIPアドレスを別の表からホスト名にしてみたいとか夢膨らんでいます  
助かりました。ありがとうございました

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [March 14, 2019, 10:23am UTC](https://discuss.elastic.co/t/kibana-ip/168225/4 "2019-03-14T10:23:46Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
