GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Install Elasticsearch, Logstash, dan Kibana (ELK Stack) di Ubuntu 18.04 / Ubuntu 16.04

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 kibana
Secara 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:5601

Anda 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.


Ubuntu
  1. Cara menginstal Elasticsearch, Logstash dan Kibana 4 di CentOS 7 / RHEL 7

  2. Cara menginstal Elasticsearch, Logstash dan Kibana 4 di Ubuntu 14.04 / 15.04

  3. Cara Menginstal dan Mengonfigurasi Elasticsearch di Ubuntu 20.04

  1. Cara Menginstal ELK Stack (Elasticsearch, Logstash, dan Kibana) di Ubuntu 18.04 / 20.04

  2. Cara Menginstal dan Menggunakan Elasticsearch di Ubuntu 20.04

  3. Instal Elasticsearch, Logstash, Dan Kibana Di Ubuntu 20.04

  1. Cara Menginstal Elasticsearch, Logstash, dan Kibana (ELK Stack) di CentOS 8

  2. Cara Memasang Elastic Stack (Elasticsearch, Logstash dan Kibana) di CentOS 8

  3. Cara Menginstal Elastic Stack di Ubuntu 16.04