Friday, August 21, 2015

Log Management dengan Graylog2, MongoDB, Elasticsearch, Kibana (1)

Wihartoyo     Friday, August 21, 2015    

Pada  bagian pertama ini  baru membahas installasi MongoDB, Elasticsearch, dan Graylog2.

System log adalah object penting dalam pengamanan informasi karena bergantung pada level logingnya, system log akan mencatat detail dari aktifitas yang terjadi pada suatu system komputer baik pada level OS maupun masing-masing aplikasi. Untuk itu, management penyimpanan log juga menjadi sangat penting artinya.  Karena, log tidak cuma untuk dicopy ke disk/tape kemudian disimpan ditempat yang aman, tapi sesuai dengan peruntukkannya, file log juga harus bisa dibaca.  Tidak cuma sampai bisa dibaca, sebenarnya. Mengingat, item yang dicatat yang sangat banyak, ukuran filenya juga sangat besar. Jadi, sudah seharusnya, log yang disimpan harus bisa dpanggil dan dibaca dengan mudah. Lebih jauh lagi bisa dengan mudah dianalisa untuk dilakukan review.
Ada beberapa pilihan utama software log management, dan yang paling umum adalah Splunk. Tapi splunk adalah proprietary software dan harganya sungguh mahal.  Sebagai contoh (per 21 Agustus 2015), license perpetual untuk 100GB/day data, mereka memasang harga US$ 3000.  Sementara Annual nya adalah US$ 1200. Sementara untuk 5GB/day perpetual US$ 5000 dan Annual US$ 2000 masing-masing dengan discount untuk volume purchase.  Memang, splunk telah dibuat sedemikian rupa sehingga memudahkan kita untuk melakukan penyimpanan dan tertuamanya adalah analisis mengingat bahwa splunk menyediakan slot untuk plugins dan sudah banyak penyedia aplikasi plugins nya. Untuk itu, saya tidak akan membahas tentang splunk di sini. Ahlinya di splunk lebih berkompeten dan tentunya menjadi andalan mereka juga.
Di sini saya akan mencoba alternatifnya yang free yakni kombinasi:
Graylog2 yang terdiri dari komponen, Graylog2 Server, MongoDB, Elasticsearch, dan Graylog2 Web Interface.
Kibana, sebagai pengganti dashboard Graylog2 web interface.

Setiap kita menginstall Graylog2-server dari repository, tidak otomatis kita akan menginstall MongoDB dan Elasticsearch, meskipun kedua aplikasi ini adalah prerequisite dari Graylog2-server. Graylog-web-interface sendiri adalah aplikasi terpisah tetapi membutuhkan graylog2-server sebagai prerequisite nya.   Pada dasarnya, graylog2-server dengan Kibana sudah cukup untuk melakukan analisis log.  Namun, karena fungsi graylog2-web-interface bukan sekedar untuk analisis dan reporting, namun juga melakukan konfigurasi, maka graylog2-web-interface juga menjadi harus diinstall. Dan, pada beberapa kasus, elasticsearch seharusnya diinstall secara terpisah (mandiri), bukan sebagai bawaan dari installasi graylog.
Gambar berikut mungkin akan menjelaskan lebih jauh mengenai hubungan Graylog-server, Graylog-web-interface, mongoDB, elasticseach, dan Kibana.

Interaksi MongoDB, Graylog2-server, elasticsearch, dan Graylog2-web-interface.

Installasi Graylog2 di Centos 7.

Mungkin ini untuk pertamakali saya menggunakan selain Ubuntu. Centos dan dalam hal ini adalah Centos 7 memang telah mencuri perhatian saya untuk menggunakannya sebgai server. Graylog server ini adalah server kedua yang saya install dengan menggunakan Centos 7 sebagai OS nya.

Install Elasticsearch
Untuk langkah pertama, kita install Elasticsearch dengan menambahkan informasi yum repository.
Perintah-perintah berikut dijalankan sebagai root.  Untuk menambahkan yum repo elasticsearch,  kita install public signing key untuk elasticsearh terlebih dahulu.


root@kumputersaya:~#rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

Kemudian buat buat file /etc/yum.repost.d/elasticsearch.repo dan isikan konten berikut ke dalamnya.


