GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Install Elasticsearch, Logstash, dan Kibana (ELK Stack) di CentOS 7 / RHEL 7

ELK stack juga dikenal sebagai Elastic stack, terdiri dari Elasticsearch, Logstash, dan Kibana. Ini membantu Anda menyimpan semua log di satu tempat dan menganalisis masalah dengan menghubungkan peristiwa pada waktu tertentu.

Panduan ini membantu Anda memasang tumpukan ELK di CentOS 7 / RHEL 7 .

Komponen

Logstash – Ia 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.

Mengalahkan – Diinstal di mesin klien, kirim log ke Logstash melalui protokol ketukan.

Lingkungan

Untuk memiliki tumpukan ELK berfitur lengkap, kita memerlukan dua mesin untuk menguji kumpulan log.

Tumpukan ELK

Operating system : CentOS 7 Minimal
IP Address       : 192.168.1.10
HostName         : server.itzgeek.local

Filebeat

Operating System : CentOS 7 Minimal
IP Address       : 192.168.1.20
HostName         : client.itzgeek.local

Prasyarat

Instal Java

Karena Elasticsearch berbasis Java, pastikan Anda telah menginstal OpenJDK atau Oracle JDK di mesin Anda.

BACA :Cara Menginstal Oracle Java 8 di CentOS 7 / RHEL 7

Di sini, saya menggunakan OpenJDK 1.8.

yum -y install java-1.8.0 wget

Verifikasi versi Java.

java -version

Keluaran:

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Konfigurasikan repositori ELK

Impor kunci penandatanganan Elastis.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Siapkan repositori Elasticsearch dan instal.

vi /etc/yum.repos.d/elk.repo

Tambahkan konten di bawah ini ke elk.repo berkas.

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Instal Elasticsearch

Elasticsearch adalah mesin pencari open source, menawarkan pencarian dan analisis terdistribusi real-time dengan antarmuka web RESTful. Elasticsearch menyimpan semua data yang dikirim oleh Logstash dan ditampilkan melalui antarmuka web (Kibana) atas permintaan pengguna.

Instal Elasticsearch.

yum install -y elasticsearch

Konfigurasikan Elasticsearch untuk memulai selama startup sistem.

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

Gunakan CURL untuk memeriksa apakah Elasticsearch merespons kueri atau tidak.

curl -X GET http://localhost:9200

Keluaran:

 {
  "name" : "1DwGO86",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "xboS_6K5Q2OO1XA-QJ9GIQ",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "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"
}

Instal Logstash

Logstash adalah alat sumber terbuka untuk mengelola acara dan log, mengumpulkan log, menguraikannya, dan menyimpannya di Elasticsearch untuk pencarian. Lebih dari 160+ plugin tersedia untuk Logstash yang menyediakan kemampuan untuk memproses berbagai jenis acara tanpa kerja ekstra.

Instal paket Logstash.

yum -y install logstash

Buat sertifikat SSL (Opsional)

Filebeat (Logstash Forwarder) biasanya diinstal pada server klien, dan mereka 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 server Logstash dalam konfigurasi beats (forwarder), pastikan Anda memiliki catatan A untuk server Logstash dan juga memastikan bahwa mesin klien dapat menyelesaikan nama host server Logstash.

Buka direktori OpenSSL.

cd /etc/pki/tls/

Sekarang, buat sertifikat SSL. Ganti hijau satu dengan nama host server Logstash asli Anda.

openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt -subj /CN=server.itzgeek.local

Opsi 2:(Alamat IP)

Jika Anda berencana menggunakan alamat IP alih-alih nama host, ikuti langkah-langkah untuk membuat sertifikat SSL untuk IP SAN.

Untuk membuat sertifikat IP SAN, Anda perlu menambahkan alamat IP server Logstash ke SubjectAltName di file konfigurasi OpenSSL.

vi /etc/pki/tls/openssl.cnf

Cari bagian “[ v3_ca ]” dan ganti hijau satu dengan IP server Logstash Anda.

subjectAltName = IP:192.168.1.10

Buka direktori OpenSSL.

cd /etc/pki/tls/

Sekarang, buat sertifikat SSL dengan menjalankan perintah berikut.

openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
Ini logstash-forwarder.crt harus disalin ke semua mesin klien yang mengirim log ke server Logstash.

Konfigurasikan Logstash

Konfigurasi logstash dapat ditemukan di /etc/logstash/conf.d/ . File konfigurasi logstash terdiri dari tiga bagian input, filter, dan output. Ketiga bagian dapat ditemukan baik dalam satu file atau file terpisah yang diakhiri dengan .conf.

Saya menyarankan Anda untuk menggunakan satu file untuk menempatkan bagian input, filter, dan output.

vi /etc/logstash/conf.d/logstash.conf

Di bagian pertama, kami akan memasukkan entri untuk konfigurasi input. Konfigurasi berikut menyetel 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 – Opsional.

input {
 beats {
   port => 5044
   
   # Set to False if you do not use SSL 
   ssl => true

   # Delete below linesif you do not use SSL
   ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
   ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
   }
}

