GNU/Linux >> Belajar Linux >  >> AlmaLinux

Cara Install Elasticsearch di AlmaLinux 8

Elasticsearch adalah mesin analitik dan penelusuran teks lengkap sumber terbuka yang sangat skalabel . Ini umumnya mesin/teknologi yang mendasari yang menggerakkan aplikasi dengan fitur dan persyaratan pencarian yang kompleks. Perangkat lunak ini mendukung operasi RESTful yang memungkinkan Anda untuk menyimpan, mencari, dan menganalisis volume data yang signifikan dengan cepat dan mendekati waktu nyata. Elasticsearch sangat disukai dan populer di kalangan sysadmin dan pengembang karena merupakan mesin pencari yang hebat berdasarkan perpustakaan Lucene.

Dalam tutorial berikut, Anda akan mempelajari cara menginstal Elastic Search di AlmaLinux 8 .

Prasyarat

  • OS yang Disarankan: AlmaLinux 8.
  • Akun pengguna: Akun pengguna dengan hak istimewa sudo atau akses root (perintah su) .

Memperbarui Sistem Operasi

Perbarui AlmaLinux . Anda sistem operasi untuk memastikan semua paket yang ada mutakhir:

sudo dnf upgrade --refresh -y

Tutorial akan menggunakan perintah sudo dan dengan asumsi Anda memiliki status sudo .

Untuk memverifikasi status sudo di akun Anda:

sudo whoami

Contoh keluaran yang menunjukkan status sudo:

[joshua@localhost ~]$ sudo whoami
root

Untuk mengatur akun sudo yang ada atau baru, kunjungi tutorial kami di Cara Menambahkan Pengguna ke Sudoers di AlmaLinux .

Untuk menggunakan akun root , gunakan perintah berikut dengan kata sandi root untuk masuk.

su

Instal Paket CURL

CURL perintah diperlukan untuk beberapa bagian dari panduan ini. Untuk menginstal paket ini, ketik perintah berikut:

sudo dnf install curl -y

Instal Paket Java

Agar berhasil menginstal dan, yang lebih penting, gunakan Elasticsearch , Anda perlu menginstal Java . Prosesnya relatif mudah.

Ketik perintah berikut untuk menginstal OpenJDK paket:

sudo dnf install java-11-openjdk-devel

Contoh dependensi yang akan dipasang:

Ketik “Y”, lalu tekan tombol “ENTER KEY” untuk melanjutkan penginstalan.

Konfirmasi Java telah berhasil diinstal dengan perintah berikut:

java -version

Contoh keluaran:

openjdk version "11.0.12" 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)

Instal Elasticsearch

Elasticsearch tidak tersedia di aliran Aplikasi AlmaLinux 8 standar , jadi Anda perlu menginstalnya dari repositori RPM Elasticsearch .

Sebelum menambahkan repositori, impor kunci GPG dengan perintah berikut:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Langkah selanjutnya adalah membuat file repo Elasticsearch sebagai berikut:

sudo nano /etc/yum.repos.d/elasticsearch.repo

Setelah di dalam file, tambahkan baris berikut:

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Untuk menyimpan (CTRL+O), lalu keluar dari (CTRL+X) .

Sekarang Instal Elasticsearch menggunakan perintah berikut:

sudo dnf install elasticsearch

Contoh keluaran:

Ketik “Y” , lalu tekan “ENTER KEY” untuk melanjutkan instalasi

Secara default, layanan Elasticsearch dinonaktifkan saat boot dan tidak aktif. Untuk memulai layanan dan mengaktifkannya pada boot sistem, ketikkan (systemctl) berikut ini perintah:

sudo systemctl enable elasticsearch.service --now

Contoh keluaran:

Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.

Verifikasi bahwa Elasticsearch berjalan dengan benar dengan menggunakan perintah curl untuk mengirim permintaan HTTP ke port 9200 di localhost sebagai berikut:

curl -X GET "localhost:9200/"

Contoh keluaran:

Untuk melihat pesan sistem yang dicatat oleh Elasticsearch di sistem Anda, ketik perintah berikut:

sudo journalctl -u elasticsearch

Contoh log keluaran:

-- Logs begin at Sat 2021-08-21 01:54:10 EDT, end at Sat 2021-08-21 02:11:00 EDT. --
Aug 21 02:09:17 localhost.localdomain systemd[1]: Starting Elasticsearch...
Aug 21 02:09:43 localhost.localdomain systemd[1]: Started Elasticsearch.

Cara Mengonfigurasi Elasticsearch

Data Elasticsearch disimpan di lokasi direktori default (/var/lib/elasticsearch) . Untuk melihat atau mengedit file konfigurasi, Anda dapat menemukannya di lokasi direktori (/etc/elasticsearch) , dan opsi start-up java dapat dikonfigurasi di (/etc/default/elasticsearch) file konfigurasi.

Pengaturan default terutama baik untuk server operasi tunggal karena Elasticsearch berjalan di localhost hanya. Namun, jika Anda akan menyiapkan cluster, Anda perlu memodifikasi file konfigurasi untuk mengizinkan koneksi jarak jauh.

Menyiapkan Akses Jarak Jauh (Opsional)

Secara default, Elasticsearch hanya mendengarkan localhost. Untuk mengubahnya, buka file konfigurasi sebagai berikut:

sudo nano /etc/elasticsearch/elasticsearch.yml

