GNU/Linux >> Belajar Linux >  >> Debian

Cara Memasang Elasticsearch di Debian 11 Bullseye

Elasticsearch adalah mesin analitik dan penelusuran teks lengkap sumber terbuka yang sangat skalabel . Perangkat lunak ini mendukung operasi RESTful yang memungkinkan Anda untuk menyimpan, mencari, dan menganalisis data dalam jumlah besar dengan cepat dan mendekati waktu nyata. Elasticsearch sangat disukai dan populer di antara sysadmin dan pengembang karena merupakan mesin pencari yang hebat berdasarkan perpustakaan Lucene. Biasanya digunakan sebagai mesin/teknologi dasar yang mendukung aplikasi dengan fitur dan persyaratan pencarian yang kompleks.

Dalam tutorial berikut, Anda akan mempelajari cara memasang Elastic Search di Debian 11 Bullseye .

Prasyarat

  • OS yang Disarankan: Debian 11 Bullseye
  • Akun pengguna: Akun pengguna dengan sudo atau akses root.
  • Paket yang Diperlukan: Keriting dan Jawa

Memasang Curl

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

sudo apt install curl -y

Menginstal Java

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

Ketik perintah berikut untuk menginstal OpenJDK paket:

sudo apt install default-jdk

Contoh keluaran dengan paket yang akan diinstal:

Untuk melanjutkan penginstalan, ketik (Y) lalu tekan tombol (ENTER) kunci.

Selanjutnya, verifikasi versi Java yang diinstal dan build dengan perintah berikut:

java -version

Contoh keluaran di bawah ini:

Menginstal Elasticsearch

Elasticsearch tidak tersedia di repositori standar Debian 11, jadi Anda harus menginstalnya dari repositori APT Elasticsearch.

Sebelum menambahkan repositori, impor kunci GPG dengan perintah berikut:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Contoh keluaran dengan (Oke) mengonfirmasi bahwa itu berhasil:

Sekarang setelah Anda menambahkan kunci GPG, repositori Elasticsearch sekarang akan dipercaya. Lanjutkan untuk menginstal repositori resmi dengan perintah terminal berikut:

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

Pada saat tutorial dibuat, Elasticsearch 7.13.4 adalah versi terbaru tetapi akan berubah seiring waktu, dan repositori yang Anda tambahkan akan berfungsi untuk versi 7.x.x di masa mendatang.

Selanjutnya, perbarui daftar repositori Anda dan instal Elasticsearch sebagai berikut:

sudo apt update && sudo apt install elasticsearch

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

Selanjutnya, untuk memverifikasi bahwa Elasticsearch berjalan dengan benar, Anda akan menggunakan curl perintah untuk mengirim permintaan HTTP ke port 9200 di localhost sebagai berikut:

curl -X GET "localhost:9200/"

Contoh keluaran untuk memverifikasi Elasticsearch bekerja dengan benar:

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

sudo journalctl -u elasticsearch

Contoh log keluaran:

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 sebagian besar 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

Selanjutnya, gulir ke bawah 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.

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:

Selanjutnya, 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

Konfigurasikan Firewall UFW untuk mengizinkan Koneksi Jarak Jauh

Jika Anda mengizinkan koneksi jarak jauh, Anda harus mengizinkan firewall Anda untuk mengizinkan alamat IP tersebut terhubung. Ini dapat dilakukan dengan perintah berikut:

sudo ufw allow from <IP Address> to any port 9200

Informasi lebih lanjut tentang firewall Debian dan UFW dapat ditemukan untuk mengonfigurasi firewall UFW di Debian.

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 menurut 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"
            }
        }
}
}

Mencopot pemasangan Elasticsearch

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

sudo apt remove elasticsearch

Hapus repositori apt sebagai berikut:

sudo rm /etc/apt/sources.list.d/elastic-7.x.list

Kemudian perbarui daftar repositori Anda untuk mencerminkan perubahan:

sudo apt update

Debian
  1. Cara menginstal Elasticsearch Di Debian Linux

  2. Cara Menginstal Python 3.8 di Debian 11 Bullseye

  3. Cara Menginstal Python 3.9 di Debian 11 Bullseye

  1. Cara Menginstal R di Debian 9

  2. Cara Menginstal Elasticsearch di Debian 9

  3. Cara Menginstal Elasticsearch di Debian 10

  1. Cara Menginstal R di Debian 10

  2. Cara Menginstal Debian 11 (Bullseye) Langkah demi Langkah

  3. Bagaimana cara menginstal Debian 11