بررسی ساختار تنظیمات Elasticsearch

بررسی ساختار تنظیمات Elasticsearch

پس از نصب Elasticsearch، نوبت به شناخت ساختار تنظیمات آن می‌رسد.

به طور کلی تنظیمات Elasticsearch را می‌توان از نظر نوع اثرگذاری آن‌ها و با توجه به معماری طراحی Elasticsearch تقسیم‌بندی کرد. با در نظر گرفتن اینکه Elasticsearch در قالب یک خوشه شامل یک یا چند گره راه‌اندازی می‌شود، تنظیماتی که در آن اعمال می‌شود ممکن است مختص یک گره باشد یا اینکه در سطح خوشه و برای تمامی گره ها تنظیم شود. 

برای مثال نامی که برای یک گره تعیین می‌شود مختص آن است اما اگر برای مثال بخواهیم تنظیمات ماژول ثبت log درخواست های http را دستخوش تغییر کنیم، باید از تنظیمات سطح خوشه استفاده کنیم تا تنظیمات مورد نظر به طور کلی و مستقل از هر گره اعمال شود.

تنظیمات مختص هر گره: در هر گره، در فایل elasticsearch.yml داخل دایرکتوری تنظیمات Elasticsearch مقداردهی می‌شوند. محل قرارگیری فایل تنظیمات گره بستگی به نوع سیستم عامل و نوع توزیع نصب شده دارد. این تنظیمات به اصطلاح static هستند به این معنی که برای اعمال آنها باید سرویس Elasticsearch در گره ی مربوطه در حالت stop قرار گیرد و پس از تغییر فایل elasticsearch.yml مجدد سرویس elasticsearch راه‌اندازی (start) شود.

تنظیمات در سطح خوشه: با استفاده از API بروزرسانی خوشه قابل تنظیم است.تنظیماتی که در خوشه اعمال می‌شود، ممکن است به صورت موقتی (transient) یا به صورت دائمی (persistent) باشد. تنظیمات موقتی بلافاصله بعد از اولین ریستارت شدن خوشه، پاک شده و مقادیر قبلی یا پیش‎فرض جایگزین می‌شوند. این تنظیمات به اصطلاح dynamic هستند به این معنی که نیازی نیست تا در هر گره به صورت اختصاصی تنظیم شوند و کافی است با استفاده از API تنظیمات خوشه مقدار آن را در کل خوشه تنظیم کرد.

 

نکته: اگرچه امکان مقداردهی تنظیمات dynamic در فایل elasticsearch.yml تمامی گره ها وجود دارد اما بهترین روش این است که همواره تنظیمات داخلی مربوط به یک گره (static) در فایل elasticsearch.yml آن گره تنظیم شده و فقط تنظیمات عمومی در سطح خوشه (dynamic) توسط API بروزرسانی خوشه اعمال شوند!

اما با وجود نیاز به این تنظیمات، چرا پس از نصب Elasticsearch در مراحل قبلی بدون این که تنظیمی را اعمال کنیم توانستیم سرویس Elasticsearch را راه‌اندازی کنیم؟

به این دلیل که Elasticsearch همراه با یک سری تنظیمات پیش‌فرض برای شرایط عمومی و اجرا روی یک سرور به شکل local، پیکربندی شده است. ابتدا به سراغ فایل‌های تنظیمات می‌رویم. اما این فایل‌ها کجا قرار دارند:

  • در توزیع‌های Debian و RPM در مسیر /etc/elasticsearch
  • در توزیع‌های آرشیو ویندوز و لینوکس در مسیر $ES_HOME/config ($ES_HOME همان پوشه‌ی اولیه است که از حالت فشرده خارج می‌کنیم)
  • در توزیع msi مخصوص ویندوز نیز ضمن نصب مسیر فایل‌های تنظیمات توسط کاربر تعیین می‌شود.

 

جزییات فایل‌های اصلی تنظیمات یعنی elasticsearch.yml و jvm.options را در درس‌های آینده بررسی می‌کنیم.

 فایل elasticsearch.yml شامل تنظیمات مربوط به گره و فایل jvm.options مربوط به تنظیمات فنی مخصوص ماشین جاوا است.

 فایل elasticsearch.yml در فرمت YAML است. این فرمت مخصوص Elasticsearch نبوده، بلکه عمومی است و خوانایی بالا اصلی‌ترین ویژگی آن است. نمونه‌ای از این فرمت را در مثال زیر مشاهده می‌کنید (برای مثال تعیین مسیر قرارگیری فایل‌های log و data):

path:
   data: /var/lib/elasticsearch
   logs: /var/log/elasticsearch

 

که البته به صورت flat یا تخت نیز قابل نوشتن است:

path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

 

نکته‌ی مهم در این فرمت این است که همواره باید بین علامت : و مقداری که برای یک تنظیم نوشته می‌شود یک space فاصله قرار گرفته باشد. برای مثال خط زیر منجر به خطا در تفسیر فرمت YAML خواهد شد:

path.data:/var/lib/elasticsearch

 

که شیوه‌ی صحیح آن به صورت زیر است:

path.data: /var/lib/elasticsearch

 

و همچنین برای تنظیماتی که مجموعه‌ای از مقادیر را قبول می‌کنند، می‌توان به صورت زیر در خطوط جداگانه مقادیر را تعیین کرد:

discovery.seed_hosts:
   - 192.168.1.10:9300
   - 192.168.1.11
   - seeds.mydomain.com

 

و یا اینکه در قالب یک آرایه این مقادیر را نوشت:

discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11", "seeds.mydomain.com"]

 

در بخش بعدی تنظیمات مهم Elasticsearch و همچنین تنظیمات مهم سیستمی برای اجرای بهینه‌ی سرویس را بررسی خواهیم کرد.
 

 

inline-quiz
0 سوال بدون زمان

آزمون

آزمون ها به ما کمک میکنند تا آموزشی فعال داشته باشیم. در این آزمون قصد داریم نکات مهم اشاره شده در فصل اول آموزش کاربردی داکر را در قالب چند سوال باهم مرور کنیم. بدین وسیله مهارت آموزی که قصد دارد داکر را یاد بگیرد می تواند با سنجیدن فرآیند مطالعه ی خود، از آموختن صحیح و کامل بخش اول اطمینان حاصل کند.

تمامی سوالات مطرح شده در این آزمون براساس متن آموزش های ارائه شده در فصل اول است. پس با مطالعه ی این فصل میتوانید میزان یادگیری خود را بسنجید.

دوره در دست تالیف است ... rocket
نظرات
اگر login نکردی برامون ایمیلت رو بنویس: