GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal ELK Stack di Debian 8

Pengantar

Tumpukan ELK adalah seperangkat alat populer yang terdiri dari Elasticsearch, Logstash, dan Kibana. Ketiga alat ini membentuk tumpukan perangkat lunak yang dapat berfungsi sebagai analitik data jaringan terpusat yang sangat kuat dan alat visualisasi log server. Tumpukan ELK juga dirancang untuk sangat mampu melakukan penskalaan di beberapa server untuk penyeimbangan beban. Dalam how-to ini kita akan menginstal semua komponen ELK stack ke dalam satu server.

Prasyarat

  • Server yang menjalankan Debian 8. Jika Anda belum memiliki server, Atlantic.net menawarkan server hosting VPS andal yang dapat Anda putar dalam waktu kurang dari 30 detik.

Sistem operasi lain didukung, tetapi artikel ini berkonsentrasi pada Debian 8.

Menginstal ELK Stack di Debian 8

Sudo

Melakukan pekerjaan sebagai pengguna root umumnya tidak disarankan dari sudut pandang keamanan. Menggunakan sudo memungkinkan Anda untuk menjalankan perintah yang memerlukan hak akses root dari pengguna non-root. Secara default, Debian tidak menyertakan sudo paket, jadi kami akan menginstalnya.

apt-get install sudo

Anda kemudian perlu menambahkan akun pengguna standar ke sudo grup yang Anda inginkan untuk dapat menjalankan perintah hak akses root. Ganti <username> dengan nama pengguna akun.

adduser  sudo

Keluar dan masuk kembali dengan pengguna baru Anda, dan kami dapat melanjutkan.

Pertama kali Anda menggunakan sudo dalam suatu sesi akan meminta Anda memasukkan sandi pengguna saat ini.

Menginstal Elasticsearch

Mari kita mulai prosesnya dengan menginstal Java di server kita.

Elasticsearch, pengindeksan data dan komponen pencarian dari tumpukan ELK, membutuhkan Java untuk dijalankan. Kami akan menginstal rilis OpenJDK 7, namun, Anda dapat menginstal JRE apa pun yang tercantum pada matriks dukungan untuk Elasticsearch.

Pertama, kita perlu memperbarui daftar paket di server kita.

sudo apt-get update

Sekarang kita dapat menginstal JRE.

sudo apt-get install openjdk-7-jre

Instalasi ini mungkin memakan waktu cukup lama karena ada banyak dependensi yang harus diselesaikan oleh APT.

Setelah selesai, kita dapat menginstal Elasticsearch. Versi Elasticsearch di repositori resmi Debian sudah sangat tua dan tidak didukung oleh versi Kibana yang lebih baru, jadi kami akan menambahkan repositori elastic.co ke server kami dan menginstal Elasticsearch dari sana.

Unduh dan instal kunci penandatanganan repositori untuk elastic.co.

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Selanjutnya kita dapat menambahkan repositori ke /etc/apt/sources.list.d/ direktori.

echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/Elasticsearch-2.x.list

Pada titik ini kita perlu memperbarui daftar paket lagi, yang akan menambahkan versi terbaru dari Elasticsearch dari repositori elastic.co ke daftar paket.

sudo apt-get update

Sekarang, kita dapat menginstal Elasticsearch.

sudo apt-get install elasticsearch

Kami juga perlu mengonfigurasi layanan Elasticsearch untuk diluncurkan saat startup sistem.

sudo systemctl daemon-reloadsudo systemctl aktifkan elasticsearch.service

Itu dia! Sekarang Anda dapat memulai layanan Elasticsearch.

sudo systemctl start elasticsearch.service

Dan pastikan itu aktif.

systemctl status elasticsearch.service

Konfigurasi Elasticsearch

Dalam kasus kami ini tidak perlu, tetapi jika Anda akan menjalankan Kibana dan Elasticsearch di server yang berbeda (seperti yang dilakukan oleh banyak penerapan ELK), maka Anda perlu mengedit file konfigurasi Elasticsearch, /etc/elasticsearch/elasticsearch.yml di server Elasticsearch, dan tambahkan dua baris berikut di mana saja di file:

http.cors.allow-origin:"/.*/"http.cors.enabled:true

Untuk file yang sama, tambahkan baris untuk memberi nama cluster Elasticsearch. Nama defaultnya adalah elasticsearch.

cluster.name:elasticcluster

Mengedit file konfigurasi Elasticsearch

Pastikan untuk tidak menambahkan baris atau spasi kosong ke file konfigurasi, karena file YAML sensitif terhadap spasi.

Dan kemudian restart daemon Elasticsearch.

sudo systemctl restart elasticsearch.service

Sekali lagi, pastikan daemon berjalan dengan sukses.

systemctl status elasticsearch.service

Status layanan pencarian elastis

Menginstal Logstash

Kita dapat menginstal Logstash, komponen pengiriman dan transformasi log dari tumpukan ELK, dengan cara yang sangat mirip dengan Elasticsearch.

Jika Anda telah mengikuti cara ini, Anda sudah menambahkan kunci penandatanganan paket Elastic.co. Dengan demikian kita dapat melewati bagian itu dan segera menambahkan repositori logstash Elastic.co ke /etc/apt/sources.list.d/ kita .

echo "deb http://packages.elastic.co/logstash/2.0/debian stable main" | sudo tee -a /etc/apt/sources.list

Dan, tentu saja, perbarui daftar paket.

sudo apt-get update

Selanjutnya, kita dapat menginstal Logstash.

sudo apt-get install logstash

Seperti halnya Elasticsearch, kita perlu mengaktifkan Logstash saat startup sistem.

sudo systemctl daemon-reloadsudo systemctl aktifkan logstash.service

Sekarang kita bisa memulai Logstash.

sudo systemctl start logstash.service

Dan pastikan itu berjalan.

systemctl status logstash.service

Sekarang kita dapat melanjutkan untuk mengonfigurasinya!

Konfigurasi Logstash

Logstash menggunakan file konfigurasi yang terletak di /etc/logstash/conf.d . Kita perlu membuat tiga file baru di direktori itu karena tidak ada konfigurasi default.

cd /etc/logstash/conf.dsudo touch 01-input.conf 10-syslog.conf 30-lumberjack-output.conf

Kami akan menggunakan file pertama, 01-input.conf , untuk menentukan bagaimana Lumberjack akan mendengarkan log yang masuk.

Buka file untuk diedit (ganti editor teks yang Anda inginkan, jika Anda mau).

editor sudo 01-input.conf

Tambahkan blok berikut:

input { penebang { port => 5000 type => "logs" ssl_certificate => "/etc/ssl/certs/logstash-forwarder.crt" ssl_key => "/etc/ssl/logstash-forwarder.key" } }

Simpan dan tutup file.

Jangan khawatir tentang sertifikat SSL. Kami akan segera membuatnya.

Selanjutnya, kita perlu menambahkan konfigurasi filter ke 10-syslog.conf . Filter dapat mencocokkan dengan pesan masuk (log) dan menerapkan transformasi ke data sebelum mengindeksnya di Elasticsearch.

Buka file di editor Anda,

editor sudo 10-syslog.conf

dan tambahkan berikut ini:

filter { if [type] =="syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[ %{POSINT:syslog_pid}\])?:%{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } syslog_pri { } tanggal { cocok => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } }}

Filter ini memotong setiap log masuk yang cocok dengan format syslog standar, lalu menambahkan bidang stempel waktu dan nama host ke setiap pesan. Itu juga mengekstrak beberapa informasi dari pesan log seperti PID syslog, program mana yang menghasilkan pesan, dan pesan syslog itu sendiri.

Filter baru perlu ditulis untuk setiap jenis log baru yang ingin Anda gunakan dengan Logstash/Elasticsearch.

Terakhir, kita dapat pergi ke file konfigurasi output, 30-lumberjack-output.conf . File ini akan berisi blok keluaran sederhana yang menentukan bahwa pesan yang diindeks harus dikirim ke Elasticsearch, dan nama cluster.

Buka file di editor Anda.

editor sudo 30-lumberjack-output.conf

Tambahkan blok berikut:

keluaran { elasticsearch { host => ["localhost"] }}

Sekarang kita akan membuat sertifikat SSL untuk tumpukan ELK Anda.

Buat Sertifikat SSL

Protokol Lumberjack yang digunakan Logstash untuk mengomunikasikan pesan log dirancang agar aman dari ujung ke ujung, dan SSL adalah persyaratan yang sulit. Namun jangan khawatir, cukup mudah untuk membuat sertifikat.

Karena kami menggunakan alamat IP daripada nama host untuk servers direktif di /etc/logstash-forwarder.conf , kita perlu menambahkan bidang IP SAN ke sertifikat SSL yang dihasilkan. Sertakan satu dengan menambahkan subjectAltName baris ke file konfigurasi OpenSSL, /etc/ssl/openssl.cnf .

editor sudo /etc/ssl/openssl.cnf

Cari baris yang berisi [ v3_ca ] , dan masukkan baris berikut di bawahnya. (Ganti 127.0.0.1 dengan alamat IP server Logstash Anda, jika Logstash diinstal pada server terpisah.)

[ v3_ca ]subjectAltName =IP:127.0.0.1

Simpan dan tutup file. Kami sekarang dapat membuat sertifikat SSL.

sudo openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout /etc/ssl/logstash-forwarder.key -out /etc/ssl/certs/logstash-forwarder.crtsudo chown logstash:logstash /etc/ ssl/logstash-forwarder.keysudo chmod 600 /etc/ssl/logstash-forwarder.key

Sekarang, mulai ulang logstash dan periksa apakah sudah dimulai dengan benar.

sudo systemctl restart logstash.servicesystemctl status logstash.service

Status layanan logstash

Meskipun sudah dimulai, periksa file log di /var/log/logstash/logstash.* dan pastikan tidak ada kesalahan saat memulai.

Menginstal Logstash-Forwarder

Sekarang kita telah menginstal komponen sisi server Logstash, kita perlu menginstal klien Logstash-Forwarder di setiap server yang lognya ingin Anda pantau.

Dalam tutorial ini, kita akan menginstal Logstash-Forwarder di server yang sama yang menjalankan ELK lainnya, tetapi biasanya Logstash-Forwarder akan berjalan di server lain.

Pertama, sekali lagi kita perlu menambahkan repositori baru ke sistem.

echo "deb http://packages.elasticsearch.org/logstashforwarder/debian stable main" | sudo tee -a /etc/apt/sources.list.d/logstash-forwarder.list

Dan, sekali lagi, perbarui daftar paket.

sudo apt-get update

Sekarang, kita dapat menginstal Logstash-Forwarder.

sudo apt-get install logstash-forwarder

Setelah instalasi selesai, buka file konfigurasi untuk Logstash-Forwarder.

editor sudo /etc/logstash-forwarder.conf

Hapus konfigurasi default yang ada, dan tambahkan blok berikut:

{ "jaringan":{ "server":[ "127.0.0.1:5000" ], "batas waktu":15, "ssl ca":"/etc/ssl/certs/logstash-forwarder.crt" }, "file":[ { "paths":[ "/var/log/syslog", "/var/log/auth.log" ], "fields":{ "type":"syslog" } } ]} 

Konfigurasi ini akan memeriksa /var/log/syslog dan /var/log/auth.log untuk entri baru dan kemudian akan menandai setiap pesan keluar dari file tersebut dengan syslog di type lapangan.

Jika Anda menginstal Logstash-Forwarder pada host terpisah, pastikan untuk mengubah servers direktif untuk memasukkan alamat IP dari server jarak jauh. Selain itu, pastikan Anda menyalin file sertifikat SSL ke lokasi yang benar di server jauh.

Sekarang, kita akan mengaktifkan Logstash-Forwarder saat boot.

sudo systemctl daemon-reloadsudo systemctl aktifkan logstash-forwarder.service

Terakhir, kita dapat memulai kembali layanan Logstash-Forwarder untuk menerapkan perubahan konfigurasi.

sudo systemctl restart logstash-forwarder.service

Jika daemon mulai baik-baik saja, kita dapat melanjutkan untuk menyiapkan Kibana dan menyiapkan dan menjalankan ELK lengkap.

systemctl status logstash-forwarder.service

Status layanan penerusan logstash

Untuk memeriksa apakah logstash-forwarder berfungsi, lihat file log untuk mengetahui peristiwa yang sedang diproses.

tail -f /var/log/logstash-forwarder/*

File log Logstash-Forwarder

Menginstal Kibana

Sayangnya, saat artikel ini ditulis, elastic.co tidak menawarkan versi paket Kibana, meninggalkan manajemen daemon kepada pengguna. Kita perlu membuat file layanan systemd dan menginstal Kibana secara manual.

Arahkan ke /opt direktori dan unduh Kibana.

cd /optwget -qO - https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz | sudo tar -xzf -

Kita perlu membuat pengguna baru untuk menjalankan Kibana sebagai dan mengatur kepemilikan direktori program.

sudo useradd kibanasudo chown kibana:kibana kibana-4.3.0-linux-x64/ -R

Mengikuti langkah ini, kita dapat membuat file layanan systemd.

sudo touch /usr/lib/systemd/system/kibana.service

Tambahkan definisi layanan ke file.

sudo editor /usr/lib/systemd/system/kibana.service[Unit]Description=kibanaDocumentation=http://www.elastic.coWants=network-online.targetAfter=network-online.target[Service]User=kibanaGroup=kibanaExecStart=/opt/kibana-4.3.0-linux-x64/bin/kibanaRestart=alwaysStandardOutput=null# Menghubungkan kesalahan standar ke journalStandardError=journal[Install]WantedBy=multi-user.target

Sekarang kita perlu memuat ulang semua unit systemd, lalu mengaktifkan layanan Kibana.

sudo systemctl daemon-reloadsudo systemctl aktifkan kibana.service

Sekarang, kita bisa memulai Kibana.

sudo systemctl start kibana.service

Periksa ulang untuk memastikannya berjalan, dan kita mati!

systemctl status kibana.service

Status layanan Kibana

Konfigurasi Kibana

File konfigurasi Kibana utama akan berada di /opt/kibana-4.3.0-linux-x64/config/kibana.yml . Opsi default sudah cukup untuk cara ini, tetapi Anda dapat mengubah pengaturan sesuai kebutuhan untuk konfigurasi Anda.

Arahkan ke alamat IP server Anda di browser web, di port 5601, untuk mengakses halaman inisialisasi Kibana. Kibana akan meminta Anda untuk mengonfigurasi pola indeks; pilih received_at untuk nama bidang waktu dan tekan Create .

Buat pola Indeks di Kibana

Itu dia! Komponen tumpukan ELK Anda–Elasticsearch, Logstash, dan Kibana–terinstal dan beroperasi.

Ke Mana Harus Pergi Selanjutnya

Terima kasih telah mengikuti tutorial tentang menginstal tumpukan ELK di Debian 8. Silakan periksa kembali dengan kami lagi untuk artikel terkait, dan untuk menguji drive salah satu server VPS kami yang sangat cepat.


Linux
  1. Cara Menginstal Elasticsearch di Debian 9

  2. Cara Menginstal ELK Stack di Ubuntu 16.04

  3. Cara Menginstal MongoDB di Debian 11

  1. Cara Menginstal Elasticsearch di Debian 10

  2. Cara Memasang ELK Stack Di RHEL 8

  3. Cara Mengatur ELK Stack di Debian 10 / Debian 9

  1. Cara Memasang LEMP Stack di Debian 10

  2. Cara menginstal ELK Stack di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi ELK Stack di Ubuntu dan Debian