
Elasticsearch adalah salah satu bagian dari stack ELK populer yang digunakan untuk analitik dan pencarian log. Aplikasi dan sistem terus-menerus mencatat data yang bisa sangat berguna untuk pemecahan masalah dan pelacakan masalah. Menggunakan stack ELK, Anda memiliki alat terbaik untuk melakukan tugas-tugas ini dengan cepat dan sangat mudah.
Dalam tutorial singkat ini, kita akan melihat Elasticsearch, khususnya cara membuat indeks di engine Elasticsearch. Meskipun Anda tidak memerlukan pengetahuan komprehensif tentang stack ELK untuk mengikuti tutorial ini, memiliki pemahaman dasar tentang topik-topik berikut mungkin bermanfaat:
- Menggunakan terminal, khususnya, cURL
- Pengetahuan dasar tentang API dan JSON
- Membuat Permintaan HTTP
CATATAN: Tutorial ini juga mengasumsikan bahwa Anda telah menginstal dan menjalankan Elasticsearch di sistem Anda.
Apa itu Indeks Elasticsearch?
Tanpa menyederhanakan atau memperumit banyak hal, indeks Elasticsearch adalah kumpulan dokumen JSON terkait.
Seperti yang disebutkan dalam posting sebelumnya, indeks Elasticsearch adalah objek JSON—dianggap sebagai unit dasar penyimpanan di Elasticsearch. Dokumen JSON terkait ini disimpan dalam satu unit yang membentuk indeks. Pikirkan dokumen Elasticsearch sebagai tabel dalam database relasional.
Mari kita hubungkan indeks Elasticsearch sebagai database di dunia SQL.
- MySQL => Database => Tabel => Kolom/Baris
- Elasticsearch => Indeks => Jenis => Dokumen JSON dengan Properti
Cara Membuat Indeks Elasticsearch
Elasticsearch menggunakan REST API yang kuat dan intuitif untuk mengekspos servicenya. Fungsionalitas ini memungkinkan Anda menggunakan permintaan HTTP untuk melakukan operasi pada cluster Elasticsearch. Oleh karena itu, kami akan menggunakan API buat indeks untuk membuat indeks baru.
Untuk panduan ini, kami akan menggunakan cURL untuk mengirim permintaan dan menjaga integritas dan kegunaan untuk semua user. Namun, jika Anda menemukan error dengan cURL, pertimbangkan untuk menggunakan Kibana Console.
Sintaks untuk membuat indeks baru di cluster Elasticsearch adalah:
PUT /<index>
Untuk membuat indeks, yang harus Anda lakukan adalah meneruskan nama indeks tanpa parameter lain, yang membuat indeks menggunakan pengaturan default.
Anda juga dapat menentukan berbagai fitur indeks, seperti di badan indeks:
- Pengaturan untuk indeks
- Alias indeks
- Pemetaan untuk bidang indeks
Nama indeks adalah parameter yang diperlukan; jika tidak, Anda akan mendapatkan error untuk URIL (/)
curl -X PUT “localhost:9200”
{"error":"Incorrect HTTP method for uri [/] and method [PUT], allowed: [DELETE, HEAD, GET]","status":405}
Untuk membuat indeks baru dengan nama single_index, kami meneruskan permintaan:
PUT /single_index
Untuk cURL, gunakan perintah:
curl -X PUT "localhost:9200/single_index?pretty"
Perintah ini akan menghasilkan Status HTTP 200 OK dan pesan dengan known: true as:
{
“acknowledged”: true,
"shards_acknowledged" : true,
"index" : "single_index"
}
Permintaan di atas membuat indeks single_index dengan pengaturan default karena kami tidak menentukan konfigurasi apa pun.
Aturan Penamaan Indeks
Saat membuat nama untuk indeks Elasticsearch, Anda harus mematuhi standar penamaan berikut:
- Nama indeks harus dalam huruf kecil saja.
- Nama indeks tidak boleh dimulai dengan tanda hubung (-), garis bawah (_), atau tanda tambahan (+)
- Nama-nama tidak boleh. atau..
- Nama indeks tidak boleh menyertakan karakter khusus seperti:, /, *, ?, “, <, >, |, ` ` (karakter spasi),,, #
- Panjang nama indeks harus kurang dari 255 byte. Karakter multi-byte akan dihitung dalam total panjang nama indeks. Misalnya, jika satu karakter panjangnya 8 byte, total panjang nama yang tersisa adalah 255 – 8
- Di versi t
erbaru Elasticsearch, nama yang dimulai dengan. dicadangkan untuk indeks tersembunyi dan indeks internal yang digunakan oleh plugin Elasticsearch.
Cara Membuat Badan Indeks
Saat menggunakan permintaan PUT untuk membuat indeks, Anda dapat meneruskan berbagai argumen yang menentukan pengaturan untuk indeks yang ingin Anda buat. Nilai yang dapat Anda tentukan dalam isi meliputi:
- Aliases:Menentukan nama alias untuk indeks yang ingin Anda buat; parameter ini opsional.
- Settings:Ini mendefinisikan opsi konfigurasi untuk indeks yang ingin Anda buat. Jika Anda gagal menentukan parameter apa pun, indeks akan dibuat menggunakan konfigurasi default.
- Mappings:Ini mendefinisikan pemetaan untuk bidang dalam indeks. Spesifikasi yang dapat Anda sertakan dalam pemetaan meliputi:
- Nama bidang
- Tipe data
- Parameter pemetaan
Untuk contoh pembuatan indeks dengan konfigurasi tubuh, pertimbangkan permintaan di bawah ini:
PUT /single_index_with_body
{
"settings": {
"number_of_shards": 2,
"number_of_replicas": 2
},
“mappings”: {
"properties": {
"field1": { "type": "object" }
}
}
}
Untuk permintaan yang setara dengan cURL:
curl -XPUT "http://localhost:9200/single_index_with_body" -H 'Content-Type: application/json' -d'{ "settings": { "number_of_shards": 2, "number_of_replicas": 2 }, "mappings": { "properties": { "field1": { "type": "object" } } }}'
Permintaan di atas membuat indeks baru dengan nama single_index_with_body dengan 2 nomor pecahan dan 2 replika. Itu juga membuat pemetaan dengan bidang nama bidang1 dan ketik sebagai objek JSON.
Setelah Anda mengirim permintaan, Anda akan mendapatkan respons dengan status permintaan sebagai:
{
“acknowledged”: true,
"shards_acknowledged" : true,
"index" : "single_index_with_body"
}
“Diakui” menunjukkan apakah indeks berhasil dibuat di klaster, sementara “shards_acknowledged” menunjukkan apakah jumlah copyan pecahan yang diperlukan dimulai untuk setiap pecahan dalam indeks yang ditentukan sebelum waktu habis.
Cara Melihat Indeks Elasticsearch
Untuk melihat informasi tentang indeks yang Anda buat, gunakan permintaan yang mirip dengan pembuatan indeks, tetapi gunakan metode HTTP alih-alih PUT sebagai:
GET /single_index_with_body
Untuk cURL,
curl -XGET “http://localhost:9200/single_index_with_body”
Perintah ini akan memberi Anda informasi terperinci tentang indeks yang diminta sebagai:
{
"single_index_with_body" : {
"aliases" : { },
"mappings" : {
"properties" : {
"field1" : {
"type" : "object"
}
}
},
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
},
"number_of_shards" : "2",
"provided_name" : "single_index_with_body",
"creation_date" : "1611045687208",
"number_of_replicas" : "2",
"uuid" : "3TRkO7xmQcSUOOGtb6pXVA",
"version" : {
"created" : "7100299"
}
}
}
}
}
Kesimpulan
Panduan ini membahas cara bekerja dengan Elasticsearch untuk membuat API indeks untuk membuat indeks baru. Kami juga membahas cara membuat nama yang sesuai untuk indeks dan pengaturan konfigurasi.
Dengan menggunakan panduan ini, Anda sekarang dapat membuat dan melihat indeks menggunakan Elasticsearch API.