Dalam panduan ini, Anda akan belajar menginstal Elastic stack di Ubuntu 18.04. Tumpukan elastis , sebelumnya dikenal sebagai tumpukan ELK adalah kumpulan atau tumpukan perangkat lunak bebas dan sumber terbuka dari Elastic Company yang dirancang untuk logging terpusat.
Ini memungkinkan pencarian, analisis, dan visualisasi log dari berbagai sumber dalam berbagai format. Logging terpusat membantu mengidentifikasi masalah server atau aplikasi dari titik yang sama.
Komponen Tumpukan Elastis
Elastic Stack terdiri dari 4 komponen utama.
- Elasticsearch :Ini adalah mesin pencari RESTful yang menyimpan atau menyimpan semua data yang dikumpulkan
- Logstash :Ini adalah komponen yang memproses data dan menguraikannya ke pencarian elastis
- Kibana :Ini adalah antarmuka web yang memvisualisasikan log
- Mengalahkan :Ini adalah pengirim data ringan yang mengirimkan log dari ratusan/ribuan server ke server pusat tempat ELK dikonfigurasi.
Sekarang mari kita lihat bagaimana Anda dapat menginstal Elastic stack di Ubuntu 18.04.
Prasyarat
Sebelum Anda memulai penginstalan, pastikan Anda memiliki infrastruktur berikut.
- Server Ubuntu 18,04 LTS dengan akses root dan pengguna non-root plus firewall ufw. Berikut ini adalah persyaratan minimum server.
- Ubuntu 18.04 LTS
- RAM 4 GB
- 2 CPU
- Java 8 diinstal pada sistem Anda yang akan dibutuhkan oleh Elasticsearch dan Logstash.
- NGINX terinstal di server Anda yang nantinya akan dikonfigurasi untuk menangani Kibana. Bacaan yang Disarankan:Instal Nginx di Ubuntu 18.04
Dengan itu, mari selami dan mulai pemasangan tumpukan Elastis di Ubuntu.
1. Instal Elasticsearch di Ubuntu
Pertama, kita akan mengimpor kunci GPG publik Elasticsearch ke APT. Paket tumpukan elastis biasanya ditandatangani dengan kunci penandatanganan Elasticsearch untuk melindungi sistem Anda dari spoofing paket. Selain itu, paket yang diautentikasi dianggap dipercaya oleh pengelola paket.
Untuk mengimpor kunci GPG, jalankan:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Selanjutnya, tambahkan repositori Elastis ke sources.list.d
direktori menggunakan perintah di bawah ini.
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Output dari kedua perintah tersebut adalah seperti yang ditunjukkan:
Keluaran
Sekarang perbarui repositori sistem menggunakan perintah di bawah ini.
sudo apt update
Contoh Keluaran
Sekarang, instal Elasticsearch menggunakan perintah di bawah ini.
sudo apt install elasticsearch
Keluaran
2. Konfigurasikan Elasticsearch di Ubuntu
Elasticsearch mendengarkan pada port 9200. Namun, kami akan membatasi akses luar sehingga pihak luar tidak dapat mengakses data dan mematikan klaster elastis. Karena itu, kita akan membuat beberapa modifikasi pada file konfigurasi Elasticsearch seperti yang ditunjukkan di bawah ini
sudo nano /etc/elasticsearch/elasticsearch.yml
Temukan network.host
atribut dan batalkan komentarnya dan tambahkan localhost
sebagai nilainya. Juga batalkan komentar http.port
atribut.
Keluaran
network.host: localhost
http.port: 9200
Selanjutnya, mulai dan aktifkan layanan Elasticsearch seperti yang ditunjukkan.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Keluaran
Pada titik ini, Elasticsearch harus aktif dan berjalan. Anda dapat memverifikasi ini dengan menjalankan perintah di bawah ini.
systemctl status elasticsearch
Keluaran
Anda juga dapat menggunakan netstat
perintah seperti yang ditunjukkan.
netstat -pnltu
Anda juga dapat menjalankan curl
perintah seperti yang ditunjukkan.
curl -X GET "localhost:9200"
Keluaran
Besar! Kami telah menyelesaikan instalasi dan konfigurasi Elasticsearch. Selanjutnya, kita akan menginstal dan mengkonfigurasi Logstash.
3. Menginstal dan mengonfigurasi Logstash
Komponen kedua dari Elastic stack yang akan kita install adalah Logstash. Logstash akan bertanggung jawab untuk mengumpulkan dan memusatkan log dari berbagai server menggunakan pengirim data filebeat. Kemudian akan memfilter dan menyampaikan data syslog ke Elasticsearch.
Pertama, mari konfirmasikan bahwa OpenSSL sedang berjalan. Untuk melakukannya, jalankan.
openssl version -a
Keluaran
Untuk menginstal Logstash, jalankan perintah di bawah ini.
sudo apt install logstash -y
Keluaran
Selanjutnya, edit /etc/hosts
file dan tambahkan yang berikut ini.
18.224.44.11 elk-master
Dimana 18.224.44.11 adalah alamat IP dari server masterELk.
Kami kemudian akan membuat kunci sertifikat SSL untuk mengamankan transfer data log dari filebeat klien ke server logstash.
Untuk melakukannya, pertama, buat direktori SSL baru di bawah direktori konfigurasi logstash ‘/etc/logstash’ dan navigasikan ke direktori tersebut.
mkdir -p /etc/logstash/ssl
cd /etc/logstash/
Sekarang Anda dapat membuat sertifikat SSL seperti yang ditunjukkan di bawah ini.
openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
Selanjutnya, kita akan membuat file konfigurasi baru untuk logstash. Kami akan membuat file konfigurasi 'filebeat-input.conf' sebagai file input dari filebeat, 'syslog-filter.conf' untuk pemrosesan syslog, dan terakhir file 'output-elasticsearch.conf' untuk menentukan output Elasticsearch.
Arahkan ke direktori Logstash dan buat 'filebeat-input.conf' di direktori 'conf.d'.
cd /etc/logstash/
vim conf.d/filebeat-input.conf
Tempelkan konfigurasi berikut.
input {
beats {
port => 5443
type => syslog
ssl => true
ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
}
}
Simpan dan keluar dari editor teks.
Untuk data log pemrosesan syslog, kami menggunakan plugin filter bernama 'grok' untuk mengurai file syslog.
Buat konfigurasi baru ‘syslog-filter.conf’.
vim conf.d/syslog-filter.conf
Tempelkan konfigurasi di bawah ini.
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 keluar dari editor teks.
Terakhir, buat file konfigurasi bernama 'output-elasticsearch.conf' untuk output elasticsearch.
vim conf.d/output-elasticsearch.conf
Tempel konten berikut.
output {
elasticsearch { hosts => ["localhost:9200"]
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
Simpan dan keluar dari editor teks.
Ketika itu dikatakan dan dilakukan, aktifkan dan mulai layanan Logstash.
sudo systemctl enable logstash
sudo systemctl start logstash
Untuk memverifikasi bahwa Logstash berjalan, jalankan perintah.
sudo systemctl status logstash
Contoh Keluaran
Anda juga dapat menggunakan netstat
perintah seperti yang ditunjukkan.
netstat -pnltu
4. Instal dan konfigurasikan Kibana di Ubuntu
Selanjutnya, kita akan menginstal Kibana menggunakan perintah di bawah ini.
sudo apt install kibana -y
Keluaran
Selanjutnya, kita akan membuat beberapa modifikasi pada file konfigurasi kibana.
vim /etc/kibana/kibana.yml
Cari dan batalkan komentar pada atribut berikut.
server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"
Simpan dan keluar dari editor teks.
Kemudian aktifkan dan mulai layanan Kibana:
sudo systemctl enable kibana
sudo systemctl start kibana
Keluaran
Anda dapat mengonfirmasi bahwa kibana berjalan pada port default 5601 menggunakan netstat
perintah seperti yang ditunjukkan.
netstat -pnltu
Keluaran
5. Memasang dan mengonfigurasi NGINX sebagai proxy terbalik untuk Kibana
Kami menggunakan NGINX sebagai proxy terbalik untuk dasbor kibana. Anda perlu menginstal Nginx dan 'Apache2-utils' seperti yang ditunjukkan di bawah ini.
sudo apt install nginx apache2-utils -y
Keluaran
Selanjutnya, buat file host virtual baru bernama kibana.
vim /etc/nginx/vim sites-available/kibana
Rekatkan konten berikut ke dalam file host virtual
server {
listen 80;
server_name localhost;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass https://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;
}
}
Simpan dan keluar dari editor teks. Direkomendasikan Baca:Arahan lokasi NGINX.
Selanjutnya, buat otentikasi dasar untuk dasbor kibana menggunakan htpasswd
perintah seperti yang ditunjukkan.
sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password
Keluaran
Dalam contoh di atas, nama pengguna adalah elastis dan kata sandi akan menjadi apa yang Anda berikan.
Selanjutnya, aktifkan konfigurasi virtual host Kibana dan uji konfigurasi Nginx.
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t
Keluaran
Tanpa kesalahan, aktifkan dan mulai ulang server Nginx.
systemctl enable nginx
systemctl restart nginx
6. Memasang dan Mengonfigurasi Filebeat
Pada langkah ini, kita akan mengonfigurasi pengirim data filebeat di server elk-master kita. Ini akan menyampaikan semua pesan syslog ke logstash yang akan diproses dan divisualisasikan oleh kibana.
Untuk menginstal filebeat, jalankan:
sudo apt install filebeat
Selanjutnya, buka file konfigurasi filebeat.
sudo vim /etc/filebeat/filebeat.yml
Kami akan menggunakan Logstash untuk melakukan pemrosesan tambahan pada data yang dikumpulkan oleh Filebeat. Filebeat tidak akan diperlukan untuk mengirim data apa pun langsung ke Elasticsearch. Oleh karena itu, cari dan Komentari bagian elasticsearch seperti yang ditunjukkan.
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
Selanjutnya, buka bagian Logstash dan batalkan komentar seperti yang ditunjukkan.
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
Aktifkan filebeat prospectors dengan mengubah nilai baris 'enabled' menjadi 'true'.
enabled: true
Tentukan file log sistem yang akan dikirim ke server logstash. Dalam contoh ini, kita akan menambahkan file log ssh ‘auth.log’ dan file syslog.
paths:
- /var/log/auth.log
- /var/log/syslog
Simpan dan Keluar.
Terakhir, salin file sertifikat logstash – logstash-forwarder.crt – ke /etc/filebeat
direktori.
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt
Sekarang mulai dan aktifkan filebeat.
systemctl start filebeat
systemctl enable filebeat
Untuk memeriksa status filebeat run:
systemctl status filebeat
Keluaran
7. Menguji Elasticsearch Stack
Untuk menguji tumpukan Elastis kami, Buka browser Anda dan jelajahi IP server Anda diikuti dengan port 5601 yang merupakan port yang didengarkan kibana.
ip-address:5601
Masukkan nama pengguna dan kata sandi dan kemudian, layar berikut akan ditampilkan.
Klik pada tab 'temukan' dan klik 'Filebeat' Antarmuka berikut akan muncul memberikan Anda streaming langsung dari data yang divisualisasikan.
Selamat! Anda telah berhasil menginstal dan mengonfigurasi The Elastic Stack dan 'Filebeat' Elastic Beat di sistem Ubuntu 18.04 Anda.