Gulir ke bawah ke baris 56 dan temukan bagian Jaringan dan batalkan komentar (#) baris berikut dan ganti dengan alamat IP Pribadi Internal atau alamat IP Eksternal sebagai berikut:

Dalam contoh, kami menghapus komentar (#) (network.host) dan mengubahnya menjadi alamat IP Pribadi Internal seperti di atas.

Untuk tujuan keamanan, ini sangat ideal untuk menentukan alamat; namun, jika Anda memiliki beberapa alamat IP Internal atau Eksternal yang mengenai server, ubah antarmuka jaringan untuk mendengarkan semua dengan memasukkan (0.0.0.0) sebagai berikut:

Simpan file konfigurasi (CTRL+O), lalu keluar dari (CLTR+X) .

Anda harus memulai ulang layanan Elasticsearch dengan perintah berikut agar perubahan diterapkan:

sudo systemctl restart elasticsearch

Cara Menggunakan Elasticsearch

Untuk menggunakan Elasticsearch menggunakan perintah curl adalah proses langsung. Berikut adalah beberapa yang paling umum digunakan:

Hapus indeks

Di bawah indeks bernama sampel .

curl -X DELETE 'http://localhost:9200/samples'

Mencantumkan semua indeks

curl -X GET 'http://localhost:9200/_cat/indices?v'

Mencantumkan semua dokumen dalam indeks

curl -X GET 'http://localhost:9200/sample/_search'

Kueri menggunakan parameter URL

Di sini kami menggunakan format kueri Lucene untuk menulis q=school:Harvard.

curl -X GET http://localhost:9200/samples/_search?q=school:Harvard

Kueri dengan JSON alias Elasticsearch Query DSL

Anda dapat melakukan kueri menggunakan parameter pada URL. Tetapi Anda juga dapat menggunakan JSON, seperti yang ditunjukkan pada contoh berikut. JSON akan lebih mudah dibaca dan di-debug ketika Anda memiliki kueri yang kompleks daripada satu string besar parameter URL.

curl -XGET --header 'Content-Type: application/json' http://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

Pemetaan indeks daftar

Semua bidang Elasticsearch adalah indeks. Jadi ini mencantumkan semua bidang dan jenisnya dalam indeks.

curl -X GET http://localhost:9200/samples

Tambahkan Data

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"			
}'

Perbarui Dokumen

Berikut adalah cara menambahkan bidang ke dokumen yang ada. Pertama, kita buat yang baru. Kemudian kami memperbaruinya.

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2 -d '
{
    "school": "Clemson"
}'

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2/_update -d '{
"doc" : {
               "students": 50000}
}'

Indeks cadangan

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/_reindex -d '{
  "source": {
    "index": "samples"
  },
  "dest": {
    "index": "samples_backup"
  }
}'

Muat data secara massal dalam format JSON

export pwd="elastic:"

curl --user $pwd  -H 'Content-Type: application/x-ndjson' -XPOST 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty' --data-binary @<file>

Tampilkan kesehatan cluster

curl --user $pwd  -H 'Content-Type: application/json' -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty

Agregasi dan Agregasi Bucket

Untuk server web Nginx, ini menghasilkan jumlah klik web berdasarkan kota pengguna:

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
             "cityName": {
                    "terms": {
                     "field": "geoip.city_name.keyword",
                                "size": 50

        }
   }
  }
}
'

Ini memperluasnya ke jumlah kode respons produk kota di log server web Nginx

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
          "city": {
                "terms": {
                        "field": "geoip.city_name.keyword"
                },
        "aggs": {
          "responses": {
                "terms": {
                     "field": "response"
                 }
           }
         }
      },
      "responses": {
                "terms": {
                     "field": "response"
                 }
        }
   }
}'

Menggunakan ElasticSearch dengan Otentikasi Dasar

Jika Anda telah mengaktifkan keamanan dengan ElasticSearch, maka Anda perlu memberikan pengguna dan kata sandi seperti yang ditunjukkan di bawah ini untuk setiap perintah curl:

curl -X GET 'http://localhost:9200/_cat/indices?v' -u elastic:(password)

Cetak Cantik

Tambahkan ?pretty=true ke penelusuran apa pun untuk mencetak JSON dengan cantik. Seperti ini:

 curl -X GET 'http://localhost:9200/(index)/_search'?pretty=true

Untuk menanyakan dan mengembalikan hanya bidang tertentu

Untuk mengembalikan hanya bidang tertentu, masukkan ke dalam larik _source:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "_source": ["suricata.eve.timestamp","source.geo.region_name","event.created"],
    "query":      {
        "match" : { "source.geo.country_iso_code": "GR" }
    }
}

Untuk Kueri berdasarkan Tanggal

Saat bidang bertipe tanggal, Anda dapat menggunakan matematika tanggal, seperti ini:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "query": {
        "range" : {
            "event.created": {
                "gte" : "now-7d/d"
            }
        }
}
}

Cara Menghapus (Mencopot) Elasticsearch

Jika Anda tidak lagi memerlukan Elasticsearch, Anda dapat menghapus perangkat lunak dengan perintah berikut:

sudo dnf autoremove elasticsearch

Contoh keluaran:

Ketik “Y” , lalu tekan “ENTER KEY” untuk melanjutkan penghapusan Elasticsearch.


AlmaLinux
  1. Cara Menginstal Elasticsearch di Debian 9

  2. Cara Menginstal MongoDB di AlmaLinux 8

  3. Bagaimana cara menginstal Lighttpd di AlmaLinux 8

  1. Cara Install PrestaShop di Almalinux 8

  2. Cara Install Nginx di AlmaLinux 8

  3. Cara Menginstal Python 3.10 di AlmaLinux 8

  1. Cara Menginstal MariaDB 10.6 di AlmaLinux 8

  2. Cara Instal PHP 8.0 di AlmaLinux 8

  3. Cara Install Ntopng di AlmaLinux 8