PERSIAPAN
#Ref:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
Pertama instal Java 8 di Ubuntu 14.04
# Ref:https://www.liquidweb.com/kb/how-to-install-Oracle-java-8-on-ubuntu-14-04-lts/apt-get install python-software-properties software-properties-common
apt-add-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
java -version
Hasil: java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Memfasilitasi pembaruan semua paket melalui repositori APT
apt-get install apt-transport-https
Simpan definisi repositori ke /etc/apt/sources.list.d/elastic-5.x.list:echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
apt-get update
FILEBEAT
Menginstal filebeat
Filebeat membaca baris dari log yang ditentukan, memformatnya dengan benar, dan meneruskannya ke logstash sambil mempertahankan aliran pipa yang tidak menyumbat
Ref:https://github.com/elastic/beats/tree/master/filebeat
Ref:https://www.elastic.co/guide/en/beats/filebeat/5.5/filebeat-getting-started.html
Ref:https://www.elastic.co/products/beats/filebeat
apt-get install filebeat
mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.orig
touch /etc/filebeat/filebeat.yml
mcedit /etc/filebeat/filebeat.yml
(konten)
—————————
filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]
—————————service filebeat restart
LOGSTASH
Unduh paket instalasi logstash debian dan konfigurasikan
# Ref:https://www.elastic.co/downloads/logstashapt-get install logstash
# Hasil:.......
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash
Menyiapkan Logstash
mcedit /etc/logstash/startup.options
(tambahkan baris berikut di awal)LS_CONFIGS_DIR=/etc/logstash/conf.d/
(Kemudian sesuaikan baris berikut sebagai berikut)
dari:LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"
ke:LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIGS_DIR}"
Mulai/Hentikan/Mulai ulang logstash service logstash {start|stop|restart}
Pengujian logstash cd /etc/logstash/ ; /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
Ketik:hello world
dan tekan CTRL-D
(Logstash menambahkan informasi stempel waktu dan alamat IP ke pesan. Keluar dari Logstash dengan mengeluarkan perintah CTRL-D di shell tempat Logstash dijalankan.)
Hasil:
ERROR StatusLogger Tidak ada file konfigurasi log4j2 yang ditemukan. Menggunakan konfigurasi default:hanya mencatat kesalahan ke konsol.
PERINGATAN:Tidak dapat menemukan logstash.yml yang biasanya terletak di $LS_HOME/config atau /etc/logstash. Anda dapat menentukan jalur menggunakan –path.settings. Melanjutkan penggunaan default
Tidak dapat menemukan konfigurasi log4j2 di jalur //usr/share/logstash/config/log4j2.properties. Menggunakan konfigurasi default yang masuk ke konsol
11:22:59.822 [[main]-pipeline-manager] INFO logstash.pipeline – Memulai pipeline {“id”=>”main”, “pipeline.workers”=>2 , “pipeline.batch.size”=>125, “pipeline.batch.delay”=>5, “pipeline.max_inflight”=>250}
11:22:59.847 [[main]-pipeline-manager] INFO logstash.pipeline – Pipa utama dimulai
Plugin stdin sekarang menunggu input:
2017-08-23T09:22:59.878Z h270746.stratoserver.net tes 1
11:22:59.946 [Api Webserver] INFO logstash.agent – Berhasil memulai titik akhir API Logstash {:port=>9601}
11:23:02.861 [LogStash::Runner] WARN logstash.agent – menghentikan pipeline {:id=>” utama”}
Kesalahan dan peringatan tidak masalah untuk saat ini. Baris hasil utama di atas yang signifikan adalah:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
yang menambahkan timestamp dan nama server ke string input (test 1)
Mengonfigurasi logstash
# Catatan:konfigurasi pengujian ini akan mendapatkan input dari filebeat dan output menjadi file log yang dapat dilihat dengan tail -f …..mcedit /etc/logstash/conf.d/apache2.conf
(konten)input {
beats {
port => 5044
type => "apache"
}
}
filter {
if [type] == "apache" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
}
output {
file {
path => "/var/log/logstash_output.log"
}
}
Agar output yang tepat dikirim ke elasticsearch, gunakan konfigurasi output ini sebagai gantinya:
———————————-output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
Mengamankan Filebeat => Logstash dengan SSL
Ref:https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html#configuring-ssl-logstash
Catatan:Mengetik dengan tangan di bawah ini dicetak tebal.
Siapkan direktori sertifikat: mkdir -p /etc/logstash/certs/Logstash/ /etc/logstash/certs/Beats/
Buat sertifikat klien untuk FileBeat: /usr/share/elasticsearch/bin/x-pack/certgen
........
Let's get started...
Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Beats/certificate-bundle_Beats.zip
Enter instance name: Beats
Enter name for directories and files : Beats
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Beats/certificate-bundle_Beats.zip
Buat sertifikat klien untuk Logstash: /usr/share/elasticsearch/bin/x-pack/certgen
........
Let's get started...
Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip
Enter instance name: Logstash
Enter name for directories and files : Logstash
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip
File ini harus diamankan dengan baik karena berisi kunci pribadi untuk semua
instance dan otoritas sertifikat.
Setelah membuka ritsleting file, akan ada direktori untuk setiap instance yang berisi
sertifikat dan kunci pribadi. Salin sertifikat, kunci, dan sertifikat CA
ke direktori konfigurasi produk Elastic yang akan digunakan
dan ikuti petunjuk konfigurasi SSL di panduan produk.
Untuk aplikasi klien, Anda mungkin hanya perlu menyalin sertifikat CA dan
mengonfigurasi klien untuk memercayai sertifikat ini.
Ekstrak sertifikat: unzip /etc/logstash/certs/Beats/certificate-bundle_Beats.zip -d /etc/logstash/certs/Beats/
unzip /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip -d /etc/logstash/certs/Logstash/
Mengonversi kunci Logstash Logstash.key dari format PKCS#1 ke PKCS#8:
Alasan:pesan kesalahan berikut di logstash.log terjadi saat menggunakan format PKCS1:
[ERROR][logstash.inputs.beats ] Sepertinya Anda memiliki kunci yang tidak valid atau kunci pribadi Anda tidak dalam format PKCS8. {:exception=>java.lang.IllegalArgumentException:File tidak berisi kunci pribadi yang valid:/etc/logstash/certs/Logstash/Logstash/Logstash.key}
Lihat:https://github.com/spujadas/elk-docker/issues/112
Perintah: openssl pkcs8 -in /etc/logstash/certs/Logstash/Logstash/Logstash.key -topk8 -nocrypt -out /etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8
Konfigurasikan Beats untuk SSL
Konten /etc/filebeat/filebeat.yml filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]
ssl.certificate_authorities: ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl.certificate: "/etc/logstash/certs/Beats/Beats/Beats.crt"
ssl.key: "/etc/logstash/certs/Beats/Beats/Beats.key"
Isi /etc/logstash/conf.d/apache.conf input {
beats {
port => 5044
ssl => true
ssl_certificate_authorities => ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl_certificate => "/etc/logstash/certs/Logstash/Logstash/Logstash.crt"
ssl_key => "/etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8"
ssl_verify_mode => "force_peer"
}
}
Mulai ulang Logstash dan Filebeat service logstash restart
service filebeat restart
CATATAN: Saya masih mengalami masalah dengan koneksi SSL Filebeat ke Logstash tempat Filebeat menampilkan kesalahan ini (/var/log/logstash/logstash-plain.log):
kesalahan internal TLS.
URL berikut tampaknya telah menemukan beberapa masalah serupa tetapi karena kurangnya waktu saya belum menemukan jawabannya.
https://discuss.elastic.co/t/mutual-tls-filebeat-to-logstash-fails- with-remote-error-tls-internal-error/85271/3
X-Pack untuk Logstash
INSTAL X-Pack untuk logstash
X-Pack adalah ekstensi Elastic Stack yang menggabungkan keamanan, peringatan, pemantauan, pelaporan, pembelajaran mesin, dan kemampuan grafik ke dalam satu paket yang mudah dipasang.
X-Pack juga menyediakan UI pemantauan untuk Logstash.
/usr/share/logstash/bin/logstash-plugin instal x-pack
Hasil:
Mengunduh file:https://artifacts.elastic.co/downloads/logstash-plugins/x-pack/x-pack-5.5.2.zip
Mengunduh [=============================================================] 100%
Menginstal file:/tmp/studtmp-bc1c884de6d90f1aaa462364e5895b6b08b050f0b64587b4f5e0a8ec5300/x-pack-5.5.2.zip
Instalasi berhasil
Konfigurasi X-Pack di Logstash:
Pengaturan default yang dibuat selama penginstalan berfungsi paling baik untuk sebagian besar kasus. Untuk informasi lebih lanjut, lihat:
https://www.elastic.co/guide/en/logstash/5.5/settings-xpack.html
Untuk Mencegah pembuatan pesan kesalahan pemantauan di logstash.log edit /etc/logstash/logstash.yml dan tambahkan baris berikut di akhir:
(Ref:https://discuss.elastic.co/t/logstash- break-when-disable-certain-x-pack-features/89511)
xpack.monitoring.enabled: false
ElasticSearch
Pemasangan: apt-get install elasticsearch
Start/Stop/Restart Elastic search:/etc/init.d/elasticsearch {start|stop|restart}
Untuk memeriksa apakah elasticsearch telah dimulai:ps aux | grep $(cat /var/run/elasticsearch/elasticsearch.pid)
Contoh hasil(terpotong):elastic+ 10978 3.2 55.2 4622152 2319168 pts/3 Sl 15:44 0:10 /usr/lib/jvm/java-8-oracle/bin/java ........
Periksa file log Elasticsearch:tail -f /var/log/elasticsearch/elasticsearch.log
CATATAN 1:
Jika Anda melihat baris:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] max area memori virtual vm.max_map_count [65530] terlalu rendah, tingkatkan setidaknya [262144]
dan hasil dari perintah berikut ini kosong,
grep vm.max_map_count /etc/sysctl.conf
Solusi:
Naikkan max virtual memory area vm.max_map_count ke 262144 sebagai berikut:
Tambahkan baris berikut di file /etc/sysctl.conf
vm.max_map_count=262144
Dan jalankan perintah:sysctl -w vm.max_map_count=262144
ATAUecho 262144 > /proc/sys/vm/max_map_count
JUGA Pastikan file konfigurasi elasticsearch (/etc/elasticsearch/jvm.options ) memiliki entri berikut:-Xms2g
-Xmx2g
PENTING:
jika perintah berikut gagal, mungkin karena beberapa Server Virtual tidak mengizinkan perubahan seperti itu di kernel:
mis.sysctl -w vm.max_map_count=262144
sysctl:izin ditolak pada kunci 'vm.max_map_count'echo 262144 > /proc/sys/vm/max_map_count
-bash:/proc/sys/vm/max_map_count:Izin ditolak
Pencarian elastis harus tetap dapat berjalan tetapi mungkin terbatas dalam kinerja dan mungkin memiliki masalah lain karena keterbatasan ini.
Tidak ada solusi yang diketahui untuk ini untuk server Strato VM.
CATATAN 2:
Jika Anda melihat baris:
[WARN ][i.n.u.i.MacAddressUtil ] Gagal menemukan alamat perangkat keras yang dapat digunakan dari antarmuka jaringan; menggunakan byte acak:……..
Solusi:
Tidak perlu khawatir, keakuratan alamat MAC tidak begitu penting dalam instalasi ini.
CATATAN 3
Jika Anda melihat baris:
[WARN ][o.e.b.BootstrapChecks ] [wJdCtOd] filter panggilan sistem gagal dipasang; periksa log dan perbaiki konfigurasi Anda atau nonaktifkan filter panggilan sistem dengan risiko Anda sendiri
Jika masalah ini terjadi, elasticsearch akan dimulai tetapi tidak diinisialisasi dengan benar dan kemungkinan besar tidak berfungsi dengan benar.
Solusi:
Jika elasticsearch hanya diakses di lingkungan yang dilindungi, menonaktifkan pemasangan filter panggilan sistem ini seharusnya tidak menjadi masalah
dengan mengedit file /etc/elasticsearch/elasticsearch.yml dan menambahkan baris berikut:bootstrap.system_call_filter: false
Mulai ulang elasticsearch:service elasticsearch restart
—————————————————————————
X-Pack untuk elasticsearch
X-Pack adalah ekstensi Elastic Stack yang menggabungkan keamanan, peringatan, pemantauan, pelaporan, pembelajaran mesin, dan kemampuan grafik ke dalam satu paket yang mudah dipasang.
Pemasangan: /usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack
Hasil: -> Downloading x-pack from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission \\.\pipe\* read,write
* java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.RuntimePermission setFactory
* java.security.SecurityPermission createPolicy.JavaPolicy
* java.security.SecurityPermission getPolicy
* java.security.SecurityPermission putProviderProperty.BC
* java.security.SecurityPermission setPolicy
* java.util.PropertyPermission * read,write
* java.util.PropertyPermission sun.nio.ch.bugLevel write
* javax.net.ssl.SSLPermission setHostnameVerifier
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin forks a native controller @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
This plugin launches a native controller that is not subject to the Java
security manager nor to system call filters.
Continue with installation? [y/N]y
-> Installed x-pack
KIBANA
Instal paket kibanaapt install kibana
Instal X-Pack untuk logstash
X-Pack adalah ekstensi Elastic Stack yang menggabungkan keamanan, peringatan, pemantauan, pelaporan, pembelajaran mesin, dan kemampuan grafik ke dalam satu paket yang mudah dipasang./usr/share/kibana/bin/kibana-plugin install x-pack
Ubah kata sandi pengguna bawaan
Ref:https://www.elastic.co/guide/en/x-pack/5.5/setting-up-authentication.html#reset-built-in- kata sandi pengguna
ubah kata sandi
curl -XPUT 'localhost:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "elasticpassword"
}
'curl -XPUT 'localhost:9200/_xpack/security/user/kibana/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "kibanapassword"
}
'curl -XPUT 'localhost:9200/_xpack/security/user/logstash_system/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "logstashpassword"
}
'
Perbarui server Kibana dengan kata sandi baru /etc/kibana/kibana.yml elasticsearch.password: kibanapassword
Perbarui konfigurasi Logstash dengan kata sandi baru /etc/logstash/logstash.yml xpack.monitoring.elasticsearch.password: logstashpassword
Nonaktifkan Fungsi Kata Sandi Default /etc/elasticsearch/elasticsearch.yml xpack.security.authc.accept_default_password: false
Start/Stop/Restart kibanaservice kibana {start|stop|restart}