GNU/Linux >> Belajar Linux >  >> Ubuntu

Menginstal Filebeat, Logstash, ElasticSearch, dan Kibana di Ubuntu 14.04

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/logstash
apt-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
ATAU
echo 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 kibana
apt 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 kibana
service kibana {start|stop|restart}


Ubuntu
  1. Menginstal tumpukan ELK di Ubuntu 14.04

  2. Cara menginstal Elasticsearch, Logstash dan Kibana 4 di Ubuntu 14.04 / 15.04

  3. Menginstal dan mengatur Php dan Nginx di Ubuntu 20.04

  1. Cara menginstal Elasticsearch, Logstash dan Kibana 4 di CentOS 7 / RHEL 7

  2. Cara Menginstal dan Mengonfigurasi Elasticsearch di Ubuntu 20.04

  3. Membangun Dan Menginstal Ibus-typing-booster Di Ubuntu?

  1. Hal yang harus dilakukan Setelah Menginstal Ubuntu 18.04 dan 19.10

  2. Cara Menginstal ELK Stack (Elasticsearch, Logstash, dan Kibana) di Ubuntu 18.04 / 20.04

  3. Instal Elasticsearch, Logstash, Dan Kibana Di Ubuntu 20.04