[elasticsearch-1.7]
name=Elasticsearch repository for 1.7.x packages
baseurl=http://packages.elastic.co/elasticsearch/1.7/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Update yum dengan menjalankan perintah 'yum update' dilanjutkan dengan install elasticseacrh melalui perintah berikut, "yum install elasticsearch". Elasticsearch bisa dienablekan dengan menjalankan,


root@elasticsearch:~#systemctl enable elasticsearh.service


Elasticearch siap menjalankan tugas.

Install MongoDB
Setelah elasticsearch berhasil kita install, langkah selanjutnya adalah menginstall mongoDB yang aka berfungsi sebagai tempat untuk menyimpan metadata dari Graylog.

Seperti pada installasi elasticsearch, langkah pertama adalah mempersiapkan repo untuk mongoDB. Pertama kita buatkan file /etc/yum.repos.d/mongodb.repo yang dilanjutkan dengan 'yum update'

Setelah persiapan selesai, kita jalankan proses installasi mongodb dengan menjalankan perintah berikut:


saya@kumputersaya:~#sudo yum install mongo-10gen-2.2.3 mongo-10gen-server-2.2.3


Sedangkan untuk menjalankan mongodb silakan jalankan perintah berikut


saya@kumputersaya:~#sudo systemctl enable mongos.service
saya@kumputersaya:~#sudo service start mongod


Ok, MongoDB sudah efektif.

Install Graylog
Selanjutnya kita install Graylog2.  Sama seperti yang lain, pertama kita persiapkan repo untuk installasi Graylog. Tapi berbeda dengan yang lain, persiapan reponya cukup dilakukan dengan langkah berikut:

root@kumputersaya:~#rpm -Uhv https://packages.graylog2.org/repo/packages/graylog-1.1-repository-el7_latest.rpm

Selanjutnya, jalankan 'yum update' untuk mengupdate repo yum.  Kemudian jalankan perintah berikut untuk menginstall graylog.


root@kumputersaya:~# yum install graylog-server graylog-web


Untuk mengaktifkan service, kita bisa jalankan melalui systemctl


root@kumputersaya:~#systemctl enable graylog-server.service
root@kumputersaya:~#systemctl enable graylog-web.service

Yap.. graylog sudah terinstall.

Penyesuaian Konfigurasi

Penyesuaian konfigurasi perlu dilakukan agar aplikasi yang telah terinstall bisa saling berinteraksi. File konfigurasi terinstall pada directoty :


  1. MongoDB /etc/monod.conf
  2. Elasticsearch /etc/elasticsearch/elasticsearch.yml
  3. Graylog-server /etc/graylog/server/server.conf
  4. Graylog-web /etc/graylog/web/graylog-web.conf

Hal hal yang perlu diperhatikan:

Pada MongoDB:

  • Parameter konfigurasi dbpath pada mongoDB harus diarahkan ke filesystem dengan volume terbesar.


Pada Elasticsearch:

  • Parameter konfigurasi cluster.name pada elasticsearch harus  sama dengan parameter konfigurasi  elasticsearch_cluster_name pada /etc/graylog/server.conf 
  • Parameter konfigurasi node.name pada elasticsearch harus sama dengan parameter konfigurasi elasticsearch_node_name pada /etc/graylog/server.conf

Pada Graylog-server

  • Parameter password_secret harus diisi dengan string output hasil aplikasi pwgen dengan perintah 'pwgen -N 1 -s 96'
  • Parameter root_password_sha2 harus diisi dengan hasil dari perintah 'echo -n passworanda | shasum -a 256'
  • Parameter elasticsearh_discovery_zen_ping_multicast_enabled diisi dengan false.
  • Parameter rest_transport_uri harus diperhatikan dan harus sama dengan yang diisikan ke graylog.server.uris pada graylog-web-interfaces.


Pada Graylog-Web-Interface
Parameter application.secret harus diisi dengan string output hasil aplikasi pwgen dengan perintah 'pwgen -N 1 -s 96'

Setelah server direstart, kita bisa buka web-interface dari graylog.  Bila tampilan seperti di bawah ini, maka berarti installasi sudah bisa dianggap berhasil.


(Bersambung)

, ,

Recommended