English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Elasticsearch تتكون من العديد من الوحدات، والتي تتحمل المسؤولية عن وظائفها. هذه الوحدات تحتوي على نوعين من الإعدادات، كما يلي:
إعدادات ثابتة−قبل بدء تشغيل Elasticsearch، يجب إعداد هذه الإعدادات في ملف config(elasticsearch.yml). يجب تحديث جميع النودات المعنية في الشبكة لتعكس تغييرات هذه الإعدادات.
إعدادات ديناميكية −يمكن تعيين هذه الإعدادات على Elasticsearch في الوقت الحقيقي.
سنناقش في الفصول التالية في هذا الفصل مختلف الأنظمة المختلفة في Elasticsearch.
إعدادات المستوى الديناميكي تقرر توزيع الفصوص على نودات مختلفة، وتوزيع الفصوص لتحقيق توازن في الشبكة. إليك إعدادات التحكم في توزيع الفصوص.
إعداد | القيم الممكنة | الوصف |
---|---|---|
cluster.routing.allocation.enable | ||
كل | هذا القيمة الافتراضية يسمح بتوزيع الفصوص لجميع أنواع الفصوص. | |
الأساسية | يسمح فقط بتوزيع الفصوص للمستنسخات الرئيسية. | |
new_primaries | يسمح فقط بتوزيع الفصوص للمستنسخات الرئيسية الجديدة. | |
none | لا يسمح بهذا بأي توزيع للفصوص. | |
cluster.routing.allocation.node_concurrent_recoveries | العدد (الافتراضي هو 2) | هذا يحد من عدد استعادة الفصوص المتوازية. |
cluster.routing.allocation.node_initial_primaries_recoveries | العدد (الافتراضي هو 4) | هذا يحد من عدد الاستعادة الأولية للمستنسخات الرئيسية بشكل متوازي. |
cluster.routing.allocation.same_shard.host | قيمة بولية (الافتراضي هو false) | هذا يحد من عدد النسخ المتعددة من نفس الفص الموزعة في نفس النود الفيزيائي. |
index.recovery.concurrent_streams | العدد (الافتراضي هو 3) | هذا يتحكم في عدد الأنماط الشبكية المفتوحة على كل نود عند استعادة الفصوص من الفصوص المتشابهة. |
index.recovery.concurrent_small_file_streams | قيمة عددية (بافتراض الافتراضي 2) | هذا يمكن أن يتحكم في عدد الأنماط المفتوحة على كل نود عند استعادة الفصوص ذات الحجم الأقل من 5 ميجا بايت. |
cluster.routing.rebalance.enable | ||
كل | هذا القيمة الافتراضية تسمح بالتوازن بين جميع أنواع الفصوص. | |
الأساسية | هذا يسمح فقط بتوازن الشقوق الرئيسية. | |
replicas | هذا يسمح فقط بتوازن الشقوق النسخية. | |
none | هذا لا يسمح بأي شكل من أشكال توازن الشقوق. | |
cluster.routing.allocation .allow_rebalance | ||
always | هذا القيمة الافتراضية تسمح دائمًا بالتوازن. | |
indexs_primaries_active | هذا يسمح بالتوازن عند توزيع جميع الشقوق الرئيسية في الشبكة. | |
Indices_all_active | هذا يسمح بالتوازن عند توزيع جميع الشقوق الرئيسية والنسخ. | |
cluster.routing.allocation.cluster _concurrent_rebalance | قيمة عددية (بافتراض الافتراضي 2) | هذا يحد من عدد الشقوق المتوازنة المتوازية في الشبكة. |
cluster.routing.allocation .balance.shard | قيمة فلوتينج (بافتراض الافتراضي 0.45f) | هذا يحدد عامل الوزن للشقوق الموزعة لكل عقدة. |
cluster.routing.allocation .balance.index | قيمة فلوتينج (بافتراض الافتراضي 0.55f) | هذا يحدد نسبة عدد الشقوق الموزعة لكل فهرس على العقدة المحددة. |
cluster.routing.allocation .balance.threshold | قيمة غير سالبة من النوع الفلوتينج (بافتراض الافتراضي 1.0f) | هذا هو القيمة الأدنى للتحسين التي يجب تنفيذها. |
إعداد | القيم الممكنة | الوصف |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | قيمة منطقية (افتراضياً قيمة هي true) | هذا سينشط ويوقف قرارات توزيع القرص. |
cluster.routing.allocation.disk.watermark.low | قيمة نصية (بافتراض الافتراضي 85%) | هذا يعني استهلاك القرص الأقصى؛ بعد ذلك، لن يمكن توزيع شقوق أخرى على هذا القرص. |
cluster.routing.allocation.disk.watermark.high | قيمة نصية (بافتراض الافتراضي 90%) | هذا يعني الاستخدام الأقصى عند التوزيع؛ إذا وصل إلى هذا النقطة عند التوزيع، فإن Elasticsearch سيوزع ذلك الشق على قرص آخر. |
cluster.info.update.interval | قيمة نصية (بافتراض الافتراضي 30 ثانية) | هذا هو الفاصل الزمني بين فحوصات استخدام القرص. |
cluster.routing.allocation.disk.include_relocations | قيمة بولية (بافتراض الافتراضي صحيح) | هذا يحدد ما إذا كان يجب النظر في الشقوق الموزعة حاليًا عند حساب استهلاك القرص. |
يساعد هذا المodule في إكتشاف وإبقاء حالة جميع العقد في المجموعة. يتحول حالة المجموعة عند إضافة أو إزالة عقد من المجموعة. يمكن استخدام بعض المODULES لتوفير API التي توفرها المزودون في السحابة، مثلما هو موضح أدناه -
إكتشاف Azure
إكتشاف EC2
إكتشاف Google Cloud Engine
إكتشاف ZEN
يحافظ هذا المodule على حالة المجموعة وتاريخ الشقوق عند إعادة تشغيل المجموعة بالكامل. إليك إعدادات هذا المodule الثابتة -
إعداد | القيم الممكنة | الوصف |
---|---|---|
gateway.expected_nodes | قيمة عددية (افتراضياً قيمة هي 0) | عدد العقد المستخدمة لاستعادة الشقوق المحلية في المجموعة. |
gateway.expected_master_nodes | قيمة عددية (افتراضياً قيمة هي 0) | عدد العقد الرئيسية المتوقع في المجموعة قبل بدء الإصلاح. |
gateway.expected_data_nodes | قيمة عددية (افتراضياً قيمة هي 0) | عدد العقد المتوقع في المجموعة قبل بدء الإصلاح. |
gateway.recover_after_time | قيمة نصية (افتراضياً قيمة هي 5m) | هذا هو الفاصل الزمني بين فحوصات استخدام القرص. |
cluster.routing.allocation. disk.include_relocations | قيمة منطقية (افتراضياً قيمة هي true) | يحدد هذا الوقت الذي سيبدأ فيه عملية الإصلاح، بغض النظر عن عدد العقد التي انضمت إلى المجموعة. gateway.recover_after_nodes |
يدير هذا المodule التواصل بين عميل HTTP و API لـ Elasticsearch. يمكن تعطيل هذا المodule عن طريق تغيير قيمة http.enabled إلى false.
هذا هو إعداد هذا المodule (في Elasticsearch.yml)
الرقم | الإعداد والشرح |
---|---|
1 | http.port هذا هو مرفق الوصول إلى Elasticsearch، ويتراوح بين 9200-9300. |
2 | http.publish_port هذا المرفق يستخدم لعميل http، وهو مفيد جدًا في حالة الحماية النصية. |
3 | http.bind_host هذا هو عنوان المضيف الخاص بخدمة http. |
4 | http.publish_host هذا هو عنوان المضيف الخاص بعميل http. |
5 | http.max_content_length هذا هو الحجم الأكبر للمحتوى في طلب http. قيمته الافتراضية هي 100mb. |
6 | http.max_initial_line_length 这是URL的最大大小,其默认值为4kb。 |
7 | http.max_header_size 这是 http 头的最大大小,默认值为8kb。 |
8 | http.compression 这将启用或禁用对压缩的支持,其默认值为false。 |
9 | http.pipelinig 这将启用或禁用 HTTP 管道。 |
10 | http.pipelining.max_events 这限制了在关闭HTTP请求之前要排队的事件数。 |
此模块维护为每个索引全局设置的设置。以下设置主要与内存使用有关-
这用于防止操作引起OutOfMemroyError。该设置主要限制JVM堆大小。例如,indexs.breaker.total.limit设置,默认为JVM堆的70%。
主要用于在字段上聚合时使用。建议有足够的内存来分配它。可以使用index.fielddata.cache.size设置来控制用于字段数据缓存的内存量。
该内存用于缓存查询结果。该缓存使用最近最少使用(LRU)驱逐策略。Indices.queries.cahce.size设置控制此缓存的内存大小。
该缓冲区将新创建的文档存储在索引中,并在缓冲区已满时刷新它们。像indexs.memory.index_buffer_size这样的设置控制为此缓冲区分配的堆数量。
该缓存用于存储每个分片的本地搜索数据。可以在创建索引期间启用缓存,也可以通过发送URL参数来禁用缓存。
Disable cache - ?request_cache = true Enable cache "index.requests.cache.enable": true
它在恢复过程中控制资源。以下是设置-
إعداد | القيمة الافتراضية |
---|---|
indices.recovery.concurrent_streams | 3 |
indices.recovery.concurrent_small_file_streams | 2 |
indices.recovery.file_chunk_size | 512kb |
indices.recovery.translog_ops | 1000 |
indices.recovery.translog_size | 512kb |
indices.recovery.compress | true |
indices.recovery.max_bytes_per_sec | 40mb |
محدد فترة العمر (TTL) للوثيقة الوقت، بعد ذلك سيتم حذف الوثيقة. هي مجموعة من الإعدادات الديناميكية تستخدم لتحكم في هذا العملية -
إعداد | القيمة الافتراضية |
---|---|
indices.ttl.interval | 60s |
indices.ttl.bulk_size | 1000 |
كل عقدة يمكنها اختيار ما إذا كانت عقدة بيانات أم لا. يمكن تعديل هذا المفتاح من خلال تغيير إعداد node.data. عند تعيين هذا القيمة إلى false، سيتم تعريف العقدة بأنها ليست عقدة بيانات.