Tumpukan elastis secara luas dikenal sebagai tumpukan ELK , ini adalah grup produk sumber terbuka seperti Elasticsearch , Logstash dan Kibana . Elastis Stack dikembangkan dan dikelola oleh perusahaan Elastis. Dengan menggunakan elastic stack, seseorang dapat memasukkan log sistem ke Logstash, ini adalah mesin pengumpul data yang menerima log atau data dari semua sumber dan menormalkan log dan kemudian meneruskan log ke Elasticsearch untuk menganalisis , pengindeksan , menelusuri dan menyimpan dan terakhir menggunakan Kibana seseorang dapat merepresentasikan data visualisasi, dengan menggunakan Kibana kita juga dapat membuat grafik dan diagram interaktif berdasarkan kueri pengguna.
Pada artikel ini kami akan mendemonstrasikan cara mengatur cluster multi node elastic stack (ELK Stack) di server RHEL 8 / CentOS 8. Berikut adalah detail untuk Elastic Stack Cluster saya:
Elasticsearch:
- Tiga Server dengan Minimal RHEL 8 / CentOS 8
- IP &Hostname – 192.168.56.40 (elasticsearch1.linuxtechi. local), 192.168.56.50 (elasticsearch2.linuxtechi. local), 192.168.56.60 (elasticsearch3.linuxtechi. local)
Logstash:
- Dua Server dengan RHEL 8 / CentOS 8 minimal
- IP &Nama Inang – 192.168.56.20 (logstash1.linuxtechi. lokal), 192.168.56.30 (logstash2.linuxtechi. lokal)
Kibana:
- Satu Server dengan minimal RHEL 8 / CentOS 8
- Nama host – kibana.linuxtechi.local
- IP – 192.168.56.10
Filebeat:
- Satu Server dengan CentOS 7 minimal
- IP &nama host – 192.168.56.70 (server web)
Mari kita mulai dengan penyiapan cluster Elasticsearch,
Siapkan 3 node Elasticsearch cluster
Seperti yang telah saya nyatakan bahwa saya telah menyimpan node untuk cluster Elasticsearch, login ke setiap node, atur nama host dan konfigurasikan repositori yum/dnf.
Gunakan perintah hostnamectl di bawah ini untuk mengatur nama host pada masing-masing node,
[[email protected] ~]# hostnamectl set-hostname "elasticsearch1.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -hostname "elasticsearch2.linuxtechi. local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set-hostname "elasticsearch3.linuxtechi. local"[[email protected] ] ~]# exec bash[[email protected] ~]#
Untuk Sistem CentOS 8 kami tidak perlu mengkonfigurasi repositori paket OS apa pun dan untuk Server RHEL 8, jika Anda memiliki langganan yang valid dan kemudian berlangganan dengan Red Hat untuk mendapatkan repositori paket. Jika Anda ingin mengonfigurasi repositori yum/dnf lokal untuk paket OS, lihat url di bawah ini:
Cara Menyetel Repositori Yum/DNF Lokal di Server RHEL 8 Menggunakan File DVD atau ISO
Konfigurasikan repositori paket Elasticsearch di semua node, buat file elastic.repo di bawah folder /etc/yum.repos.d/ dengan konten berikut
~]# vi /etc/yum.repos.d/elastic.repo[elasticsearch-7.x]name=Elasticsearch repositori untuk 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
simpan &keluar dari file
Gunakan perintah rpm di bawah pada ketiga node untuk mengimpor kunci penandatanganan publik Elastic
~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Tambahkan baris berikut di file /etc/hosts di ketiga node,
192.168.56.40 elasticsearch1.linuxtechi.local192.168.56.50 elasticsearch2.linuxtechi.local192.168.56.60 elasticsearch3.linuxtechi.local
Instal Java di ketiga Node menggunakan perintah yum / dnf,
[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -y[[email protected] ~]# dnf install java-openjdk -yInstal Elasticsearch menggunakan perintah dnf di bawah pada ketiga node,
[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -y[[email protected] ~]# dnf install elasticsearch -yCatatan: Jika firewall OS diaktifkan dan berjalan di setiap node Elasticsearch, maka izinkan port berikut menggunakan perintah di bawah firewall-cmd,
~]# firewall-cmd --permanent --add-port=9300/tcp~]# firewall-cmd --permanent --add-port=9200/tcp~]# firewall-cmd --reloadKonfigurasi Elasticsearch, edit file “/etc/elasticsearch/elasticsearch.yml ” pada ketiga node dan tambahkan berikut ini,
~]# vim /etc/elasticsearch/elasticsearch.yml…………………………………………cluster.name:opn-clusterode.name:elasticsearch1.linuxtechi.localnetwork.host:192.168 .56.40http.port:9200discovery.seed_hosts:["elasticsearch1.linuxtechi.local", "elasticsearch2.linuxtechi.local", "elasticsearch3.linuxtechi.local"]cluster.initial_master_nodes:["elasticsearch1.linuxtechi.local", "elasticsearch2 .linuxtechi.local", "elasticsearch3.linuxtechi.local"]……………………………………………Catatan: pada Setiap node, tambahkan hostname yang benar di parameter node.name dan alamat ip di parameter network.host dan parameter lainnya akan tetap sama.
Sekarang Mulai dan aktifkan layanan Elasticsearch pada ketiga node menggunakan perintah systemctl berikut,
~]# systemctl daemon-reload~]# systemctl aktifkan elasticsearch.service~]# systemctl start elasticsearch.serviceGunakan perintah 'ss' di bawah ini untuk memverifikasi apakah simpul elasticsearch mulai mendengarkan pada port 9200,
[[email protected] ~]# ss -tunlp | grep 9200tcp DENGARKAN 0 128 [::ffff:192.168.56.40]:9200 *:* pengguna:(("java",pid=2734,fd=256)) [dilindungi]Gunakan perintah curl berikut untuk memverifikasi status cluster Elasticsearch
[[email protected] ~]# curl http://elasticsearch1.linuxtechi.local:9200[[email protected] ~]# curl -X GET http://elasticsearch2.linuxtechi.local:9200/_cluster/health ?cantikOutput perintah di atas akan menjadi seperti di bawah ini,
Output di atas mengkonfirmasi bahwa kami telah berhasil membuat 3 node cluster Elasticsearch dan status cluster juga hijau.
Catatan: Jika Anda ingin mengubah ukuran heap JVM maka Anda harus mengedit file “/etc/elasticsearch/jvm.options ” dan ubah parameter di bawah ini yang sesuai dengan lingkungan Anda,
- -Xms1g
- -Xmx1g
Sekarang mari kita pindah ke node Logstash,
Instal dan Konfigurasikan Logstash
Lakukan langkah-langkah berikut pada kedua node Logstash,
Login ke kedua node atur hostname menggunakan perintah hostnamectl berikut,
[[email protected] ~]# hostnamectl set-hostname "logstash1.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#[[email protected] ~]# hostnamectl set -hostname "logstash2.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#
Tambahkan entri berikut di file /etc/hosts di kedua node logstash
~]# vi /etc/hosts192.168.56.40 elasticsearch1.linuxtechi.local192.168.56.50 elasticsearch2.linuxtechi.local192.168.56.60 elasticsearch3.linuxpre>~]# vi /etc/hosts192.168.56.40 elasticsearch.Simpan dan keluar dari file
Konfigurasikan repositori Logstash di kedua node, buat file logstash.repo di bawah folder /ete/yum.repos.d/ dengan konten berikut,
~]# vi /etc/yum.repos.d/logstash.repo[elasticsearch-7.x]name=Elasticsearch repositori untuk 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7. x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-mdSimpan dan keluar dari file, jalankan perintah rpm berikut untuk mengimpor kunci penandatanganan
~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchInstal Java OpenJDK di kedua node menggunakan perintah dnf berikut,
~]# dnf install java-openjdk -yJalankan perintah dnf berikut dari kedua node untuk menginstal logstash,
[[email protected] ~]# dnf install logstash -y[[email protected] ~]# dnf install logstash -ySekarang konfigurasikan logstash, lakukan langkah-langkah di bawah ini pada kedua node logstash,
Buat file conf logstash, untuk itu pertama kita salin contoh file logstash di bawah ‘/etc/logstash/conf.d/’
# cd /etc/logstash/# cp logstash-sample.conf conf.d/logstash.confEdit file conf dan perbarui konten berikut,
# vi conf.d/logstash.confinput { beats { port => 5044 }}output { elasticsearch { hosts => ["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2. linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+ YYYY.MM.dd}" #user => "elastis" #password => "changeme" }}Di bawah bagian output, dalam parameter hosts, tentukan FQDN dari ketiga node Elasticsearch, parameter lain dibiarkan apa adanya.
Izinkan port logstash “5044” di firewall OS menggunakan perintah firewall-cmd berikut,
~ # firewall-cmd --permanent --add-port=5044/tcp~ # firewall-cmd –reloadSekarang mulai dan aktifkan layanan Logstash, jalankan perintah systemctl berikut di kedua node
~]# systemctl start logstash~]# systemctl mengaktifkan logstashGunakan perintah ss di bawah ini untuk memverifikasi apakah layanan logstash mulai mendengarkan pada 5044,
[[email protected] ~]# ss -tunlp | grep 5044tcp DENGARKAN 0 128 *:5044 *:* pengguna:(("java",pid=2416,fd=96) dilindungi] dilindungiOutput di atas mengonfirmasi bahwa logstash telah diinstal dan berhasil dikonfigurasi. Mari beralih ke instalasi Kibana.
Instal dan Konfigurasi Kibana
Masuk ke node Kibana, atur nama host dengan hostnameectl perintah,
[[email protected] ~]# hostnamectl set-hostname "kibana.linuxtechi.local"[[email protected] ~]# exec bash[[email protected] ~]#Edit file /etc/hosts dan tambahkan baris berikut
192.168.56.40 elasticsearch1.linuxtechi.local192.168.56.50 elasticsearch2.linuxtechi.local192.168.56.60 elasticsearch3.linuxtechi.localSiapkan repositori Kibana menggunakan yang berikut,
[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo[elasticsearch-7.x]name=Elasticsearch repositori untuk 7.x packagesbaseurl=https://artifacts.elastic.co /packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md[[email protected] ~]# rpm --import https:// artefak.elastic.co/GPG-KEY-elasticsearchJalankan perintah dnf di bawah ini untuk menginstal kibana,
[[email protected] ~]# yum install kibana -yKonfigurasi Kibana dengan mengedit file “/etc/kibana/kibana.yml ”
[[email protected] ~]# vim /etc/kibana/kibana.yml…………server.host:"kibana.linuxtechi.local"server.name:"kibana.linuxtechi.local"elasticsearch.hosts:["http://elasticsearch1.linuxtechi.local:9200", "http://elasticsearch2.linuxtechi.local:9200", "http://elasticsearch3.linuxtechi.local:9200"]…………Mulai dan aktifkan layanan kibana
[[email protected] ~]# systemctl start kibana[[email protected] ~]# systemctl enable kibanaIzinkan port Kibana '5601' di firewall OS,
[[email protected] ~]# firewall-cmd --permanent --add-port=5601/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#Akses portal / GUI Kibana menggunakan URL berikut:
http://kibana.linuxtechi.local:5601
Dari dasbor, kami juga dapat memeriksa status cluster Elastic Stack kami
Ini mengonfirmasi bahwa kami telah berhasil menyiapkan cluster Elastic Stack multi node di RHEL 8 / CentOS 8.
Sekarang mari kita mengirim beberapa log ke node logstash melalui filebeat dari server Linux lain, Dalam kasus saya, saya memiliki satu Server CentOS 7, saya akan mendorong semua log penting dari server ini ke logstash melalui filebeat.
Masuk ke server CentOS 7 dan instal paket filebeat menggunakan perintah rpm berikut,
[[email protected] ~]# rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpmRetrieving https://artifacts.elastic.co/downloads /beats/filebeat/filebeat-7.3.1-x86_64.rpmMempersiapkan... #################################### [100%]Memperbarui / menginstal... 1:filebeat-7.3.1-1 ################################################### ## [100%][[email protected] ~]#Edit file /etc/hosts dan tambahkan entri berikut,
192.168.56.20 logstash1.linuxtechi.local192.168.56.30 logstash2.linuxtechi.localSekarang konfigurasikan filebeat agar dapat mengirim log ke node logstash menggunakan teknik load balancing, edit file “/etc/filebeat/filebeat.yml ” dan tambahkan parameter berikut,
Di bawah 'filebeat.inputs: ' perubahan bagian 'diaktifkan:false ‘ menjadi ‘diaktifkan:benar ‘ dan di bawah “jalur ” parameter menentukan file log lokasi yang dapat kami kirim ke logstash, Di bagian output Elasticsearch, beri komentar “output.elasticsearch ” dan host parameter. Di bagian keluaran Logstash, hapus komentar untuk “output.logstash: ” dan “host: ” dan tambahkan kedua node logstash di parameter host dan juga “loadbalance:true ”.
[[email protected] ~]# vi /etc/filebeat/filebeat.yml……………………….filebeat.inputs:- type:log diaktifkan:true paths: - /var/log/messages - /var/log/dmesg - /var/log/maillog - /var/log/boot.log#output.elasticsearch: # hosts:["localhost:9200"]output.logstash: hosts:["logstash1.linuxtechi. local:5044", "logstash2.linuxtechi.local:5044"] loadbalance:true………………………………………Mulai dan aktifkan layanan filebeat menggunakan perintah systemctl di bawah,
[[email protected] ~]# systemctl start filebeat[[email protected] ~]# systemctl enable filebeatSekarang buka Kibana GUI, verifikasi apakah indeks baru terlihat atau tidak,
Pilih opsi Manajemen dari bilah sisi kiri lalu klik Manajemen Indeks di bawah Elasticsearch,
Seperti yang kita lihat di atas, indeks terlihat sekarang, mari kita buat pola indeks,
Klik "Pola Indeks" dari Bagian Kibana, itu akan meminta kita untuk membuat pola baru, klik "Buat Pola Indeks ” dan tentukan nama pola sebagai “filebeat ”
Klik Langkah Berikutnya
Pilih “Stempel waktu ” sebagai filter waktu untuk pola indeks lalu klik “Buat pola indeks”
Sekarang Klik Temukan untuk melihat pola indeks filebeat waktu nyata,
Ini mengonfirmasi bahwa agen Filebeat telah berhasil dikonfigurasi dan kami dapat melihat log waktu nyata di dasbor Kibana.
Itu saja dari artikel ini, jangan ragu untuk membagikan umpan balik dan komentar Anda jika langkah-langkah ini membantu Anda untuk mengatur Cluster Elastic Stack multi node pada sistem RHEL 8 / CentOS 8.
Langkah Instalasi CentOS 8 dengan Tangkapan Layar Cara Mengkonfigurasi Alamat IP Statis di RHEL 8 / CentOS 8Cent OS