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.
addusersudo
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 dengansyslog
ditype
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.serviceTerakhir, kita dapat memulai kembali layanan Logstash-Forwarder untuk menerapkan perubahan konfigurasi.
sudo systemctl restart logstash-forwarder.serviceJika 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/ -RMengikuti langkah ini, kita dapat membuat file layanan systemd.
sudo touch /usr/lib/systemd/system/kibana.serviceTambahkan 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.targetSekarang kita perlu memuat ulang semua unit systemd, lalu mengaktifkan layanan Kibana.
sudo systemctl daemon-reloadsudo systemctl aktifkan kibana.serviceSekarang, kita bisa memulai Kibana.
sudo systemctl start kibana.servicePeriksa 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 tekanCreate
.![]()
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.
Cara Menginstal WordPress di CentOS 7.1 dengan Apache Apa itu Model Pengembangan Web Stateless dan StatefulLinux