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:
- Pengumpulan log
- Pemantauan Kinerja
- Keamanan
- Pemantauan Kegiatan pengguna log
- Analisis dan laporan
- 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

Admin website igunawan.com, System Administrator, DevOps Engineer
