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

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

Sekiranya anda adalah orang yang, atau pada masa lalu, yang bertanggungjawab untuk memeriksa dan menganalisis log sistem di Linux, anda tahu apa mimpi ngeri yang boleh menjadi tugas jika banyak perkhidmatan dipantau secara serentak.

Pada masa lalu, tugas itu harus dilakukan secara manual, dengan setiap jenis log yang dikendalikan secara berasingan. Nasib baik, gabungan Elasticsearch, Logstash, dan Kibana di sisi pelayan, bersama -sama dengan Filebeat Di sisi pelanggan, menjadikannya tugas yang sukar kelihatan seperti berjalan kaki di taman hari ini.

Tiga komponen pertama membentuk apa yang disebut Rusa Stack, yang tujuan utamanya adalah untuk mengumpul log dari pelbagai pelayan pada masa yang sama (juga dikenali sebagai pembalakan berpusat).

Cadangan Baca: 4 Pemantauan Log Sumber Terbuka dan Alat Pengurusan untuk Linux

Antara muka web berasaskan Java yang terbina dalam membolehkan anda memeriksa log dengan cepat sekilas untuk perbandingan dan penyelesaian masalah yang lebih mudah. Log pelanggan ini dihantar ke pelayan pusat oleh Filebeat, yang boleh digambarkan sebagai ejen penghantaran log.

Mari lihat bagaimana semua kepingan ini sesuai bersama. Persekitaran ujian kami akan terdiri daripada mesin berikut:

Pelayan pusat: Centos 7 (Alamat IP: 192.168.0.29). 2 GB Ram. Pelanggan #1: Centos 7 (Alamat IP: 192.168.0.100). 1 GB Ram. Pelanggan #2: Debian 8 (Alamat IP: 192.168.0.101). 1 GB Ram. 

Sila ambil perhatian bahawa Ram nilai yang disediakan di sini bukanlah prasyarat yang ketat, tetapi nilai yang disyorkan untuk melaksanakan pelaksanaan yang berjaya Rusa Tumpukan pada pelayan pusat. Kurang Ram mengenai pelanggan tidak akan membuat banyak perbezaan, jika ada, sama sekali.

Memasang Stack Elk di pelayan

Mari mulakan dengan memasang Rusa Tumpukan pada pelayan, bersama -sama dengan penjelasan ringkas mengenai apa yang dilakukan oleh setiap komponen:

  1. Elasticsearch menyimpan kayu balak yang dihantar oleh pelanggan.
  2. Logstash memproses log tersebut.
  3. Kibana Menyediakan antara muka web yang akan membantu kami memeriksa dan menganalisis log.

Pasang pakej berikut di pelayan pusat. Pertama, kami akan memasang Java Jdk versi 8 (Kemas kini 102, yang terbaru pada masa penulisan ini), yang merupakan kebergantungan Rusa komponen.

Anda mungkin ingin menyemak terlebih dahulu di halaman muat turun java di sini untuk melihat apakah ada kemas kini yang lebih baru tersedia.

# yum kemas kini # cd /opt # wget --no-cookies --no-check-certificate--header "cookie: gpw_e24 = http%3a%2f%2fwww.Oracle.com%2f; oraclelicense = menerima-securebackup-cookie "" http: // muat turun.Oracle.com/OTN-PUB/Java/JDK/8U102-B14/JRE-8U102-LINUX-X64.RPM " # RPM -UVH JRE-8U102-LINUX-X64.rpm 

Masa untuk memeriksa sama ada pemasangan selesai dengan jayanya:

# java -versi 
Semak versi Java dari CommandLine

Untuk memasang versi terkini Elasticsearch, Logstash, dan Kibana, Kita mesti membuat repositori untuk yum secara manual seperti berikut:

Dayakan repositori Elasticsearch

1. Import kunci GPG Public Elasticsearch kepada Pengurus Pakej RPM:

# rpm --import http: // pakej.elastik.CO/GPG-KEY-ELASTICSEARK 

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

/etc/yum.repos.D/Elasticsearch.repo
[elasticsearch] name = elasticsearch repository baseurl = http: // pakej.elastik.co/elasticsearch/2.x/centos gpgcheck = 1 gpgkey = http: // pakej.elastik.CO/GPG-KEY-ELASTICSEARK ENDLED = 1 

3. Pasang pakej Elasticsearch.

# yum pasang elasticsearch 

Apabila pemasangan selesai, anda akan diminta untuk memulakan dan membolehkan Elasticsearch:

Pasang Elasticsearch di Linux

4. Mulakan dan aktifkan perkhidmatan.

# Systemctl Daemon-Reload # Systemctl Dayakan Elasticsearch # Systemctl Mula Elasticsearch 

5. Benarkan lalu lintas melalui port TCP 9200 di firewall anda:

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

6. Semak jika Elasticsearch bertindak balas terhadap permintaan mudah Http:

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

Output perintah di atas harus sama dengan:

Sahkan pemasangan Elasticsearch

