Centralized Logging Dengan Graylog

September 16, 2020

Centralized Logging Dengan Graylog

Apa itu Centralized Logging ?

Centralized Loging, jika diBahasa-kan (Pencatatan yang tersentralisasi). Sentralisasi logingg di sini dapat diartikan dimana terdapat berbagai sumber log, yang di dorong ke satu pusat antarmuka. Di antarmuka tersebut kita dapat melakukan penguraian, penambahan, dan pemantauan waktu nyata terhadap semua data-data log tersebut.

Pada tulisan Saya kali ini, Saya akan memberikan ringkasan langkah-langkah dalam installasi Graylog kluster sederhana sebagai Centralized Logging.

Topologi

Topologi Topologi di atas adalah infrastruktur yang akan kita coba untuk bangun.

Dependency

Langkah pertama adalah melakukan pemasangan Dependency yang dibutuhkan oleh graylog :

  • Install Dependency
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen

The Stack

Untuk membangun Graylog Server yang siap digunakan, ada graylog-server memberlukan integrasi dengan beberapa perangkat lunak lain diantaranya Elasticsearch dan MongoDB :

  • Install MongoDB
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod.service
$ sudo systemctl restart mongod.service
$ sudo systemctl --type=service --state=active | grep mongod
  • Install Elasticsearch
$ wget -q https://artifacts.elastic.co/GPG-KEY-elasticsearch -O myKey
$ sudo apt-key add myKey
$ echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
$ sudo apt-get update && sudo apt-get install elasticsearch-oss
$ sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null <<EOT
cluster.name: graylog
action.auto_create_index: false
EOT
$ sudo systemctl daemon-reload
$ sudo systemctl enable elasticsearch.service
$ sudo systemctl restart elasticsearch.service
$ sudo systemctl --type=service --state=active | grep elasticsearch
  • Install Graylog Server
$ wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb
$ sudo dpkg -i graylog-3.3-repository_latest.deb
$ sudo apt-get update && sudo apt-get install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins
$ sudo -E sed -i -e "s/password_secret =.*/password_secret = $(pwgen -s 128 1)/" /etc/graylog/server/server.conf
$ sudo sed -i -e "s/root_password_sha2 =.*/root_password_sha2 = $(echo -n 'InP8TP@AsssowrdKamudiSini' | shasum -a 256 | cut -d' ' -f1)/" /etc/graylog/server/server.conf
$ sudo sed -i -e "s/#http_bind_address\s=\s127.0.0.1:9000/http_bind_address = 10.252.10.81:9000/g" /etc/graylog/server/server.conf
$ sudo systemctl daemon-reload
$ sudo systemctl enable graylog-server.service
$ sudo systemctl start graylog-server.service
$ sudo systemctl --type=service --state=active | grep graylog
  • Cek apakah graylog-server sudah berasil bind port 9000

    Web interface Graylog dapat diakses sekitar 2-3 menit setelah service graylog-server di-start

    curl 10.252.10.81:9000
    netstat -nputw|grep 9000

Integrasi Inputs Logs

Untuk melakukan input log ke graylog kita memberlukan sebuah forwarder log message yang berfungsi sebagai pengirim logs ke graylog server. Cukup banyak Forwarder yang dapat digunakan diantaranya Ryslog, Filebeat, Fluentd, dan Khusus untuk Docker Gelf(Graylog Extended Format logging driver)

  • Ryslogs

    • Install rsyslog
    $ sudo apt install ryslog -y
    $ sudo vi /etc/rsyslog.d/graylog.conf
      *.* @10.252.10.81:1514;RSYSLOG_SyslogProtocol23Format

    10.252.10.81, Merupakan alamat IP graylog server.

    1514, Meruapakan port yang listent input dengan format syslog

  • Gelf

    docker run -d -p 8889:80 --log-driver=gelf --log-opt gelf-address=udp://10.252.10.81:18312 httpd

    --log-driver=gelf, Adalah yang kita butuhkan untuk menggunakan gelf sebagai forwarder logs menuju graylog server.

    --log-opt gelf-address=udp://10.252.10.81:18312, dibutuhkan untuk memberitahukan alamat dan port yang me-listent gelf input pada graylog server.


Profile picture

Written by Nicolas Julian Seseorang yang mencoba berkarya. Chit Chat with me in Twitter