Di bagian saringan. Kami akan menggunakan Grok untuk mengurai log sebelum mengirimkannya ke Elasticsearch. Filter grok berikut akan mencari syslog log berlabel 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 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 layanan Logstash.

systemctl start logstash
systemctl enable logstash

Anda dapat memecahkan masalah apa pun dengan melihat log Logstash.

cat /var/log/logstash/logstash-plain.log

Instal &Konfigurasi Kibana

Kibana menyediakan visualisasi log yang disimpan di Elasticsearch. Instal Kibana menggunakan perintah berikut.

yum -y install kibana

Edit file kibana.yml.

vi /etc/kibana/kibana.yml

Secara default, Kibana mendengarkan di localhost yang berarti Anda tidak dapat mengakses antarmuka Kibana dari mesin eksternal. Untuk mengizinkannya, edit baris di bawah ini dengan IP mesin Anda.

server.host: "192.168.1.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 kibana
systemctl enable kibana

Firewall

Konfigurasikan firewall pada node tumpukan ELK untuk menerima log dari mesin klien.

5044 – Agar Logstash menerima log

5061 – Untuk mengakses Antarmuka Kibana dari mesin eksternal.

firewall-cmd --permanent --add-port=5044/tcp
firewall-cmd --permanent --add-port=5601/tcp
firewall-cmd --reload

Selanjutnya, kami akan mengonfigurasi ketukan untuk mengirimkan log ke server Logstash.

Instal dan Konfigurasi Filebeat

Ada empat klien ketukan yang tersedia

  1. Packetbeat – Menganalisis data paket jaringan.
  2. Filebeat – Wawasan real-time tentang data log.
  3. Topbeat – Dapatkan wawasan dari data infrastruktur.
  4. Metricbeat – Kirim metrik ke Elasticsearch.

Untuk menganalisis log sistem mesin klien (Misalnya client.itzgeek.local), kita perlu menginstal filebeat . Buat file beats.repo.

vi /etc/yum.repos.d/beats.repo

Tambahkan konten di bawah ini ke file repo di atas.

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Sekarang, instal Filebeat menggunakan perintah berikut.

yum -y install filebeat

Siapkan entri host di mesin klien jika lingkungan Anda tidak memiliki server DNS .

vi /etc/hosts

Buat entri host seperti di bawah ini pada mesin klien.

 192.168.1.10 server.itzgeek.local server

Filebeat (beats) menggunakan sertifikat SSL untuk memvalidasi identitas server Logstash, jadi salin logstash-forwarder.crt dari server Logstash ke klien.

Lewati langkah ini, jika Anda tidak menggunakan SSL di Logstash.

scp -pr [email protected]:/etc/pki/tls/certs/logstash-forwarder.crt /etc/ssl/certs/

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.

vi /etc/filebeat/filebeat.yml

Di atas, Anda akan melihat bagian prospectors. Di sini, Anda perlu menentukan log mana yang harus dikirim ke Logstash dan bagaimana menanganinya. Setiap pencari emas dimulai dengan karakter.

Untuk tujuan pengujian, kami akan mengonfigurasi filebeat untuk mengirim /var/log/messages 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.

filebeat.inputs:
- type: log
 
      # Change to true to enable this input configuration. 
      enabled: true

      # Paths that should be crawled and fetched.
      paths:

        - /var/log/messages
        # - /var/log/*.log

.  .  .

Beri komentar di bagian output.elasticsearch: karena kami tidak akan menyimpan log langsung ke Elasticsearch.

Sekarang, temukan 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

Ganti server.itzgeek.local dengan alamat IP jika Anda menggunakan IP SAN .

.   .   .

output.logstash:
  # The Logstash Server
  hosts: ["server.itzgeek.local:5044"]


  # Comment out this line if Logstash is not using SSL
  ssl.certificate_authorities: ["/etc/ssl/certs/logstash-forwarder.crt"]

.   .   .

Mulai ulang layanan.

systemctl restart filebeat

Beats logs biasanya ditemukan dalam file syslog.

cat /var/log/filebeat/filebeat

Akses Kibana

Akses Kibana menggunakan URL berikut.

http://alamat-ip-Anda:5601/

Anda akan mendapatkan halaman beranda Kibana.

Pada login pertama Anda, Anda harus memetakan filebeat index. Buka Pengelolaan>> Pola Indeks .

Ketik yang berikut di Pola indeks kotak.

filebeat-*

Anda akan melihat setidaknya satu indeks filebeat seperti di atas. Klik Langkah berikutnya.

Pilih @cap waktu lalu klik Create .

@timestamp

Verifikasi pola indeks Anda dan pemetaannya.

Sekarang, klik Temukan untuk melihat log masuk dan melakukan kueri penelusuran.

Itu saja.


Cent OS
  1. Cara Instal Elasticsearch di CentOS 8 / RHEL 8

  2. Cara Menginstal Elasticsearch di CentOS/RHEL 8

  3. Cara Memasang ELK Stack di CentOS 7

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

  2. Cara menginstal Graylog2 di CentOS 7 / RHEL 7

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

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

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

  3. Cara Menginstal ELK Stack di CentOS 7 / RHEL 7