Cara Menginstal Elasticsearch, Logstash, dan Kibana (Elk Stack) di CentOS/RHEL 7

Cara Menginstal Elasticsearch, Logstash, dan Kibana (Elk Stack) di CentOS/RHEL 7

Jika Anda adalah orang yang, atau telah berada di masa lalu, yang bertugas memeriksa dan menganalisis log sistem di Linux, Anda tahu mimpi buruk apa yang bisa terjadi jika beberapa layanan sedang dipantau secara bersamaan.

Di masa lalu, tugas itu harus dilakukan sebagian besar secara manual, dengan setiap jenis log ditangani secara terpisah. Untungnya, kombinasi Elasticsearch, Logstash, Dan Kibana di sisi server, bersama FileBeat Di sisi klien, membuat tugas yang dulunya sulit terlihat seperti berjalan -jalan di taman hari ini.

Tiga komponen pertama membentuk apa yang disebut RUSA BESAR Stack, yang tujuan utamanya adalah untuk mengumpulkan log dari beberapa server secara bersamaan (juga dikenal sebagai logging terpusat).

Disarankan Baca: 4 Pemantauan Log Sumber Terbuka yang Baik dan Alat Manajemen untuk Linux

Antarmuka web berbasis Java bawaan memungkinkan Anda untuk memeriksa log dengan cepat sekilas untuk perbandingan dan pemecahan masalah yang lebih mudah. Log klien ini dikirim ke server pusat oleh FileBeat, yang dapat digambarkan sebagai agen pengiriman log.

Mari kita lihat bagaimana semua bagian ini cocok bersama. Lingkungan pengujian kami akan terdiri dari mesin -mesin berikut:

Server pusat: Centos 7 (Alamat IP: 192.168.0.29). 2 GB dari Ram. Klien #1: Centos 7 (Alamat IP: 192.168.0.100). 1 GB dari Ram. Klien #2: Debian 8 (Alamat IP: 192.168.0.101). 1 GB dari Ram. 

Harap dicatat bahwa Ram Nilai yang diberikan di sini bukan prasyarat yang ketat, tetapi nilai yang direkomendasikan untuk keberhasilan implementasi RUSA BESAR Tumpukan di server pusat. Lebih sedikit Ram pada klien tidak akan membuat banyak perbedaan, jika ada, sama sekali.

Menginstal tumpukan rusa di server

Mari kita mulai dengan menginstal RUSA BESAR Tumpukan di server, bersama dengan penjelasan singkat tentang apa yang dilakukan masing -masing komponen:

  1. Elasticsearch menyimpan log yang dikirim oleh klien.
  2. Logstash memproses log tersebut.
  3. Kibana menyediakan antarmuka web yang akan membantu kami untuk memeriksa dan menganalisis log.

Instal paket berikut di server pusat. Pertama, kami akan menginstal Java JDK Versi: kapan 8 (memperbarui 102, yang terbaru pada saat penulisan ini), yang merupakan ketergantungan dari RUSA BESAR komponen.

Anda mungkin ingin memeriksa terlebih dahulu di halaman unduhan java di sini untuk melihat apakah ada pembaruan yang lebih baru tersedia.

# yum pembaruan # cd /opt # wget ---no-cookies ---no-check-certificate --header "cookie: gpw_e24 = http%3a%2f%2fwww.peramal.com%2f; oraclelicense = Accept-Securebackup-Cookie "" http: // unduh.peramal.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.RPM " # RPM -UVH JRE-8U102-LINUX-X64.RPM 

Saatnya memeriksa apakah instalasi selesai dengan sukses:

# java -version 
Periksa versi java dari commandline

Untuk menginstal versi terbaru Elasticsearch, Logstash, Dan Kibana, Kami harus membuat repositori yum secara manual sebagai berikut:

Aktifkan repositori Elasticsearch

1. Impor Kunci GPG Publik Elasticsearch ke RPM Package Manager:

