نحوه کلاستر کردن search head ها در اسپلانک
search head cluster
یک search head cluster متشکل از تعدای search head است که تنظیمات (Configurations)، زمانبندی وظایف ( job scheduling) و پارامترهای جستجو را با هم به اشتراک میگذارند. search head ها به cluster members نیز معروفند.
در کلاستر یکی از اعضا نقش captain را دارد که کارهای مربوط به زمانبندی وظایف و replication را بین همه اعضا انجام میدهد. علاوه بر این همانند سایر اعضا نقش search head را نیز در کلاستر دارد. در طول زمان نقش captain ممکن است بین اعضا جابهجا شود. یک seach head cluster عملیاتی شده علاوه بر مجموعه search head ها که خوشه اصلی آن را تشکیل میدهند به کامپوننتهای زیر نیز نیاز دارد.
deployer
deployer یک instance اسپلانک میباشد که app ها و سایر تنظیمات را بر روی اعضای کلاستر توزیع میکند. deployer به عنوان یک instance مستقل و خارج از cluster قرار میگیرد و نمیتواند به عنوان یکی از اعضای کلاستر باشد.
search peers
طبق پست قبلی، search peers همان indexer ها میباشند که اعضای کلاستر جستجوهای خود را بر روی آنها انجام میدهند.
load balancer
load balancer در واقع یک نرمافزار یا سختافزاری است که بین کاربر و اعضای کلاستر قرار میگیرد. با استفاده از load balancer کاربران میتوانند به مجموعهای از سرچ هدها از طریق یک اینترفیس دسترسی پیدا کنند.
زیرساخت موردنیاز برای search head cluster
برای اجرای کانتینرهای مورد نیاز برای کلاستر کردن سرچ هدها دستورات زیر را اجرا میکنیم.
docker run --name splunk-sh01 -h splunk-sh01 -d -p 8005:8000 -e SPLUNK_START_ARGS=--accept-license -e SPLUNK_PASSWORD=password splunk/splunk:latest
docker run --name splunk-sh02 -h splunk-sh02 -d -p 8006:8000 -e SPLUNK_START_ARGS=--accept-license -e SPLUNK_PASSWORD=password splunk/splunk:latest
docker run --name splunk-deployer01 -h splunk-deployer01 -d -p 8007:8000 -e SPLUNK_START_ARGS=--accept-license -e SPLUNK_PASSWORD=password splunk/splunk:latest
راه اندازی کلاستر
برای راه اندازی کلاستر گامهای زیر را به ترتیب انجام میدهیم.
- گام اول. ابتدا بر روی سرور deployer تنظیمات زیر را در مسیر زیر اضافه میکنیم.
/opt/splunk/etc/system/local/server.conf
[shclustering]
pass4SymmKey = password
shcluster_label = iranshell-h-clustering
- گام دوم. برای اضافه کردن سرچ هدها به کلاستر به ترتیب دستورات زیر را بر روی اعضا اجرا میکنیم. در اینجا بایستی یکی از اعضا به عنوان captain تعیین شود، به همین دلیل دستور سوم را بر روی یکی از آنها اجرا میکنیم.
SH01:
./splunk init shcluster-config -mgmt_uri https://172.17.0.5:8089 -replication_port 8080 -replication_factor 1 -shcluster_label sh_cluster -conf_deploy_fetch_url https://172.17.0.7 -secret password
SH02:
./splunk init shcluster-config -mgmt_uri https://172.17.0.6:8089 -replication_port 8080 -replication_factor 1 -shcluster_label sh_cluster -conf_deploy_fetch_url https://172.17.0.7 -secret password
Search Head Cluster Captain
./splunk bootstrap shcluster-captain -servers_list "https://172.17.0.5:8089","https://172.17.0.6:8089"
- گام سوم و آخر. در اینجا با استفاده از دستور زیر سرچ هدها را به indexer ها یا search peer ها متصل میکنیم.
SH02 and SH01
./splunk edit cluster-config -mode searchhead -master_uri https://172.17.0.4:8089 -secret password