Cara Setup Log management server menggunakan Elasticsearch & Graylog: Docker compose

Introduction

Pada artikel kali ini saya akan membahas tentang bagaiamana Cara Setup Log management server menggunakan Elasticsearch & Graylog: Docker compose. Dan hal ini biasanya dibutuhkan untuk Log Management Server kita banyak tools-tools yang digunakan dan salah satunya graylog ini, tujuan atau fungsi utama dari log ini :

Dan fungsi utama dari log management server adalah:

  1. Pengumpulan log
  2. Pemantauan Kinerja
  3. Keamanan
  4. Pemantauan Kegiatan pengguna log
  5. Analisis dan laporan
  6. Retensi log

Baca juga :

Flow Graylog

Berikut langkah – langkah, Cara Setup Log management server menggunakan Elasticsearch & Graylog: Docker compose.

Disini ada 3 component yang harus kita pasang, yaitu:

  • Mongodb untuk database graylog
  • Elasticsearch sebagai tempat storage LOG
  • Graylog sebagai visualisasi data/log managementnya

Step 1 – Create Stacks mongodb

Yang pertama stacks mongodbnya.

# MongoDB: https://hub.docker.com/_/mongo/
  mongo:
    image: mongo:5.0.13
    container_name: mongodb
    restart: always
    volumes:
      - /mongodb/:/data/db

Step 2 – Create Stacks Elasticsearch

Dan yang kedua adalah elasticsearchnya yang dimana fungsinya adalah untuk save lognya.

elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    container_name: elasticsearch
    restart: always
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - "ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    deploy:
      resources:
        limits:
          memory: 1g
    ports:
      - "9200:9200"
    volumes:
      - elasticsearch:/elasticsearch

Step 3 – Deploy Docker-Compose

Deploy docker-compose up -d

version: '3'
services:
# MongoDB: https://hub.docker.com/_/mongo/
  mongo:
    image: mongo:5.0.13
    container_name: mongodb
    restart: always
    volumes:
      - /mongodb/:/data/db
    networks:
      - graylog
# Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/7.10/docker.html
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    container_name: elasticsearch
    restart: always
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - "ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    deploy:
      resources:
        limits:
          memory: 1g
    ports:
      - "9200:9200"
    volumes:
      - /elasticsearch:/elasticsearch
    networks:
      - graylog
  graylog:
    image: graylog/graylog:5.0
    container_name: graylog
    restart: always
    environment:
      - GRAYLOG_PASSWORD_SECRET=asdf123
      - GRAYLOG_ROOT_PASSWORD_SHA2={echo -n asdf123 | shasum -a 256}

      - GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
      - GRAYLOG_ROOT_TIMEZONE= Asia/Jakarta
    entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 --  /docker-entrypoint.sh
    networks:
      - graylog

    depends_on:
      - mongo
      - elasticsearch
    ports:
      - 9000:9000
      - 1514:1514
      - 1514:1514/udp
      - 12201:12201
      - 12201:12201/udp

    volumes:
      - /graylog:/graylog
networks:
  graylog:
    driver: bridge

Terimakasih, selamat mencoba

Leave a Reply

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