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
- Packetbeat – Menganalisis data paket jaringan.
- Filebeat – Wawasan real-time tentang data log.
- Topbeat – Dapatkan wawasan dari data infrastruktur.
- 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.