# RPM -Import http: // paket.elastis.CO/GPG-Key-Elasticsearch 

2. Masukkan baris berikut ke file konfigurasi repositori Elasticsearch.repo:

/etc/yum.repo.D/Elasticsearch.repo
[Elasticsearch] Name = Elasticsearch Repository BaseUrl = http: // Paket.elastis.Co/Elasticsearch/2.x/centos gpgcheck = 1 gpgkey = http: // paket.elastis.CO/GPG-Key-Elasticsearch Diaktifkan = 1 

3. Instal Paket Elasticsearch.

# yum install elasticsearch 

Ketika instalasi selesai, Anda akan diminta untuk memulai dan mengaktifkan Elasticsearch:

Instal Elasticsearch di Linux

4. Mulai dan Aktifkan Layanan.

# Systemctl Daemon-Reload # Systemctl Aktifkan Elasticsearch # Systemctl Start Elasticsearch 

5. Izinkan lalu lintas melalui port TCP 9200 di firewall Anda:

# firewall-cmd --add-port = 9200/tcp # firewall-cmd --add-port = 9200/tcp --permanent 

6. Periksa apakah Elasticsearch menanggapi permintaan sederhana Http:

# curl -x dapatkan http: // localhost: 9200 

Output dari perintah di atas harus mirip dengan:

Verifikasi Instalasi Elasticsearch

Pastikan Anda menyelesaikan langkah -langkah di atas dan kemudian melanjutkan Logstash. Karena keduanya Logstash Dan Kibana Bagikan Elasticsearch GPG kunci, tidak perlu mengimpornya kembali sebelum memasang paket.

Disarankan Baca: Kelola Log Sistem (Konfigurasikan, Putar dan Impor ke dalam Basis Data) di Centos 7

Aktifkan repositori logstash

7. Masukkan baris berikut ke file konfigurasi repositori logstash.repo:

/etc/yum.repo.d/logstash.repo
[logstash] name = logstash baseUrl = http: // paket.Elasticsearch.org/logstash/2.2/centos gpgcheck = 1 gpgkey = http: // paket.Elasticsearch.org/gpg-key-elasticsearch diaktifkan = 1 

8. Instal Logstash kemasan:

# yum install logstash 

9. Tambah sebuah SSL sertifikat berdasarkan alamat IP server rusa di baris berikut di bawah [v3_ca] bagian dalam /etc/pki/tls/openssl.CNF:

[v3_ca] SubjectName = IP: 192.168.0.29 
Tambahkan Alamat IP Server Elasticsearch

10. Menghasilkan sertifikat yang ditandatangani sendiri berlaku untuk 365 Hari:

# cd/etc/pki/tls # openssl req -config/etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa: 2048 -keyout private/logstash -forwarder.Kunci -OUT CERTS/LOGSTASH -FORWARDER.crt 

11. Konfigurasikan Logstash File input, output, dan filter:

Memasukkan: Membuat /etc/logstash/conf.d/input.conf dan masukkan baris berikut ke dalamnya. Ini diperlukan untuk logstash untuk “mempelajari"Cara memproses ketukan yang datang dari klien. Pastikan jalur ke sertifikat dan kunci cocok dengan jalur yang tepat seperti yang diuraikan pada langkah sebelumnya:

/etc/logstash/conf.d/input.conf
input beats port => 5044 ssl => true ssl_certificate => "/etc/pki/tls/sertifikat/logstash-forwarder.crt "ssl_key =>"/etc/pki/tls/private/logstash-forwarder.kunci " 

Output (/etc/logstash/conf.d/output.conf) file:

/etc/logstash/conf.d/output.conf
output Elasticsearch hosts => ["localhost: 9200"] sniffing => true manager_template => false index => "%[@metadata] [beat]-%+yyyy.Mm.dd "document_type =>"%[@metadata] [type] " 

Saring (/etc/logstash/conf.D/filter.conf) file. Kami akan mencatat pesan syslog untuk kesederhanaan:

