GNU/Linux >> Belajar Linux >  >> OpenSuse

Cara Menginstal Elasticsearch di openSUSE Leap 15

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 openSUSE Leap 15 .

Prasyarat

  • OS yang Disarankan: openSUSE Leap – 15.x
  • Akun pengguna: Akun pengguna dengan sudo atau akses root.

Perbarui Sistem Operasi

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

sudo zypper refresh

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@opensuse ~]$ sudo whoami
root

Untuk menyiapkan akun sudo yang ada atau baru, kunjungi tutorial kami tentang menambahkan Pengguna ke Sudoers di openSUSE .

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 zyper install curl

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 zypper install java-11-openjdk-devel

Instal Elasticsearch

Elasticsearch tidak tersedia di repositori openSUSE standar , jadi Anda perlu menginstalnya dari repositori 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 zypper ar https://artifacts.elastic.co/packages/7.x/yum elasticsearch

Sekarang Instal Elasticsearch menggunakan perintah berikut:

sudo zypper install elasticsearch

Contoh keluaran:

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

Untuk mengaktifkan Elasticsearch agar diaktifkan secara default, Anda perlu menginstal paket insserv .

sudo zypper install insserv

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:

Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch

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

sudo curl http://localhost:9200?pretty

Contoh keluaran:

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

Konfigurasi Firewalld untuk Elasticsearch

Secara default, tidak ada aturan yang disiapkan untuk Elasticsearch, yang dapat menyebabkan masalah.

Pertama, tambahkan zona khusus baru untuk kebijakan firewall Elasticsearch:

sudo firewall-cmd --permanent --new-zone=elasticsearch

Selanjutnya, tentukan alamat IP yang diizinkan yang diizinkan untuk mengakses Memcached.

sudo firewall-cmd --permanent --zone=elasticsearch --add-source=1.2.3.4

Ganti 1.2.3.4 dengan IP alamat yang akan ditambahkan ke daftar yang diizinkan.

Setelah Anda selesai menambahkan alamat IP, buka port Memcached.

Misalnya, Port TCP 11211 .

sudo firewall-cmd --permanent --zone=elasticsearch --add-port=9200/tcp

Catatan, Anda dapat mengubah port default di file konfigurasi jika Anda mengubah aturan buka port firewall di atas ke nilai baru.

Setelah menjalankan perintah tersebut, muat ulang firewall untuk menerapkan aturan baru:

sudo firewall-cmd --reload

Contoh keluaran jika berhasil:

success

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 zypper remove elasticsearch

Contoh keluaran:

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


OpenSuse
  1. Bagaimana menginstal Mongodb 5 di Opensuse Leap 15.3

  2. Bagaimana menginstal Mysql Server 8 pada OpenSUSE Leap 15.3

  3. Cara menginstal &mengkonfigurasi Redis 6 pada OpenSUSE Leap 15.3

  1. Cara Menginstal Elasticsearch di Debian 9

  2. Cara Menginstal Desktop KDE OpenSUSE Leap 42.1

  3. Bagaimana menginstal Java 17 di OpenSUSE Leap 15.3

  1. Cara Menginstal Skype di openSUSE Leap

  2. Cara Install Apache, MariaDB, PHP7 (LAMP) di openSUSE Leap 15.1

  3. Cara Menginstal TeamViewer 12 di openSUSE Leap 42.2