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

Cara Memasang ELK Stack Di RHEL 8

ELK stack juga dikenal sebagai Elastic stack, terdiri dari empat proyek open source:Elasticsearch, Logstash, Kibana, dan Beats. Ini membantu Anda menyimpan semua log di satu tempat dan memberikan kemampuan untuk menganalisis dan memvisualisasikan data atau masalah dengan menghubungkan peristiwa pada waktu tertentu.

Panduan ini membantu Anda menginstal ELK stack di RHEL 8.

Komponen

Elasticsearch – Sebuah open source, mesin pencari teks lengkap. Ini menyimpan log masuk dari Logstash dan menawarkan kemampuan untuk mencari log/data secara real-time

Logstash – Ini memproses data (Mengumpulkan, memperkaya, dan mengubah) log masuk yang dikirim oleh ketukan (forwarder) dan mengirimkannya ke Elasticsearch

Kibana – Menyediakan visualisasi data atau log dari Elasticsearch.

Beats – Diinstal pada mesin klien, ia mengumpulkan dan mengirimkan log ke Logstash melalui protokol beats.

Lingkungan

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

Nama Inang OS Alamat IP Tujuan
elk.itzgeek.local RHEL 8 192.168.1.10 Tumpukan ELK
client.itzgeek.local CentOS 7 192.168.1.20 Mesin Klien (Filebeat)

Prasyarat

Instal Java

Karena Elasticsearch berbasis Java, kita perlu menginstal OpenJDK atau Oracle JDK di mesin Anda.

BACA: Cara Menginstal Java di RHEL 8

Di sini, saya menggunakan OpenJDK 1.8.

yum -y install java

Verifikasi versi Java.

java -version

Keluaran:

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Konfigurasikan repositori ELK

Impor kunci penandatanganan Elastis.

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

Siapkan repositori Elasticsearch di server ELK dan klien.

cat << EOF > /etc/yum.repos.d/elastic.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Instal &Konfigurasi Elasticsearch

Elasticsearch adalah open source, mesin pencari teks lengkap menawarkan pencarian dan analitik 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-oss

Edit file konfigurasi Elasticsearch menjadi

vi /etc/elasticsearch/elasticsearch.yml

Tetapkan nama cluster, nama node, alamat IP mendengarkan sesuai lingkungan Anda.

cluster.name: elkstack

node.name: elk.itzgeek.local

network.host: 192.168.1.10

Jika Anda menyetel alamat IP yang mendengarkan, Anda perlu menentukan host benih dan node master awal.

discovery.seed_hosts: ["elk.itzgeek.local"]

cluster.initial_master_nodes: ["elk.itzgeek.local"]

Konfigurasikan Elasticsearch untuk memulai selama startup sistem.

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

Gunakan CURL untuk memeriksa apakah Elasticsearch merespons kueri.

curl -X GET http://192.168.1.10:9200

Keluaran:

