FilebeatのNetFlowを試してみる

# はじめに
ElasticstackではNetflowの可視化を標準でサポートするようになり(だいぶまえですが)、
現在の情報の可視化がトレンドになっているようにネットーワークでも可視化を求められることが多くなりました。
標準のダッシュボードでどのように見れるのか気になり、Filebeatを使ったNetflowの可視化を試すことにしました。

# LogstashのNetflowモジュールは終わり？
先にLogstashでのNetflowモジュールを使用した実装を試したのですが、下記のエラーが吐かれました。

```
logstashconfig - The Netflow module has been deprecated in favor of the Beats 
Netflow module and may be removed in a future release. Learn more about the Beats Netflow module at
 https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-module-netflow.html
```

単純に翻訳すると、
「logstashconfig-Netflowモジュールは非推奨になり、Beats Netflowモジュールに置き換えられました。今後のリリースで削除される可能性があります。」
だそうです。
そのため、FilebeatのNetflowモジュールを利用して試してみることにします。

# Filebeatの準備
前回の記事で環境を用意していることを前提とします。
[Elasticsearch + Kibana + LogstashをCentOS７にインストールしてみた](https://qiita.com/utti0307/items/a0b89090049dc9c4d47e)

また、下記手順は[公式ドキュメント](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-netflow.html)を参考に実施します。

#### Filebeatのセットアップ
前回の記事でも実施してますが、Filebeatのインストール後、
Elasticsearchとkibanaを設定したら下記を実行します。
これをすることでfilebeatの標準モジュールのダッシュボードがkibanaにセットアップされます。

```
# filebeat setup -e
```

#### Filebeatの設定
FilebeatのNetflowモジュールを有効にして、設定していきます。

```
# filebeat modules enable netflow
# vi /etc/filebeat/modules.d/netflow.yml

======================================
# Module: netflow
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.8/filebeat-module-netflow.html

- module: netflow
  log:
    enabled: true
    var:
      netflow_host: 0.0.0.0 ← 環境に合わせて設定
      netflow_port: 2055 ← 環境に合わせて設定（Netflowを受けるポート）
======================================
```

#### ファイアウォールの設定
Netflowを受けるポートの開放をします。
ここはUDPなので設定間違えないようにしましょう。

```
# firewall-cmd --add-port=2055/udp --zone=public --permanent
# firewall-cmd --reload
```

### Filebeatを再起動して確認
再起動すれば終わりです！！
あとはNetflowさえ受けていればダッシュボードに表示されます。

```
# systemctl restart filebeat
```

Kibanaにアクセスし、追加されている下記ダッシュボードを確認してください。
標準機能だけでこんなにみれます。
***[Filebeat Netflow] Overview***
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253680/5526c27a-7e3c-992a-ab0b-345153896df3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253680/ad0b0adf-cfd6-a142-c86a-e35686849d12.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253680/2d45183e-9dbc-d387-ed38-50cdd79a930d.png)


# ついでにMonitoringもしたいよね！
FilebeatもElasticStack同様にMonitoringが可能です。
同じくMetricbeatを利用するので[前回の記事](https://qiita.com/utti0307/items/a0b89090049dc9c4d47e)を参考にMetricbeatのインストールをしておいてください。

手順は[公式ドキュメント](https://www.elastic.co/guide/en/beats/filebeat/current/monitoring-metricbeat-collection.html)を参考に進めていきます。

#### Filebeatの設定
標準ではhttpでFilebeatにアクセスできないので設定を追加します。

```
# vi /etc/filebeat/filebeat.yml

http.enabled: true ← 最終行に追加
http.port: 5066 ← 最終行に追加(公式ドキュメントでは5067だけどMetricbeatのモジュールで標準ポートは5066)
```

#### Metricbeatの設定
beat-xpackを有効にして、設定をします。
今回はデフォルト設定のまま進めました。

```
# metricbeat modules enable beat-xpack
# vi /etc/metricbeat/modules.d/beat-xpack.yml

======================================
# Module: beat
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.8/metricbeat-module-beat.html

- module: beat
  xpack.enabled: true
  period: 10s
  hosts: ["http://localhost:5066"]
  #username: "user"
  #password: "secret"
======================================
```

#### ファイアウォールの設定
MetricbeatがFilebeatにアクセスできるようポート開放を行います。

```
# firewall-cmd --add-port=5066/tcp --zone=public --permanent
# firewall-cmd --reload
```

### FilebeatとMetricbeatを再起動して確認
準備できました！
再起動してアクセスしてみましょう。

```
# systemctl restart filebeat metricbeat
```
kibanaのMonitoringにBeatが追加されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253680/143c1715-8114-eb22-d1f0-16ec70e5f321.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253680/cac52158-5b42-d9b9-ec59-f2658e07aeca.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253680/6dac5d14-b92b-2d29-02d0-8bfa7fa1bc1a.png)

これでチューニングもできますね！！！



こんな感じで簡単に追加できます。
まだまだ技術者向けのダッシュボードですが、とりあえずこの画面はネットワークエンジニアには重宝しそうです！！！！