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.crtIni 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
- Packetbeat – Menganalisis data paket jaringan.
- Filebeat – Wawasan real-time tentang data log.
- Topbeat – Dapatkan wawasan dari data infrastruktur.
- 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 root@server.itzgeek.local:/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.