{
  "name" : "elk.itzgeek.local",
  "cluster_name" : "elkstack",
  "cluster_uuid" : "yws_6oYKS965bZ7GTh0e6g",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Periksa kesehatan cluster dengan menjalankan perintah di bawah ini.

curl -XGET '192.168.1.10:9200/_cluster/health?pretty'

Keluaran:Status cluster harus berwarna hijau.

{
  "cluster_name" : "elkstack",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

Instal &Konfigurasikan Logstash

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

Instal paket Logstash.

yum -y install logstash-oss

Konfigurasi logstash dapat ditemukan di /etc/logstash/conf.d/ .

File konfigurasi logstash terdiri dari tiga bagian yaitu input, filter, dan output. Ketiga bagian dapat ditemukan 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/beats.conf

Di bagian input, kita akan mengkonfigurasi Logstash untuk mendengarkan pada port 5044 untuk log masuk dari ketukan (forwarder) yang diinstal pada mesin klien.

input {
  beats {
    port => 5044
  }
}

Di bagian filter, kita 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 ini cukup berguna hanya untuk memantau pesan syslog (/var/log/messages).

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, kunjungi halaman grokdebugger.

Di bagian output, kita akan menentukan lokasi penyimpanan log, tentu saja, sebuah node Elasticsearch.

output {
  elasticsearch {
    hosts => ["192.168.1.10:9200"]
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}

Sekarang mulai dan aktifkan layanan Logstash.

systemctl start logstash

systemctl enable logstash

Tunggu sebentar untuk mengizinkan Logstash memulai dan kemudian jalankan perintah di bawah ini untuk memeriksa apakah itu mendengarkan pada port 5044.

netstat -antup | grep -i 5044

Keluaran:

tcp6       0      0 :::5044                 :::*                    LISTEN      31014/java

Anda dapat memecahkan masalah Logstash dengan bantuan log.

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-oss

Edit file kibana.yml.

vi /etc/kibana/kibana.yml

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

server.host: "0.0.0.0"

Batalkan komentar pada baris berikut dan perbarui dengan URL instance Elasticsearch.

elasticsearch.hosts: ["http://192.168.1.10:9200"]

Mulai dan aktifkan kibana saat startup sistem.

systemctl start kibana

systemctl enable kibana

Periksa apakah Kibana mendengarkan pada port 5601.

netstat -antup | grep -i 5601

Keluaran:

tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      3631/node

Firewall

Konfigurasikan firewall di server ELK untuk menerima log dari mesin klien.

5044 – Agar Logstash menerima log

5061 – Untuk mengakses 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.

Siapkan repositori Elastis di mesin klien untuk mendapatkan paket Filebeat.

Instal Filebeat menggunakan perintah berikut.

yum -y install filebeat

File konfigurasi Filebeat dalam format YAML, yang berarti lekukan sangat penting. Pastikan Anda menggunakan jumlah spasi yang sama dengan yang digunakan dalam panduan.

Edit file konfigurasi filebeat.

vi /etc/filebeat/filebeat.yml

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

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

Sekarang, temukan baris output.logstash dan ubah entri seperti di bawah ini. Bagian ini mendefinisikan filebeat untuk mengirim log ke server Logstash 192.168.1.10 pada port 5044 .

.   .   .

#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["192.168.1.10:5044"]
.   .   .

Di atas /etc/filebeat/filebeat.yml , Anda akan melihat bagian prospectors. Di sini, Anda perlu menentukan log mana yang harus dikirim ke Logstash.

Setiap prospektor memulai dengan karakter.

Di sini, kami akan mengonfigurasi filebeat untuk mengirim log sistem /var/log/messages ke server Logstash. Untuk melakukannya, ubah prospektor yang ada di bawah jalur bagian seperti yang ditunjukkan di bawah ini.

.   .   .

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/messages
    #- c:\programdata\elasticsearch\logs\*

.  .  .

Mulai ulang layanan.

systemctl restart filebeat

systemctl enable filebeat

Akses Kibana

Akses Kibana menggunakan URL berikut.

http://your-ip-addr-ess:5601/

Anda akan mendapatkan halaman beranda Kibana. Klik Jelajahi sendiri .

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

Ketik yang berikut di Pola indeks kotak.

filebeat-*
Anda akan melihat setidaknya satu indeks filebeat seperti di bawah ini. Klik Langkah berikutnya .

Pilih @cap waktu lalu klik Buat Pola Indeks .

@timestamp

Verifikasi pola indeks Anda dan pemetaannya.

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

Kesimpulan

Itu saja. Anda telah berhasil mempelajari cara menginstal ELK Stack di RHEL 8. Silakan bagikan tanggapan Anda di bagian komentar.


Cent OS
  1. Cara menginstal Graylog2 di CentOS 7 / RHEL 7

  2. Cara Instal Elasticsearch di CentOS 8 / RHEL 8

  3. Cara Menginstal Elasticsearch di CentOS/RHEL 8

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

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

  3. Cara Memasang ELK Stack di CentOS 7

  1. Cara Menginstal Elastic Stack di Ubuntu 16.04

  2. Cara Menginstal Elastic Stack di CentOS 7

  3. Cara Menginstal ELK di Ubuntu 20.04