/etc/logstash/conf.D/filter.conf
Filter if [type] == "syslog" grok match => "pesan" => "%syslogline" tanggal match => ["timestamp", "mmm d hh: mm: ss" , "Mmm dd hh: mm: ss"] 

12. Verifikasi Logstash file konfigurasi.

# Layanan Logstash ConfigTest 
Verifikasi konfigurasi logstash

13. Mulai dan Aktifkan Logstash:

# Systemctl Daemon-Reload # Systemctl Mulai Logstash # Systemctl Aktifkan Logstash 

14. Konfigurasikan firewall untuk memungkinkan logstash mendapatkan log dari klien (port TCP 5044):

# firewall-cmd --add-port = 5044/tcp # firewall-cmd --add-port = 5044/tcp --permanent 

Aktifkan repositori Kibana

14. Masukkan baris berikut ke file konfigurasi repositori Kibana.repo:

/etc/yum.repo.d/kibana.repo
[kibana] name = Kibana Repository BaseUrl = http: // paket.elastis.Co/Kibana/4.4/centos gpgcheck = 1 gpgkey = http: // paket.elastis.CO/GPG-Key-Elasticsearch Diaktifkan = 1 

15. Instal Kibana kemasan:

# yum instal kibana 

16. Mulai dan Aktifkan Kibana.

# Systemctl Daemon-Reload # Systemctl Mulai Kibana # Systemctl Aktifkan Kibana 

17. Pastikan Anda dapat mengakses akses antarmuka web Kibana dari komputer lain (Izinkan lalu lintas di port TCP 5601):

# firewall-cmd --add-port = 5601/tcp # firewall-cmd --add-port = 5601/tcp --permanent 

