Elasticsearch adalah mesin pencari open-source berbasis Lucene, yang dikembangkan di Jawa. Ini menyediakan mesin pencari teks lengkap terdistribusi dan multitenant dengan antarmuka web Dasbor HTTP (Kibana). Data ditanyakan, diambil, dan disimpan dengan skema dokumen JSON. Elasticsearch adalah mesin pencari scalable yang dapat digunakan untuk mencari semua jenis dokumen teks, termasuk file log. Elasticsearch adalah inti dari 'Elastic Stack' atau ELK Stack.
Logstash adalah alat sumber terbuka untuk mengelola acara dan log. Ini menyediakan pipelining real-time untuk pengumpulan data. Logstash akan mengumpulkan data log Anda, mengubah data menjadi dokumen JSON, dan menyimpannya di Elasticsearch.
Kibana adalah alat visualisasi data sumber terbuka untuk Elasticsearch. Kibana menyediakan antarmuka web dasbor yang cantik. Ini memungkinkan Anda untuk mengelola dan memvisualisasikan data dari Elasticsearch. Tidak hanya cantik, tetapi juga kuat.
Dalam tutorial ini, kami akan menunjukkan kepada Anda langkah demi langkah menginstal dan mengonfigurasi 'Elastic Stack' di server CentOS 8. Kami akan menginstal dan mengatur Elasticsearch, Logstash, dan Kibana. Dan kemudian atur 'filebeat' Beats di sistem Ubuntu dan CentOS klien.
Prasyarat
- CentOS 8 64 bit dengan RAM 4GB - elk-master
- CentOS 8 64 bit dengan 1 GB RAM - client01
- Ubuntu 18.04 64 bit dengan 1GB RAM - client02
Apa yang akan kami lakukan:
- Tambahkan Repositori Elastis ke Server CentOS 8
- Instal dan Konfigurasi Elasticsearch
- Memasang dan Mengonfigurasi Dasbor Kibana
- Siapkan Nginx sebagai Proksi Terbalik untuk Kibana
- Instal dan Konfigurasikan Logstash
- Instal dan Konfigurasi Filebeat
- Pengujian
Langkah 1 - Tambahkan Repositori Elastis
Pertama, kita akan menambahkan kunci dan repositori Elasticsearc ke server CentOS 8. Dengan penyimpanan elasticsearch yang disediakan oleh elastic.co, kami dapat memasang produk elastis termasuk Elasticsearch, Logstash, Kibana, dan Beats.
Tambahkan kunci elastis ke sistem menggunakan perintah berikut.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Setelah itu, masuk ke direktori '/etc/yum.repos.d' dan buat file repositori baru 'elasticsearch.repo'.
cd /etc/yum.repos.d/
vim elasticsearch.repo
Tempel repositori elasticsearch di bawah.
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
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
Simpan dan tutup.
Sekarang periksa semua repositori yang tersedia di sistem menggunakan perintah dnf di bawah ini.
dnf repolist
Dan Anda akan mendapatkan repositori elasticsearch yang telah ditambahkan ke server CentOS 8.
Hasilnya, Anda dapat menginstal produk Elastic seperti Elasticsearch, Logstash, dan Kibana, dll.
Langkah 2 - Instal dan Konfigurasi Elasticsearch
Pada langkah ini, kita akan menginstal dan mengkonfigurasi Elasticsearch.
Instal paket Elasticsearch menggunakan perintah dnf di bawah ini.
sudo dnf install elasticsearch -y
Setelah instalasi selesai, buka direktori '/etc/elasticsearch' dan edit file konfigurasi 'elasticsearch.yml' menggunakan editor vim.
cd /etc/elasticsearch/
vim elasticsearch.yml
Batalkan komentar pada baris berikut dan ubah nilainya untuk setiap baris seperti di bawah ini.
network.host: 127.0.0.1
http.port: 9200
Simpan dan tutup.
Opsional:
Anda dapat menyetel elasticsearch dengan mengedit file konfigurasi JVM 'jvm.options' dan mengatur ukuran heap berdasarkan jumlah memori yang Anda miliki.
Edit konfigurasi JVM 'jvm.options' menggunakan editor vim.
vim jvm.options
Ubah ukuran heap min/maks melalui konfigurasi Xms dan Xmx seperti di bawah ini.
-Xms512m
-Xmx512m
Simpan dan tutup.
Selanjutnya, muat ulang konfigurasi systemd manager dan tambahkan layanan elasticsearch ke waktu boot.
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
Kemudian mulai layanan elasticsearch.
sudo systemctl start elasticsearch
Akibatnya, elasticsearch aktif dan berjalan di belakang alamat IP lokal '127.0.0.1' dengan port default '9200' di server CentOS 8.
Anda dapat memeriksa elasticsearch menggunakan perintah curl di bawah ini.
curl -XGET 'http://127.0.0.1:9200/?pretty'
Dan di bawah ini adalah hasil yang akan Anda dapatkan.
Langkah 3 - Instal dan Konfigurasikan Dasbor Kibana
Setelah menginstal elasticsearch, kita akan menginstal dan mengkonfigurasi Kibana Dashboard di server CentOS 8.
Instal dasbor Kibana menggunakan perintah dnf di bawah ini.
sudo dnf install kibana
Setelah instalasi selesai, buka direktori '/etc/kibana' dan edit file konfigurasi 'kibana.yml'.
cd /etc/kibana/
vim kibana.yml
Batalkan komentar dan ubah beberapa konfigurasi baris seperti di bawah ini.
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
Simpan dan tutup.
Selanjutnya, tambahkan layanan kibana ke boot sistem dan mulai layanan kibana.
sudo systemctl enable kibana
sudo systemctl start kibana
Layanan Kibana aktif dan berjalan di server CentOS 8, periksa menggunakan perintah berikut.
systemctl status kibana
netstat -plntu
Dan Anda akan mendapatkan hasil seperti di bawah ini.
Akibatnya, layanan Kibana aktif dan menjalankan port TCP default '5601'.
Langkah 4 - Siapkan Nginx sebagai Proxy Terbalik untuk Kibana
Pada langkah ini, kita akan menginstal server web Nginx dan menyiapkannya sebagai proxy terbalik untuk Dasbor Kibana.
Instal Nginx dan httpd-tools menggunakan perintah dnf di bawah ini.
sudo dnf install nginx httpd-tools
Setelah instalasi selesai, masuk ke direktori '/etc/nginx/conf.d' dan buat file konfigurasi baru 'kibana.conf'.
cd /etc/nginx/conf.d/
vim kibana.conf
Tempelkan konfigurasi berikut.
server {
listen 80;
server_name elk.hakase-labs.io;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass http://127.0.0.1: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;
}
}
Simpan dan tutup.
Selanjutnya, kita perlu membuat otentikasi dasar untuk mengamankan akses Kibana. Ubah pengguna 'hakase' dengan milik Anda dan jalankan perintah htpasspwd seperti di bawah ini.
sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORD
Ketik kata sandi Anda dan uji konfigurasi nginx.
nginx -t
Pastikan tidak ada kesalahan.
Sekarang tambahkan layanan nginx ke boot sistem dan mulai layanan nginx.
systemctl enable nginx
systemctl start nginx
Hasilnya, instalasi dan konfigurasi Nginx sebagai proxy terbalik untuk Kibana Dashboard telah selesai.
Langkah 5 - Instal dan Konfigurasikan Logstash
Pada langkah ini, kita akan menginstal dan mengonfigurasi logstash sebagai pengirim log. Kami akan menginstal logstash, mengatur ketukan input, mengatur penyaringan syslog menggunakan plugin logstash yang disebut 'grok', dan kemudian mengatur output ke elasticsearch.
Instal logstash menggunakan perintah dnf di bawah ini.
sudo dnf install logstash
Setelah instalasi selesai, buka direktori '/etc/logstash' dan edit file konfigurasi JVM 'jvm.options' menggunakan editor vim.
cd /etc/logstash/
vim jvm.options
Ubah ukuran heap min/maks melalui konfigurasi Xms dan Xmx seperti di bawah ini.
-Xms512m
-Xmx512m
Simpan dan tutup.
Selanjutnya, masuk ke direktori '/etc/logstash/conf.d' dan buat file konfigurasi untuk input beats bernama 'input-beat.conf'.
cd /etc/logstash/conf.d/
vim input-beat.conf
Tempelkan konfigurasi berikut.
input {
beats {
port => 5044
}
}
Simpan dan tutup.
Sekarang buat file konfigurasi 'syslog-filter.conf'.
vim syslog-filter.conf
Tempelkan konfigurasi berikut.
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
Simpan dan tutup.
Kemudian buat konfigurasi output untuk elasticsearch 'output-elasticsearch.conf'.
vim output-elasticsearch.conf
Tempelkan konfigurasi berikut.
output {
elasticsearch { hosts => ["127.0.0.1:9200"]
hosts => "127.0.0.1:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
Simpan dan tutup.
Selanjutnya, tambahkan layanan logstash ke boot sistem dan mulai layanan logstash.
systemctl enable logstash
systemctl start logstash
Layanan logstash aktif dan berjalan, periksa menggunakan perintah berikut.
systemctl status logstash
netstat -plntu
Dan Anda akan mendapatkan hasil seperti di bawah ini.
Akibatnya, pengirim log logstash aktif dan berjalan di server CentOS 8 dengan port TCP default '5044'. Dan instalasi Elastic Stack dasar telah selesai, dan kami siap mengirimkan dan memantau log kami ke server Elastic (ELK Stack).
Langkah 6 - Instal Filebeat di Klien
Pada langkah ini, kami akan menunjukkan cara mengatur filebeat di sistem Ubuntu dan CentOS. Kami akan menginstal filebeat dan mengonfigurasi untuk mengirimkan log dari kedua server ke Logstash di server elastic.
- Instal Filebeat di CentOS 8
Tambahkan kunci elasticsearch ke sistem CentOS 8 menggunakan perintah berikut.
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Sekarang masuk ke direktori '/etc/yum.repos.d' dan buat file 'elasticsearch.repo' menggunakan editor vim.
cd /etc/yum.repos.d/
vim elasticsearch.repo
Tempelkan konfigurasi berikut.
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
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
Simpan dan tutup.
Sekarang instal filebeat menggunakan perintah dnf di bawah ini.
sudo dnf install filebeat
Tunggu hingga penginstalan filebeat selesai.
- Instal Filebeat di Ubuntu 18.04
Pertama, instal paket apt-transport-https.
sudo apt install apt-transport-https
Setelah itu, tambahkan kunci elasticsearch dan repositori menggunakan perintah berikut.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Sekarang perbarui semua repositori dan instal filebeat ke sistem ubuntu menggunakan perintah apt di bawah ini.
sudo apt update
sudo apt install filebeat
Tunggu hingga penginstalan filebeat selesai.
- Konfigurasi Filebeat
Konfigurasi filebeat terletak di direktori '/etc/filebeat'. Buka direktori filebeat dan edit file konfigurasi 'filebeat.yml'.
cd /etc/filebeat/
vim filebeat.yml
Sekarang nonaktifkan output elasticsearch default seperti di bawah ini.
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["127.0.0.1:9200"]
Kemudian aktifkan output logstash dan tentukan alamat IP host logstash.
output.logstash:
# The Logstash hosts
hosts: ["10.5.5.25:5044"]
Simpan dan tutup.
Selanjutnya, kita perlu mengaktifkan modul filebeat. Jalankan perintah filebeat di bawah ini untuk mendapatkan daftar modul filebeat.
filebeat modules list
Aktifkan modul 'sistem' menggunakan perintah berikut.
filebeat modules enable system
Modul sistem filebeat telah diaktifkan dengan file konfigurasi 'modules.d/system.yml'.
Edit konfigurasi modul sistem menggunakan editor vim.
cd /etc/filebeat/
vim modules.d/system.yml
Batalkan komentar jalur file syslog dan file otorisasi ssh.
Untuk sistem CentOS:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/messages"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/secure"]
Untuk sistem Ubuntu:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/syslog"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/auth.log"]
Simpan dan tutup.
Sekarang tambahkan layanan filebeat ke boot sistem dan mulai layanan.
systemctl enable filebeat
systemctl start filebeat
Layanan filebeat aktif dan berjalan, Anda dapat memeriksa menggunakan perintah berikut.
systemctl status filebeat
Dan Anda akan diperlihatkan hasilnya seperti di bawah ini.
Di bawah ini adalah hasil dari server CentOS 8.
Dan di bawah ini dari Ubuntu Server 18.04.
Akibatnya, koneksi antara filebeat dan layanan logstash pada alamat IP server tumpukan elastis '10.5.5.12' telah dibuat.
Langkah 7 - Pengujian
Buka browser web Anda dan ketik nama domain instalasi Elastic Stack di bilah alamat.
http://elk.hakase-labs.io/
Sekarang masuk ke Dasbor Kibana menggunakan akun otentikasi dasar yang telah Anda buat.
Dan Anda akan mendapatkan Dashboard Kibana seperti di bawah ini.
Sekarang hubungkan ke data indeks elasticsearch yang secara otomatis dibuat setelah filebeat terhubung ke logstash. Klik 'Hubungkan ke indeks Elasticsearch Anda ' tautan.
Buat 'filebeat-* ' pola indeks dan klik 'Langkah berikutnya '.
Untuk nama filter, pilih '@timestamp ' filter dan klik 'Buat pola indeks '.
Dan 'filebeat-* ' pola indeks telah dibuat, klik 'Temukan ' menu di sebelah kiri.
Dan Anda akan mendapatkan data log dari klien filebeat seperti di bawah ini.
Log untuk sistem CentOS 8.
Masuk untuk sistem Ubuntu.
Akibatnya, data log yang ditentukan pada modul sistem filebeat telah dikirim ke server tumpukan elastis.
Dan instalasi dan konfigurasi Elastic Stack pada CentOS 8 telah berhasil diselesaikan.