Pastikan anda melengkapkan langkah -langkah di atas dan kemudian teruskan Logstash. Sejak kedua -duanya Logstash dan Kibana Kongsi Elasticsearch GPG kunci, tidak perlu memadamkannya semula sebelum memasang pakej.

Cadangan Baca: Urus log sistem (konfigurasikan, putar dan import ke pangkalan data) di CentOS 7

Dayakan repositori Logstash

7. Masukkan baris berikut ke fail konfigurasi repositori Logstash.repo:

/etc/yum.repos.D/Logstash.repo
[LogStash] name = Logstash baseUrl = http: // pakej.Elasticsearch.org/logstash/2.2/CentOS gpgCheck = 1 gpgkey = http: // pakej.Elasticsearch.org/gpg-key-elasticsearch enabled = 1 

8. Pasang Logstash Pakej:

# yum pasang logstash 

9. Tambahkan SSL sijil berdasarkan alamat IP pelayan elk pada baris berikut di bawah [v3_ca] seksyen dalam /etc/pki/tls/openssl.cnf:

[v3_ca] subjekAltName = ip: 192.168.0.29 
Tambahkan alamat IP pelayan Elasticsearch

10. Menjana sijil yang ditandatangani sendiri yang sah untuk 365 Hari:

# cd/etc/pki/tls # openssl req -config/etc/pki/tls/openssl.CNF -X509 -Day 3650 -Batch -Nodes -Newkey RSA: 2048 -Keyout Private/Logstash -Forwarder.Key -out Certs/Logstash -Forwarder.Crt 

11. Konfigurasikan Logstash Input, output, dan fail penapis:

Input: Buat /etc/logstash/conf.d/input.Conf dan masukkan baris berikut ke dalamnya. Ini perlu untuk logstash untuk "belajar"Cara memproses rentak yang datang dari pelanggan. Pastikan laluan ke sijil dan kunci sepadan dengan laluan yang betul seperti yang digariskan dalam langkah sebelumnya:

/etc/logstash/conf.d/input.Conf
input beats port => 5044 ssl => true ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.CRT "ssl_key =>"/etc/pki/tls/swasta/logstash-forwarder.kunci " 

Pengeluaran (/etc/logstash/conf.d/output.Conf) fail:

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

Penapis (/etc/logstash/conf.d/penapis.Conf) fail. Kami akan log mesej syslog untuk kesederhanaan:

/etc/logstash/conf.d/penapis.Conf
penapis if [type] == "syslog" grok match => "message" => "%syslogline" tarikh match => ["timestamp", "mmm d hh: mm: ss" , "Mmm dd hh: mm: ss"] 

12. Sahkan Logstash fail konfigurasi.

# Perkhidmatan logstash configtest 
Sahkan Konfigurasi Logstash

13. Mulakan dan aktifkan Logstash:

# Systemctl Daemon-Reload # Systemctl Mula Logstash # SystemCtl Dayakan Logstash 

14. Konfigurasikan firewall untuk membolehkan Logstash untuk mendapatkan log dari pelanggan (port TCP 5044):

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

Dayakan repositori kibana

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

/etc/yum.repos.d/kibana.repo
[kibana] name = kibana repository baseUrl = http: // pakej.elastik.co/kibana/4.4/CentOS gpgCheck = 1 gpgkey = http: // pakej.elastik.CO/GPG-KEY-ELASTICSEARK ENDLED = 1 

15. Pasang Kibana Pakej:

# yum pasang kibana 

16. Mulakan dan aktifkan kibana.

# Systemctl Daemon-Reload # Systemctl Mula Kibana # Systemctl Dayakan Kibana 

17. Pastikan anda boleh mengakses akses antara muka web Kibana dari komputer lain (biarkan lalu lintas di port TCP 5601):

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

