ELK adalah tumpukan analisis data berfitur lengkap, terdiri dari Elasticsearch , Logstash, dan Kibana yang membantu Anda menyimpan dan mengelola log secara terpusat dan menawarkan kemampuan untuk menganalisis masalah dengan menghubungkan peristiwa pada waktu tertentu.
Panduan ini membantu Anda menginstal ELK stack di Ubuntu 16.04.
Komponen
Logstash – Ini memproses (Mengumpulkan, memperkaya, dan mengirimkannya ke Elasticsearch) dari log masuk yang dikirim oleh ketukan (forwarder).
Elasticsearch – Ini menyimpan log masuk dari Logstash dan menyediakan kemampuan untuk mencari log/data secara real time
Kibana – Menyediakan visualisasi log.
Beats – Diinstal di mesin klien, kirim log ke Logstash melalui protokol beats.
Prasyarat
Beralih ke pengguna root.
su -
ATAU
sudo su -
Karena Elasticsearch berbasis Java, Anda harus memiliki OpenJDK atau Oracle JDK diinstal pada mesin Anda.
BACA :Cara menginstal Oracle Java 8 di Ubuntu 16.04 / LinuxMint 18
Di sini, saya memilih untuk menginstal OpenJ P K .
apt-get updateapt-get install -y openjdk-8-jdk wget
Periksa versi JAVA.
java -versi
Keluaran:
openjdk versi "1.8.0_131"OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)OpenJDK 64-Bit Server VM (build 25.131-b11, mode campuran)
Instal Elasticsearch
Elasticsearch adalah server pencarian sumber terbuka, menawarkan pencarian dan analisis terdistribusi real-time dengan antarmuka web RESTful.
Elasticsearch menyimpan semua data yang dikirim oleh logstash dan ditampilkan melalui kibana atas permintaan pengguna.
Topik ini mencakup pengaturan konfigurasi yang diperlukan untuk ELK. Anda juga dapat menggunakan Instal Elasticsearch di CentOS 7 / Ubuntu 16.04 / Linux Mint 18 untuk instruksi lebih lanjut.
Siapkan repositori Elasticsearch.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list
Instal Elasticsearch.
apt-get updateapt-get install -y elasticsearch
Konfigurasikan Elasticsearch untuk memulai selama startup sistem.
systemctl aktifkan elasticsearchsystemctl start elasticsearch
Elastisearch seharusnya sekarang mendengarkan pada 9200 untuk memproses permintaan HTTP; kita dapat menggunakan CURL untuk mendapatkan tanggapan.
curl -X DAPATKAN http://localhost:9200
Keluaran:
{ "name" :"gf5QYAn", "cluster_name" :"elasticsearch", "cluster_uuid" :"S6gZNkMERpSr-MGXqEFUJw", "version" :{ "number" :"5.5.2", "build_hash" :" b2f0c09", "build_date" :"2017-08-14T12:33:14.154Z", "build_snapshot" :false, "lucene_version" :"6.6.0" }, "tagline" :"Kamu Tahu, untuk Pencarian"}Instal Logstash
Logstash adalah alat open source, mengumpulkan log, mengurai dan menyimpannya di Elasticsearch untuk pencarian. Lebih dari 160+ plugin tersedia untuk Logstash, yang menyediakan kemampuan untuk memproses berbagai jenis peristiwa tanpa kerja ekstra.
Instal Logstash menggunakan perintah apt-get.
apt-get install -y logstashBuat sertifikat SSL
Forwarder (filebeat) yang akan diinstal pada server klien menggunakan sertifikat SSL untuk memvalidasi identitas server Logstash untuk komunikasi yang aman.
Buat sertifikat SSL baik dengan nama host atau IP SAN.
Opsi 1:(Nama Inang FQDN)
Jika Anda menggunakan nama host dalam konfigurasi beats (forwarder), pastikan Anda memiliki A record untuk server logstash; memastikan bahwa mesin klien dapat menyelesaikan nama host server logstash.
Jika Anda tidak memiliki server nama di lingkungan Anda; pastikan Anda menambahkan entri host untuk server logstash di mesin klien serta di server logstash.
sudo nano /etc/hosts192.168.12.10 server.itzgeek.localBuka direktori OpenSSL.
cd /etc/ssl/Sekarang, buat sertifikat SSL. Ganti “hijau ” satu dengan nama host dari server logstash Anda yang sebenarnya.
openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout logstash-forwarder.key -out logstash-forwarder.crt -subj /CN=server.itzgeek.localOpsi 2:(Alamat IP)
Jika Anda berencana menggunakan alamat IP alih-alih nama host, ikuti langkah-langkah untuk membuat sertifikat SSL untuk IP SAN.
Sebagai prasyarat, kita perlu menambahkan alamat IP server logstash ke SubjectAltName di file konfigurasi OpenSSL.
nano /etc/ssl/openssl.cnfCari bagian “[ v3_ca ]” dan ganti “hijau ” satu dengan IP server logstash Anda.
subjectAltName =IP:192.168.12.10Buka direktori OpenSSL.
cd /etc/ssl/Sekarang, buat sertifikat SSL dengan menjalankan perintah berikut.
openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crtLogstash-forwarder.crt ini harus disalin ke semua server klien yang mengirim log ke server logstash.
Konfigurasikan Logstash
Konfigurasi logstash dapat ditemukan di /etc/logstash/conf.d/. Jika file tidak ada, buat yang baru. file konfigurasi logstash terdiri dari tiga bagian input, filter, dan output; ketiga bagian dapat ditemukan baik dalam satu file atau setiap bagian akan memiliki file terpisah yang diakhiri dengan .conf.
Saya menyarankan Anda untuk menggunakan satu file untuk menempatkan bagian input, filter, dan output.
nano /etc/logstash/conf.d/logstash.confDi bagian pertama, kami akan memasukkan entri untuk konfigurasi input. Konfigurasi berikut mengatur 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 { ketukan { port => 5044 ssl => true ssl_certificate => "/etc/ssl/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" congestion_threshold => "40 " }}Di bagian saringan. Kami akan menggunakan Grok untuk mengurai log sebelum mengirimkannya ke Elasticsearch. Filter grok berikut akan mencari log berlabel “syslog” dan mencoba menguraikannya untuk membuat indeks terstruktur.
filter {if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } tanggal {match => [ "timestamp", "MMM d HH:mm :ss", "MMM dd HH:mm:dd" ]} }}Untuk pola filter lainnya, lihat halaman grokdebugger.
Di bagian output, kami akan menentukan lokasi penyimpanan log; jelas, itu harusnya Elasticsearch.
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }}Sekarang mulai dan aktifkan logstash.
systemctl start logstashsystemctl aktifkan logstashAnda dapat memecahkan masalah apa pun dengan melihat log di bawah ini.
cat /var/log/logstash/logstash-plain.logSelanjutnya, kami akan mengonfigurasi ketukan untuk mengirimkan log ke server logstash.
Instal Filebeat
Ada empat klien beats yang tersedia.
- Packetbeat – Menganalisis data paket jaringan.
- Filebeat – Wawasan real-time tentang data log.
- Topbeat – Dapatkan insight dari data infrastruktur.
- Metricbeat – Mengirimkan metrik ke Elasticsearch.
Pada mesin Klien:
Untuk menganalisis log sistem, kami akan menggunakan filebeat di sini. Anda dapat mengunduh filebeat dari situs web resmi , atau Anda dapat menggunakan perintah berikut untuk menginstalnya.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/beats.listInstal Filebeat.
apt-get update apt-get install -y filebeatFilebeat (beats) menggunakan sertifikat SSL untuk memvalidasi identitas server logstash, jadi salin logstash-forwarder.crt dari server logstash ke klien.
$ scp -pr [email protected]:/etc/ssl/logstash-forwarder.crt /etc/sslKonfigurasi Filebeat
Sekarang, saatnya menghubungkan filebeat dengan Logstash; ikuti langkah-langkah di bawah ini untuk mengonfigurasi filebeat dengan tumpukan ELK.
File konfigurasi Filebeat dalam format YAML, yang berarti lekukan sangat penting. Pastikan Anda menggunakan jumlah spasi yang sama dengan yang digunakan dalam panduan.
Buka file konfigurasi filebeat.
nano /etc/filebeat/filebeat.ymlDi atas, Anda akan melihat Prospektor Filebeat. Di sini, Anda perlu menentukan file apa saja yang harus dikirim ke logstash dan bagaimana penanganannya. Setiap pencari emas dimulai dengan – karakter.
Untuk tujuan pengujian, kami akan mengonfigurasi filebeat untuk mengirim /var/log/syslog ke server Logstash. Untuk melakukannya, ubah prospektor yang ada di bawah jalur bagian. Komentari – /var/log/*.log untuk menghindari pengiriman semua .log file yang ada di direktori itu ke Logstash.
. . . jalur: - /var/log/syslog # - /var/log/*.log. . .Di bagian Keluaran , beri komentar di bagian output.elasticsearch: karena kami tidak akan menyimpan log langsung ke Elasticsearch.
Sekarang, cari baris “output.logstash: ” dan ubah entri seperti di bawah ini. Bagian ini mendefinisikan filebeat untuk mengirim log ke server logstash “server.itzgeek.local ” pada port “5044 ” dan sebutkan jalur tempat salinan sertifikat SSL ditempatkan.
Catatan:Ganti “server.itzgeek.local ” dengan alamat IP jika Anda menggunakan IP SAN.
. . .output.logstash:# Host Logstash menghosting:["server.itzgeek.local:5044 "] # SSL opsional. Secara default dimatikan. # Daftar sertifikat root untuk verifikasi server HTTPS ssl.certificate_authorities:["/etc/ssl/logstash-forwarder.crt "]. . .Mulai ulang layanan.
systemctl restart filebeatsystemctl aktifkan filebeatLog ketukan biasanya ditemukan di file lognya.
cat /var/log/filebeat/filebeatInstal &Konfigurasi Kibana
Kibana menyediakan visualisasi log yang disimpan di elasticsearch, unduh dari situs web resmi atau gunakan perintah berikut untuk mengatur repositori.
apt-get install -y kibanaEdit file kibana.yml.
nano /etc/kibana/kibana.ymlSecara default, Kibana mendengarkan di localhost yang berarti Anda tidak dapat mengakses antarmuka Kibana dari mesin luar. Untuk mengaktifkannya, edit baris di bawah ini dengan IP mesin Anda.
server.host:"192.168.12.10 "Batalkan komentar pada baris berikut dan perbarui dengan URL instance Elasticsearch. Dalam kasus saya, ini adalah localhost.
elasticsearch.url:"http://localhost:9200"Mulai dan aktifkan kibana saat startup sistem.
systemctl start kibanasystemctl aktifkan kibanaAkses Kibana menggunakan URL berikut.
http://alamat-ip-Anda:5601/ATAU
http://nama-layanan-Anda:5601Pada login pertama Anda, Anda harus memetakan indeks filebeat.
Ketik yang berikut di Nama atau pola indeks kotak.
filebeat-*Pilih @stempel waktu lalu klik buat.
@timestampTelusuri pola indeks dan pemetaannya.
Klik Temukan di navigasi kiri untuk melihat log masuk dari mesin klien.
Itu saja. Anda telah berhasil mengatur tumpukan ELK di Ubuntu 16.04
Ubuntu