Monitoring Perangkat Network via Netflow-Sflow-IPFIX dengan Logstash ELK/Elastiflow

Hello guys, ayies hari ini lagi keracunan gegara makan kroket 5 biji. Efeknya, ayies hari ini rilis 3-4 artikel sekaligus. hahaha…

Iyah walau aku nulis artikel bisa 3-6 bulan sekali tapi aku berharap kalian masih setia kunjugi website ayies atau polow IG ku yah. Tapi lebih oke lagi kalau kalian bantu aku klik iklan-iklan yang ada diwebsite ini hahahahaaaaaa. Lumayan buat beli cendol.

Oke lanjut…

Kali ini ayies akan bahas soal gimana caranya memonitoring, mengambil data, atau bahkan mengolah data perangkat network kamu (misal router,waf,ids-ips dll) yang support protokol Sflow, netflow atau IPfix ke ELK menggunakan Logstash. Iyah walaupun Logstash Netflow module udah diganti dengan keberadaan filebeat tapi masih oke kok bahkan berdasarkan pengalaman ayies Masih lebih cepat dan stabil via logstash ketimbang filebeat.

Oke lanjut…

Btw ayies akan pakai Elastiflow tapi Logstashnya saja yg kita ambil. Sedang Elasticsearch nya kita akan pakai existing milik kita (jika sudah punya).

Kita akan pakai docker container.

  1. Install pre requirements
    sudo apt-get update ย sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    
  2. Tambah Dockerโ€™s official GPG key:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  3. Tambah Repository ubuntu:
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Install Docker dan Docker Compose

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo apt-get install docker-compose

Buat file dengan nama docker-compose.yml dengan isi file:

# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
# the specific language governing rights and limitations under the License.
#
# The Original Source Code was developed by Robert Cowart. Portions created by
# Robert Cowart are Copyright (C)2020 Robert Cowart. All Rights Reserved.
#------------------------------------------------------------------------------

version: '3'

services:
elastiflow-logstash:
image: robcowart/elastiflow-logstash:4.0.1
container_name: elastiflow-logstash
restart: 'no'
network_mode: host
environment:
# JVM Heap size - this MUST be at least 3GB (4GB preferred)
LS_JAVA_OPTS: '-Xms4g -Xmx4g'

# ElastiFlow global configuration
ELASTIFLOW_AGENT_ID: elastiflow
ELASTIFLOW_GEOIP_CACHE_SIZE: 16384
ELASTIFLOW_GEOIP_LOOKUP: 'true'
ELASTIFLOW_ASN_LOOKUP: 'true'
ELASTIFLOW_OUI_LOOKUP: 'false'
ELASTIFLOW_POPULATE_LOGS: 'true'
ELASTIFLOW_KEEP_ORIG_DATA: 'true'
ELASTIFLOW_DEFAULT_APPID_SRCTYPE: '__UNKNOWN'

# Name resolution option
ELASTIFLOW_RESOLVE_IP2HOST: 'false'
ELASTIFLOW_NAMESERVER: '127.0.0.1'
ELASTIFLOW_DNS_HIT_CACHE_SIZE: 25000
ELASTIFLOW_DNS_HIT_CACHE_TTL: 900
ELASTIFLOW_DNS_FAILED_CACHE_SIZE: 75000
ELASTIFLOW_DNS_FAILED_CACHE_TTL: 3600

ELASTIFLOW_ES_HOST: 'https://IP-Cluster-ELK1:9200'
ELASTIFLOW_ES_USER: 'ayies'
ELASTIFLOW_ES_PASSWD: 'xxxxxxxxxxxxxxxxxxxxxxx'
ELASTIFLOW_ES_SSL_ENABLE: 'true'
ELASTIFLOW_ES_SSL_VERIFY: 'false'

ELASTIFLOW_NETFLOW_IPV4_PORT: 2056
ELASTIFLOW_NETFLOW_UDP_WORKERS: 2
ELASTIFLOW_NETFLOW_UDP_QUEUE_SIZE: 4096
ELASTIFLOW_NETFLOW_UDP_RCV_BUFF: 33554432

ELASTIFLOW_SFLOW_IPV4_PORT: 6343
ELASTIFLOW_SFLOW_UDP_WORKERS: 2
ELASTIFLOW_SFLOW_UDP_QUEUE_SIZE: 4096
ELASTIFLOW_SFLOW_UDP_RCV_BUFF: 33554432

ELASTIFLOW_IPFIX_UDP_IPV4_PORT: 4739
ELASTIFLOW_IPFIX_UDP_WORKERS: 2
ELASTIFLOW_IPFIX_UDP_QUEUE_SIZE: 4096
ELASTIFLOW_IPFIX_UDP_RCV_BUFF: 33554432

Lalu jalankan perintah berikut: sudo docker-compose create (pastikan kamu dilokasi path file tsb berada.

Jalankan perintah docker ps -a untuk cek status container logstash-nya. Pastikan running well. Langkah terakhir cek di Kibana kamu apakah index pattern Elastiflownya sudah masuk atau belum. Dan langkah terakhir Download Design dashboardnya sesuai link disini Lalu kamu ke menu Kibana-mu. Pilih Stack Management > Save Objects.

Lalu pilih import. Import NDJSON file yang sudah didownload. Set Perangkat networkmu agar mengirimkan ke Port Logstash kamu pada contoh diatas UDP 2056 ^.

Netflow-Sflow-IPFIX dengan Logstash ELK

Voila, selamat kamu berhasil ๐Ÿ™‚

Demikian artikel ayies terakhir di hari ini. Netflow-Sflow-IPFIX dengan Logstash ELK sangat mudah kan? ๐Ÿ™‚


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *