Tumpukan ELK adalah platform analisis data berfitur lengkap, terdiri dari tiga alat sumber terbuka Elasticsearch , Logstash , dan Kibana . Tumpukan ini membantu Anda menyimpan dan mengelola log secara terpusat dan memberikan kemampuan untuk menganalisis masalah dengan menghubungkan peristiwa pada waktu tertentu.
Posting ini memandu Anda untuk menginstal ELK stack di Ubuntu 18.04 / Ubuntu 16.04 .
Komponen
Elasticsearch – Menyimpan log masuk dari Logstash dan menyediakan kemampuan untuk mencari log/data secara real-time
Logstash – Memproses (Mengumpulkan, memperkaya, dan mengirimkannya ke Elasticsearch) dari log masuk yang dikirim oleh ketukan (forwarder).
Kibana – Menyediakan visualisasi peristiwa dan log.
Mengalahkan – Diinstal pada mesin klien dan mengirimkan log ke Logstash atau Elasticsearch melalui protokol ketukan.
Prasyarat
Instal Java
Elasticsearch membutuhkan OpenJDK atau Oracle JDK tersedia di mesin Anda.
Di sini, untuk demo ini, saya menggunakan OpenJDK. Instal Java menggunakan perintah di bawah ini bersama dengan paket dukungan wget dan HTTPS untuk APT.
sudo apt update sudo apt install -y openjdk-8-jdk wget apt-transport-https
Periksa versi Java.
java -version
Keluaran:
openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
Jika Anda ingin menggunakan Oracle Java JDK, bacalah.
BACA :Instal Oracle Java JDK 10/8 di Ubuntu 18.04
BACA :Instal Oracle Java JDK 8 di Ubuntu 16.04
Konfigurasikan repositori ELK
Paket tumpukan ELK dapat dengan mudah diperoleh dari CO Elastis dengan menyiapkan repositori resminya .
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Instal Elasticsearch
Kami sekarang akan menginstal server Elasticsearch, mesin pencari sumber terbuka berdasarkan Lucene. Ini menyediakan mesin pencari teks lengkap yang terdistribusi secara real-time dan berkemampuan multi-penyewa dengan antarmuka web (HTTP) dan dokumen JSON bebas skema.
Instal Elasticsearch menggunakan perintah berikut, v6.4 pada saat penulisan artikel ini.
sudo apt update sudo apt install -y elasticsearch
Mulai layanan Elasticsearch.
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch
Tunggu beberapa menit dan jalankan perintah di bawah ini untuk melihat status interface Elasticsearch REST.
curl -X GET http://localhost:9200
Keluaran:
{ "name" : "nqS7TFZ", "cluster_name" : "elasticsearch", "cluster_uuid" : "vERyh1VpR46G9T21H_3gKQ", "version" : { "number" : "6.4.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "595516e", "build_date" : "2018-08-17T23:18:47.308994Z", "build_snapshot" : false, "lucene_version" : "7.4.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Output di atas mengonfirmasi bahwa Elasticsearch aktif dan berjalan dengan baik.
Instal Logstash
Logstash adalah mesin pengumpulan data dan penguraian log sumber terbuka. Ini mengumpulkan log, mengurai dan menyimpannya di Elasticsearch untuk pencarian. Lebih dari 160+ plugin tersedia untuk Logstash yang menyediakan kemampuan untuk memproses berbagai jenis acara tanpa kerja ekstra.
sudo apt install -y logstash
Buat sertifikat SSL untuk Logstash (Opsional)
Adalah opsional untuk menyetel Forwarder (Filebeat) yang kita instal pada mesin klien untuk menggunakan sertifikat SSL untuk transmisi log yang aman.
Buat sertifikat SSL baik dengan nama host atau IP SAN.
Opsi 1:(Nama Inang atau FQDN)
Buka direktori OpenSSL.
cd /etc/ssl/
Sekarang, buat sertifikat SSL menggunakan OpenSSL. Ganti server.itzgeek.local dengan nama host server Logstash Anda.
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.local
logstash-forwarder.crt . ini harus disalin ke semua server klien yang mengirim log ke server logstash.
Opsi 2:(Alamat IP)
Ikuti langkah-langkah di bawah ini untuk membuat sertifikat SSL untuk IP SAN.
Sebagai prasyarat, tambahkan alamat IP server Logstash ke SubjectAltName di file konfigurasi OpenSSL.
sudo nano /etc/ssl/openssl.cnf
Cari [ v3_ca ] bagian dan perbarui subjectAltName dengan Alamat IP server Logstash Anda.
subjectAltName = IP:192.168.1.10
Buka direktori OpenSSL.
cd /etc/ssl/
Sekarang, buat sertifikat SSL dengan menjalankan perintah berikut.
sudo openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt
logstash-forwarder.crt . ini harus disalin ke semua server klien yang mengirim log ke server logstash.
Konversi SSL
Ubah kunci saat ini ke format PKCS8 agar Logstash berfungsi dengan baik.
sudo openssl pkcs8 -in logstash-forwarder.key -topk8 -nocrypt -out logstash-forwarder.key.pem
Ubah izin file menjadi dapat dibaca dunia.
sudo chmod 644 /etc/ssl/logstash-forwarder.key.pem
Konfigurasikan Logstash
Konfigurasi logstash terdiri dari tiga bagian, yaitu input, filter, dan output. Anda dapat meletakkan semua bagian dalam satu file atau file terpisah untuk setiap bagian, diakhiri dengan .conf .
Di sini, kita akan menggunakan satu file untuk menempatkan bagian input, filter, dan output. Buat file konfigurasi di bawah /etc/logstash/conf.d/ direktori.
sudo nano /etc/logstash/conf.d/logstash.conf
Di bagian input, kami akan mengonfigurasi Logstash untuk mendengarkan pada port 5044 untuk log masuk, dari ketukan (Forwarder) yang ada di mesin klien.
Juga, tambahkan detail sertifikat SSL di bagian input untuk komunikasi yang aman.
input { beats { port => 5044 # Set to False if you do not SSL ssl => true # Delete below lines if no SSL is used ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key.pem" } }
Di bagian saringan. Kami akan menggunakan Grok untuk mengurai log sebelum mengirimkannya ke Elasticsearch, untuk disimpan.
Filter grok berikut akan mencari log berlabel syslog dan mencoba menguraikannya untuk membuat indeks terstruktur.
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
Untuk pola filter GROK lainnya, lihat di sini .
Di bagian output, kita akan menentukan di mana log akan disimpan, jelas Elasticsearch jika ada ELK stack.
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
Sekarang mulai dan aktifkan layanan Logstash.
sudo systemctl restart logstash sudo systemctl enable logstash
Log simpanan:
sudo cat /var/log/logstash/logstash-plain.log
Instal dan Konfigurasi Kibana
Kibana menyediakan visualisasi data yang disimpan di Elasticsearch. Instal Kibana menggunakan perintah berikut.
sudo apt install -y kibanaSecara default, Kibana mendengarkan di localhost yang berarti Anda tidak dapat mengakses antarmuka web Kibana dari mesin eksternal.
Untuk mengaktifkan akses, edit /etc/kibana/kibana.yml berkas.
sudo nano /etc/kibana/kibana.yml
Buat perubahan pada baris di bawah ini dengan alamat IP server Anda.
server.host: "192.168.1.10"
Juga, beberapa kasus Elasticsearch dan Kibana berjalan di mesin yang berbeda , jadi perbarui baris di bawah ini dengan alamat IP server Elasticsearch.
elasticsearch.url: "http://localhost:9200"
Mulai dan aktifkan Kibana pada startup mesin.
sudo systemctl restart kibana sudo systemctl enable kibana
Instal Beats
Ada empat klien beat yang tersedia.
Packetbeat – Menganalisis data paket jaringan.
Filebeat – Wawasan waktu-nyata tentang data log.
Topbeat – Dapatkan wawasan dari data infrastruktur.
Metricbeat – Kirim metrik ke Elasticsearch.
Pastikan bahwa mesin klien dapat menyelesaikan nama host server Logstash. Jika lingkungan Anda tidak memiliki server DNS , maka Anda perlu menambahkan entri host untuk server Logstash di mesin klien.
sudo nano /etc/hosts
Buat entri seperti di bawah ini.
192.168.1.10 server.itzgeek.local
Instal Filebeat
Filebeat adalah agen perangkat lunak yang berjalan pada mesin klien jarak jauh, dan mengirimkan log ke server Logstash untuk diuraikan atau Elasticsearch untuk disimpan tergantung pada konfigurasi.
Instal dukungan HTTPS untuk apt.
sudo apt update sudo apt install -y apt-transport-https
Filebeat tersedia di repositori Elastic, jadi Anda perlu menyiapkannya untuk instalasi Filebeat.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
Instal Filebeat menggunakan perintah berikut.
sudo apt update sudo apt install -y filebeat
Konfigurasi Filebeat
Pertama, salin file logstash-forwarder.crt ke mesin klien jarak jauh.
Lewati langkah ini, jika Anda tidak menggunakan SSL di Logstash untuk komunikasi yang aman.scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/ssl
Edit file konfigurasi filebeat /etc/filebeat/filebeat.yml untuk mengirim log ke server Logstash.
sudo nano /etc/filebeat/filebeat.yml
Konfigurasi di bawah ini adalah untuk mengirim log sistem (/var/log/syslog ) ke server Logstash. Untuk demo ini, saya telah berkomentar /var/log/*.log untuk menghindari pengiriman semua log ke server Logstash.
. . . filebeat.inputs: # Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configurations. # Below are the input specific configurations. - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /var/log/syslog #- /var/log/*.log . . .Di bagian Keluaran, beri komentar di bagian output.elasticsearch: karena kami tidak akan menyimpan log ke Elasticsearch.
Sekarang, cari baris output.logstash: dan ubah entri untuk mengirim log sistem ke Logstash dan juga menyebutkan lokasi sertifikat SSL.
Ganti server.itzgeek.local dengan alamat IP server Logstash jika Anda menggunakan IP SAN.. . . output.logstash: hosts: ["server.itzgeek.local:5044"] # Comment out this line if you are not using SSL on Logstash server ssl.certificate_authorities: ["/etc/ssl/logstash-forwarder.crt"] . . .
Mulai ulang layanan Filebeat.
sudo systemctl restart filebeat
Log Filebeat biasanya ditemukan di file lognya.
sudo cat /var/log/filebeat/filebeat
Akses Antarmuka Kibana
Akses antarmuka web Kibana dengan membuka URL berikut.
http://alamat-ip-Anda:5601/ATAU
http://nama-layanan-Anda:5601Anda akan mendapatkan halaman beranda Kibana.
Pada akses pertama Anda, Anda perlu memetakan filebeat index. Buka Pengelolaan>> Pola Indeks .
Ketik yang berikut di Pola indeks kotak.
filebeat-*
Anda akan melihat indeks filebeat seperti di atas. Klik Langkah berikutnya .
Pilih @stempel waktu lalu klik Buat pola indeks .
@timestamp
Lihat pola indeks dan pemetaannya.
Klik Temukan di navigasi kiri untuk melihat log masuk dari mesin klien.
Itu saja.