Cara Install dan Konfigurasi Elastic Stack di CentOS 7
Cara Install dan Konfigurasi Elastic Stack di CentOS 7. Di tutorial ini kita akan membahas instalasi Elastic Stack (atau yang sebelumnya dikenal dengan ELK Stack) di CentOS 7. Bagi yang belum tau, ELK adalah akronim dari Elasticsearch, Logstash, dan Kibana.
Elasticsearch berguna untuk menyimpan semua log yang berasal dari server, Logstash merupakan sebuah perangkat lunak open source untuk mengumpulkan dan memparsing log dan juga membuat index untuk log, kemudian disimpan pada elasticsearch. Kibana adalah web interface yang berguna untuk menampilkan log baik dalam bentuk grafik maupun visualisasi lainnya. untuk file agent di perlukan filebeat yang berguna untuk mengirim log dari setiap server kepada logstash.
Komponen utama dari Elastic Stack adalah:
Jika kalian menggunakan server dengan spesifikasi rendah, kalian bisa menurunkan nilai heap space di Elasticsearch. Defaultnya adalah 1GB.
Lanjut restart Elasticsearch
Install Kibana
Selanjutnya adalah proses install dan konfigurasi Kibana.
Sebelumnya, kita buat dulu auth untuk login ke Kibana.
Lanjut setting serverblock untuk Kibana
Install Logstash
Selanjutnya adalah instalasi logstash
Lalu
Lanjut kita tambahkan Konfigurasi log. Kalian bisa baca dokumentasi Elastic. Disini saya akan mengaktifkan filter log untuk Nginx dan Syslog. Untuk filter lain kalian bisa sesuaikan sendiri.
Lalu untuk Nginx
Next kita test konfigurasinya. Jika outputnya OK berarti tidak ada yang error.
Langkah opsional:
Seperti Elasticsearch, untuk membatasi heap space di Logstash edit file konfigurasi Logstash
Terakhir, install Filebat.
Hal ini kita lakukan karena kita tidak butuh Filebat untuk mengirim log langsung ke Elasticsearch.
Masih di file lang sama, cari baris output.logstash dan hosts, dan hapus comment didepannya. Lihat screenshot
Selanjutnya, aktifkan modul system dan juga nginx di Filebat. Modul yang diaktifkan sesuaikan sendiri dengan filter yang kalian aktifkan diatas.
Kembali cek dashboard Kibana.
Sisanya bisa kalian explore sendiri.
Oke mungkin itu saja tutorial kali ini. Semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.
Elasticsearch berguna untuk menyimpan semua log yang berasal dari server, Logstash merupakan sebuah perangkat lunak open source untuk mengumpulkan dan memparsing log dan juga membuat index untuk log, kemudian disimpan pada elasticsearch. Kibana adalah web interface yang berguna untuk menampilkan log baik dalam bentuk grafik maupun visualisasi lainnya. untuk file agent di perlukan filebeat yang berguna untuk mengirim log dari setiap server kepada logstash.
Komponen utama dari Elastic Stack adalah:
- Elasticsearch : menyimpan semua log
- Logstash : komponen pemrosesan data dari Elastic Stack yang mengirimkan data yang masuk ke Elasticsearch.
- Kibana : Web interface untuk mencari dan memvisualisasikan log.
- Filebeat : mengirim log ke logstash. Berfungsi sebagai shipping agent untuk log.
Pertama, install Java terlebih dahulu karena Elasticsearch dan Logstash membutuhkan Java.
sudo yum install java-openjdk-devel java-openjdk -y
Install Elasticsearch
Tambahkan repository Elasticsearch 7 ke sistem.
sudo nano /etc/yum.repos.d/elasticsearch.repo
Masukkan isinyya:
[elasticsearch-7.x]Import GPG key
name=Elasticsearch repository
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchUpdate indexing yum
sudo yum clean all && sudo yum makecacheLanjut instalasi Elasticsearch
sudo yum install elasticsearch -yTunggu proses instalasi selesai. Selanjutnya enable service agar langsung berjalan saat booting
sudo systemctl enable elasticsearchLangkah optional:
Jika kalian menggunakan server dengan spesifikasi rendah, kalian bisa menurunkan nilai heap space di Elasticsearch. Defaultnya adalah 1GB.
sudo nano /etc/elasticsearch/jvm.optionsCari bagian
-Xms1gLalu ubah menjadi
-Xmx1g
-Xms256mSelanjutnya, edit file /etc/elasticsearch/elasticsearch.yml
-Xmx512m
sudo nano /etc/elasticsearch/elasticsearch.ymlCari baris network.host dan ubah value nya menjadi
network.host: localhostHapus comment didepannya. Hal ini dilakukan untuk membatasi akses agar publik tidak bisa mengakses atau membaca data Elasticsearch melalui REST API.
Lanjut restart Elasticsearch
sudo systemctl restart elasticsearchUntuk testing, jalankan perintah berikut
curl http://127.0.0.1:9200Contoh output
Install Kibana
Selanjutnya adalah proses install dan konfigurasi Kibana.
sudo yum install kibana -yEdit file konfigurasi Kibana
sudo nano /etc/kibana/kibana.ymlUbah konfigurasi Kibana dengan menghapus seluruh comment atau tanda pagar di ketiga baris berikut
server.port: 5601Lanjut, kita enable Kibana saat booting.
server.host: "localhost"
server.name: "kibana-server"
elasticsearch.url: "http://localhost:9200"
sudo systemctl enable kibana
sudo systemctl start kibanaDi tutorial ini saya menggunakan web server Nginx. Sekarang kita konfigurasikan Kibana dengan Nginx.
Sebelumnya, kita buat dulu auth untuk login ke Kibana.
sudo mkdir /etc/nginx/web-auth
sudo htpasswd -c /etc/nginx/web-auth/.kibanaauth elkloginSesuaikan sendiri nama file htpasswd beserta usernya.
Lanjut setting serverblock untuk Kibana
sudo nano /etc/nginx/sites-enabled/kibana-serverLalu isikan
server {Sesuaikan sendiri servername dan juga lokasi htpasswd nya. Selanjutnya reload Nginx dengan perintah
listen 80;
server_name elk.evil-security.com;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/web-auth/.kibanaauth;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
sudo service nginx reloadJika SELinux kalian aktif, maka SELinux tidak mengijinkan service Nginx mengakses proxied service. Ijinkan dengan menjalankan perintah berikut
sudo setsebool httpd_can_network_connect 1 -PTerakhir, akses Kibana melalui browser.
elk.evil-security.comMasukkan user dan password yang kalian atur di proses htpasswd diatas.
Install Logstash
Selanjutnya adalah instalasi logstash
sudo yum -y install logstashLanjut buat file konfigurasi Filebat input.
sudo nano /etc/logstash/conf.d/02-beats-input.confIsinya:
Lalu
sudo nano /etc/logstash/conf.d/30-elasticsearch-output.confIsinya
Lanjut kita tambahkan Konfigurasi log. Kalian bisa baca dokumentasi Elastic. Disini saya akan mengaktifkan filter log untuk Nginx dan Syslog. Untuk filter lain kalian bisa sesuaikan sendiri.
sudo nano /etc/logstash/conf.d/10-syslog-filter.confIsinya
Lalu untuk Nginx
sudo nano /etc/logstash/conf.d/11-nginx-filter.confIsinya
Next kita test konfigurasinya. Jika outputnya OK berarti tidak ada yang error.
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -tContoh output
Langkah opsional:
Seperti Elasticsearch, untuk membatasi heap space di Logstash edit file konfigurasi Logstash
sudo nano /etc/logstash/jvm.optionsCari bagian
-Xms1gLalu ubah menjadi
-Xmx1g
-Xms256mLanjut kita enable Logstash saat booting
-Xmx512m
sudo systemctl enable logstash
sudo systemctl start logstashInstall Filebat
Terakhir, install Filebat.
sudo yum install filebeat -ySelanjutnya kita konfigurasi Filebat agar bisa mengirim log ke Logstash
sudo nano /etc/filebeat/filebeat.ymlCari baris output.elasticsearch dan hosts, beri comment didepannya.Lihat screenshot berikut
Hal ini kita lakukan karena kita tidak butuh Filebat untuk mengirim log langsung ke Elasticsearch.
Masih di file lang sama, cari baris output.logstash dan hosts, dan hapus comment didepannya. Lihat screenshot
Selanjutnya, aktifkan modul system dan juga nginx di Filebat. Modul yang diaktifkan sesuaikan sendiri dengan filter yang kalian aktifkan diatas.
sudo filebeat modules enable systemEnable dan start Filebat
sudo systemctl enable filebeat
sudo systemctl start filebeatLanjut, load index template di Elasticsearch
sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'Selanjutnya enable output Elasticsearch
sudo filebeat setup -e -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601Contoh output
Kembali cek dashboard Kibana.
Sisanya bisa kalian explore sendiri.
Oke mungkin itu saja tutorial kali ini. Semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.