18. Pelancaran Kibana (http: // 192.168.0.29: 5601) untuk mengesahkan bahawa anda boleh mengakses antara muka web:

Akses Antara Muka Web Kibana

Kami akan kembali ke sini setelah kami memasang dan mengkonfigurasi Filebeat pada pelanggan.

Cadangan Baca: Pantau log pelayan dalam masa nyata dengan "Log.alat IO "di linux

Pasang Filebeat pada pelayan klien

Kami akan menunjukkan kepada anda bagaimana untuk melakukan ini untuk Pelanggan #1 (Ulangi untuk Pelanggan #2 Selepas itu, menukar laluan jika berkenaan dengan pengedaran anda).

1. Salin sijil SSL dari pelayan ke pelanggan:

# scp/etc/pki/tls/certs/logstash-forwarder.CRT [dilindungi e -mel]:/etc/pki/tls/certs/ 

2. Import Elasticsearch Kunci GPG Awam kepada Pengurus Pakej RPM:

# rpm --import http: // pakej.elastik.CO/GPG-KEY-ELASTICSEARK 

3. Buat repositori untuk Filebeat (/etc/yum.repos.D/Filebeat.repo) dalam Centos Pengagihan berdasarkan:

/etc/yum.repos.D/Filebeat.repo
[filebeat] name = filebeat untuk klien elk baseurl = https: // pakej.elastik.co/beats/yum/el/$ basearch enabled = 1 gpgkey = https: // pakej.elastik.CO/GPG-KEY-ELASTICSEARK GPGCHECK = 1 

4. Konfigurasikan sumber untuk memasang Filebeat pada Debian dan derivatifnya:

# Aptitude Pasang Apt-Transport-Https # echo "Deb https: // Pakej.elastik.co/beats/apt stabil utama ">/etc/apt/sumber.senarai.D/Filebeat.Senaraikan # kemas kini kebolehan 

5. Pasang Filebeat Pakej:

# yum pasang filebeat [on Centos dan distros berasaskan] # Aptitude Pasang Filebeat [on Debian dan derivatifnya] 

6. Mulakan dan aktifkan FileBeat:

# Systemctl Mula Filebeat # SystemCtl Dayakan FileBeat 

Konfigurasikan FileBeat

Perkataan yang berhati -hati di sini. Filebeat Konfigurasi disimpan dalam a Yaml fail, yang memerlukan lekukan yang ketat. Berhati -hati dengan ini semasa anda mengedit /etc/filebeat/filebeat.yml seperti berikut:

  1. Di bawah jalan, Nyatakan fail log mana yang harus "dihantar" ke pelayan rusa.
  2. Di bawah prospek:
input_type: log document_type: syslog 
  1. Di bawah pengeluaran:
    1. Uncomment garis yang bermula dengan Logstash.
    2. Nyatakan alamat IP pelayan dan port elk anda di mana logstash sedang mendengar tuan rumah.
    3. Pastikan laluan ke sijil menunjuk ke fail sebenar yang anda buat Langkah i (Logstash seksyen) di atas.

Langkah -langkah di atas digambarkan dalam imej berikut:

Konfigurasikan Filebeat di Pelayan Pelanggan

Simpan perubahan, dan kemudian mulakan semula Filebeat pada pelanggan:

# Systemctl mulakan semula fail 

Sebaik sahaja kami telah menyelesaikan langkah -langkah di atas pada pelanggan, jangan ragu untuk meneruskan.

Ujian Filebeat

Untuk mengesahkan bahawa balak dari pelanggan boleh dihantar dan diterima dengan jayanya, jalankan arahan berikut di Rusa pelayan:

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

Output mestilah serupa dengan (perhatikan bagaimana mesej dari /var/log/mesej dan /var/log/selamat diterima dari klien1 dan klien2):

Ujian Filebeat

Jika tidak, periksa Filebeat fail konfigurasi untuk kesilapan.

# Journalctl -xe 

Setelah cuba memulakan semula FileBeat akan menunjukkan anda ke garis yang menyinggung perasaan.

Menguji Kibana

Setelah kami mengesahkan bahawa balak dihantar oleh pelanggan dan berjaya diterima di pelayan. Perkara pertama yang perlu kita lakukan Kibana sedang mengkonfigurasi corak indeks dan tetapkannya sebagai lalai.

Anda boleh menerangkan indeks sebagai pangkalan data penuh dalam konteks pangkalan data hubungan. Kami akan pergi bersama filebeat-* (atau anda boleh menggunakan kriteria carian yang lebih tepat seperti yang dijelaskan dalam dokumentasi rasmi).

Masukkan filebeat-* di dalam Nama indeks atau medan corak dan kemudian klik Buat:

Menguji Kibana

Sila ambil perhatian bahawa anda akan dibenarkan memasukkan kriteria carian yang lebih baik kemudian. Seterusnya, klik bintang di dalam segi empat tepat hijau untuk mengkonfigurasinya sebagai corak indeks lalai:

Konfigurasikan corak indeks kibana lalai

Akhirnya, di Cari menu anda akan menemui beberapa bidang untuk ditambahkan pada laporan visualisasi log. Legung di atasnya dan klik Tambah:

Tambahkan Laporan Visualisasi Log

Hasilnya akan ditunjukkan di kawasan pusat skrin seperti yang ditunjukkan di atas. Jangan ragu untuk bermain -main (tambah dan keluarkan medan dari laporan log) untuk menjadi biasa Kibana.

Secara lalai, Kibana akan memaparkan rekod yang diproses semasa yang terakhir 15 Minit (lihat sudut kanan atas) tetapi anda boleh mengubah tingkah laku itu dengan memilih jangka masa yang lain:

Laporan Log Kibana

Ringkasan

Dalam artikel ini, kami telah menerangkan bagaimana untuk menyediakan timbunan rusa untuk mengumpul log sistem yang dihantar oleh dua pelanggan, centos 7 dan mesin debian 8.

Sekarang anda boleh merujuk kepada dokumentasi rasmi Elasticsearch dan cari lebih lanjut mengenai cara menggunakan persediaan ini untuk memeriksa dan menganalisis log anda dengan lebih cekap.

Sekiranya anda mempunyai pertanyaan, jangan ragu untuk bertanya. Kami berharap untuk mendengar daripada anda.