Cara Menginstal Elasticsearch, Logstash, dan Kibana (Elk Stack) di CentOS/RHEL 7
- 3799
- 987
- Miss Angelo Toy
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:
- Elasticsearch menyimpan log yang dikirim oleh klien.
- Logstash memproses log tersebut.
- 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 -versionPeriksa 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
:
[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 Linux4. 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 ElasticsearchPastikan 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
:
[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.29Tambahkan 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:
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:
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:
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 ConfigTestVerifikasi 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
:
[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:
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:
[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:
- Di bawah jalan setapak, Tunjukkan file log mana yang harus "dikirim" ke server rusa.
- Di bawah Prospectors:
input_type: log document_type: syslog
- Di bawah keluaran:
- Batalkan Komentari Garis yang dimulai dengan logstash.
- Tunjukkan alamat IP server rusa Anda dan port tempat logstash mendengarkan tuan rumah.
- 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 KlienSimpan 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 FileBeatJika 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:
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 defaultAkhirnya, di Menemukan Menu Anda akan menemukan beberapa bidang untuk ditambahkan ke laporan visualisasi log. Cukup kurangi mereka dan klik Menambahkan:
Tambahkan Laporan Visualisasi LogHasilnya 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 KibanaRingkasan
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.
- « Kebenaran Python dan Perl - fitur, pro dan kontra dibahas
- Cara membuat dan menjalankan unit layanan baru di SystemD menggunakan skrip shell »