18. Meluncurkan Kibana (http: // 192.168.0.29: 5601) Untuk memverifikasi bahwa Anda dapat mengakses antarmuka web:

Akses antarmuka web kibana

Kami akan kembali ke sini setelah kami menginstal dan mengonfigurasi FileBeat pada klien.

Disarankan Baca: Pantau log server secara real-time dengan “log.IO ”Alat di Linux

Instal FileBeat di server klien

Kami akan menunjukkan kepada Anda bagaimana melakukan ini Klien #1 (Ulangi untuk Klien #2 Setelah itu, mengubah jalur jika berlaku untuk distribusi Anda).

1. Salin sertifikat SSL dari server ke klien:

# scp/etc/pki/tls/sertifikat/logstash-forwarder.CRT [email dilindungi]:/etc/pki/tls/sertifikat/ 

2. Impor Elasticsearch Kunci GPG publik untuk RPM Package Manager:

# RPM -Import http: // paket.elastis.CO/GPG-Key-Elasticsearch 

3. Buat repositori untuk FileBeat (/etc/yum.repo.D/FileBeat.repo) di dalam Centos Distribusi berbasis:

/etc/yum.repo.D/FileBeat.repo
[FileBeat] name = FileBeat untuk klien rusa baseUrl = https: // paket.elastis.CO/Beats/YUM/EL/$ BASEARCH Diaktifkan = 1 gpgkey = https: // paket.elastis.co/gpg-key-elasticsearch gpgcheck = 1 

4. Konfigurasikan sumber untuk menginstal FileBeat di Debian dan turunannya:

# aptitude instal apt-transport-https # echo "deb https: // paket.elastis.Co/Beats/Apt Stable Main ">/etc/apt/Sumber.daftar.D/FileBeat.Daftar # Pembaruan Aptitude 

5. Instal FileBeat kemasan:

# yum menginstal filebeat [on Centos dan berbasis distro] # aptitude menginstal filebeat [on Debian dan turunannya] 

6. Mulai dan Aktifkan FileBeat:

# Systemctl Mulai FileBeat # SystemCTL Aktifkan FileBeat 

Konfigurasikan FileBeat

Kata hati -hati di sini. FileBeat Konfigurasi disimpan dalam a Yaml file, yang membutuhkan lekukan ketat. Hati -hati dengan ini saat Anda mengedit /etc/filebeat/filebeat.YML sebagai berikut:

  1. Di bawah jalan setapak, Tunjukkan file log mana yang harus "dikirim" ke server rusa.
  2. Di bawah Prospectors:
input_type: log document_type: syslog 
  1. Di bawah keluaran:
    1. Batalkan Komentari Garis yang dimulai dengan logstash.
    2. Tunjukkan alamat IP server rusa Anda dan port tempat logstash mendengarkan tuan rumah.
    3. Pastikan jalur ke poin sertifikat ke file aktual yang Anda buat Langkah i (Logstash bagian) di atas.

Langkah -langkah di atas diilustrasikan dalam gambar berikut:

Konfigurasikan FileBeat di Server Klien

Simpan perubahan, lalu mulai ulang FileBeat pada klien:

# Systemctl restart FileBeat 

Setelah kami menyelesaikan langkah -langkah di atas pada klien, jangan ragu untuk melanjutkan.

Menguji FileBeat

Untuk memverifikasi bahwa log dari klien dapat dikirim dan diterima dengan sukses, jalankan perintah berikut di RUSA BESAR Server:

# curl -xget 'http: // localhost: 9200/filebeat -*/_ pencarian?cantik' 

Output harus mirip dengan (perhatikan bagaimana pesan dari /var/log/pesan Dan /var/log/aman diterima dari klien1 Dan klien2):

Menguji FileBeat

Jika tidak, periksa FileBeat file konfigurasi untuk kesalahan.

# journalctl -xe 

Setelah mencoba memulai kembali FileBeat akan mengarahkan Anda ke garis yang menyinggung.

Menguji kibana

Setelah kami memverifikasi bahwa log sedang dikirim oleh klien dan berhasil diterima di server. Hal pertama yang harus kita lakukan Kibana sedang mengkonfigurasi pola indeks dan mengaturnya sebagai default.

Anda dapat menggambarkan indeks sebagai database penuh dalam konteks database relasional. Kami akan pergi dengan FileBeat-* (Atau Anda dapat menggunakan kriteria pencarian yang lebih tepat seperti yang dijelaskan dalam dokumentasi resmi).

Memasuki FileBeat-* dalam Nama Indeks atau bidang pola dan kemudian klik Membuat:

Menguji kibana

Harap dicatat bahwa Anda akan diizinkan memasukkan kriteria pencarian yang lebih halus nanti. Selanjutnya, klik bintang di dalam persegi panjang hijau untuk mengonfigurasinya sebagai pola indeks default:

Konfigurasikan pola indeks kibana default

Akhirnya, di Menemukan Menu Anda akan menemukan beberapa bidang untuk ditambahkan ke laporan visualisasi log. Cukup kurangi mereka dan klik Menambahkan:

Tambahkan Laporan Visualisasi Log

Hasilnya akan ditampilkan di area pusat layar seperti yang ditunjukkan di atas. Jangan ragu untuk bermain -main (menambah dan menghapus bidang dari laporan log) untuk menjadi terbiasa Kibana.

Secara default, Kibana akan menampilkan catatan yang diproses selama yang terakhir 15 Menit (lihat sudut kanan atas) tetapi Anda dapat mengubah perilaku itu dengan memilih kerangka waktu lain:

Laporan Log Kibana

Ringkasan

Dalam artikel ini kami telah menjelaskan cara mengatur tumpukan rusa untuk mengumpulkan log sistem yang dikirim oleh dua klien, mesin Centos 7 dan Debian 8.

Sekarang Anda dapat merujuk ke dokumentasi Elasticsearch resmi dan menemukan detail lebih lanjut tentang cara menggunakan pengaturan ini untuk memeriksa dan menganalisis log Anda dengan lebih efisien.

Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya. Kami menantikan kabar dari Anda.