نصب اسپلانک بصورت پیشرفته و طبق استاندارد

Splunk Advanced Installation with Standard Structure

سلام!

درسته، راه اندازی اسپلانک خیلی ساده است، ولی آیا این نصب ساده که انجام میدید استاندارد هست؟ چقدر در آینده بادوام خواهد بود؟

حتما براتون پیش اومده که وقتی App و Addon و یا بخش‌های مختلف اسپلانک را که وارد کردید نصب کردید کانفیگ کردید، اما باز هم اسپلانک به درستی کار نکرده.

توی این مطلب میخوام سعی کنم تجربه خودم در خصوص نصب Splunk و راه اندازی و تنظیم Splunk را به اشتراک بذارم.

نکته: این مطلب به مرور به روز خواهد شد.

بخش اول: پیش نیازهای لینوکس برای نصب اسپلانک

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

قدم اول) پارتیشن بندی اسپلانک / Splunk Partitioning

بنا به استفاده از سرورها، از پارتیشن ها و حافظه های مختلف استفاده میشود. بطور مثال برای سیستم عامل از SSD، برای پردازش های سریع روی لاگ از SSD و دیسک های سریع و برای آرشیو کردن از Tape استفاده میشود. همچنین مفهومی به نام File System وجود دارد که یکی از کاربردهاش برای فردی که در حال راه اندازی سرویس است، تناسب فایل سیستم با کاربردی سرویس مورد نظر آن Admin میباشد. این موضوع در سیستم عامل های NIX (لینوکس و یونیکس) چشمگیر بوده چرا که با کمی جستجو در موضوع سرویستان میتوانید بهترین فایل سیستم را برای آن انتخاب کنید.

البته که در حال حاضر EXT4 به اندازه کافی قوی و کامل است اما چنانچه که باز هم حساس هستید میتوانید از فایل سیستم های دیگر استفاده کنید.

موضوع بعدی LVM (Logical Volume Manager) می باشد، خیلی خلاصه بگم، چنانچه که فکر میکنید ممکن است در آینده نیاز به Extend کردن فضای دیسکتان دارید، حتما LVM را تیک بزنید و انتخاب کنید.

در آخر در مبحث پارتیشن بندی، باید بدانید که نسبت به سیستم عاملی که انتخاب کردید (CentOS، Debian، Ubuntu و…) چه حجمی را برای مسیرهای boot و swap انتخاب کنید. برای این کار میتونید جستجو کنید یا از فرمول های زیر استفاده کنید.

یکی از الگوهای زیر را انتخاب نمایید:

زیاد سخت نگیرید! با همون پیشنهاد خودم جلو بیاین! در کل اگر پارتیشن بندی را برای سرور Indexer در نظر گرفته باشید، نیاز هستش که این پارتیشن بندی را اجرا کنید: ابتدا 500 مگابایت از نوع GPT و با فایل سیستم EXT4 برای /boot بسازید. سپس اگر تا 8 گیگابایت Memory برای سرورتان در نظر گرفتید، دو برابر آن را برای Swap از نوع GPT در نظر بگیرید. (اگر بیش از 8 گیگابایت Memory به سرورتان دادید، حجم 4 گیگابایت را برای Swap در نظر بگیرید.) حالا یک حافظه GPT که Unformatted هست را مشاهده میکنید. روی آن رفته و LVM را انتخاب کرده و برای آن یک VG بسازید (کافیه Next Next Finish عمل کنید!) حالا شما یک VG0 دارید که همان LVM شما را شامل شده است. از این VG0 باید 3 تا پارتیشن مجازی یا همان LV بسازید. حجم اول با نام LV0 برای مسیر / با فایل سیستم EXT4 برای کل لینوکس در نظر بگیرید. حجم دوم با نام LV1 برای مسیر دیتابیس های اسپلانک با فایل سیستم EXT4 یا XFS بسازید. مسیری که وارد میکنید دقیقا به شکل زیر باشد: (مسیر پیشفرض اسپلانک)

/opt/splunk/var/lib/splunk

حجم سوم با نام LV2 برای مسیر دیتابیس های Cold اسپلانک با فایل سیستم EXT4 بسازید. مسیر آن به انتخاب خودتان اما پیشنهاد میشود که مسیر زیر را انتخاب کنید و به یاد بسپارید (چون برای ساخت ایندکس ها باید بصورت دستی وارد کنید)

/opt/splunk/var/lib/splunk/cold/

همین مراحل را برای سرورهای Forwarder و Cluster Master و Search Head و… تکرار کنید، با این تفاوت که دیگر نیازی به LV1 و LV2 ندارید.

مثلا در پارتیشن بندی که در تصاویر بالا میبینید، برای سرورهای Indexer سه دیسک مختلف با سرعت های مختلف مشخص شده است.

دیسک اول از نوع SSD برای Boot و Swap، و یک LVM برای مسیر /

دیسک دوم از نوع SSD اما RAID شده برای مسیر دیتابیس های اسپلانک

دیسک سوم از نوع HDD با سرعت مناسب برای مسیر دلخواهی که میخواهیم فاز Cold اسپلانک در آنجا نگهداری شود.

برای سایر سرورها نیز به نسبت سرویس و نیازشان پارتیشن بندی مناسب انجام می دهیم.

  • قدم دوم) نصب برنامه های کمکی برای کار و عیب یابی ساده تر / Linux Apps for Splunk Troubleshooting

برای استفاده، نگهداری و کار با لینوکس میتوانید از ابزارهای از پیش نصب شده بهره ببرید. اما پیشنهاد میدم ابزارها و برنامه های زیر را در تمام سرورهای اسپلانکتون نصب کنید.

شیوه نصب برای سرورهای خانواده Debian:

ابتدا sudo apt-get update را بزنید تا سرور شما کاتالوگ های جدید را دریافت کند.

سپس نصب کنید، مثلا برای htop بزنید: sudo apt-get install htop

نام پکیجتوضیح
htopهمان برنامه top با امکانات بیشتر و ظاهر گرافیکی تر میباشد، لیست پروسه های در حال اجرا با جزئیات را ارائه میدهد.
مثلا: چه پروسه ای CPU و RAM سرور را اشغال کرده؟
tcpdumpبطور خلاصه برای اینکه متوجه بشوید “آیا Packet به دست سرور شما میرسد یا از سرور شما خارج میشود؟” و “محتوای آن چیست” به شما کمک میکند. ابزاری بسیار قدرتمند که پیشنهاد میشود حتما در مورد آن یادگیری زیادی داشته باشید.
مثلا: آیا سرور من هیچ پکتی از لاگ های سرور دیتابیس دریافت میکند؟
iptraf-ngنسخه جدید iptraf میباشد که ایرادات نسخه قبلی را برطرف کرده و تحت نام جدید منتشر شده است. استفاده از این ابزار به شما امکان رصد کردن ترافیک ورودی و خروجی را میدهد.
مثلا: سرور من در حال حاضر درحال دریافت از چه سرورهایی با چه پورت ها و پروتکل هایی است؟
nloadپهنای باند ترافیک شبکه ای سرور را بصورت گراف نمایش میدهد.
مثلا: چقدر روی سرور بار ترافیکی داریم؟
nmonبرنامه ای کامل از رصد اجزای سرور از جمله دیسک، پردازنده و… که میتواند جایگزین برنامه های دیگر نیز باشد.
مثلا: روی کدام دیسک های سرور بار وجود دارد؟
nanoبرنامه nano یک ویرایشگر متن ساده است. ممکن است روی برخی از سرورها نصب نباشد. اگر نیاز به استفاده از ویرایشگرهای قدرتمندی مانند vi ندارید و برنامه nano ویرایشگر ساده با کاربری سریع میباشد.
مثلا: برای ویرایش فایل های کانفیگ و یا ساختن فایل های کانفیگ جدید
lsofبرنامه ای جهت نمایش فایل های باز (در حال پردازش) که با سویچ های زیادی که دارد در عیب یابی کندی سرور به شما کمک میکند.
مثلا: چه فایلی در کجاها باز است (در کدام منابع در حال پردازش است؟) و چه ارتباط شبکه ای در حال اجرایی دارد؟
ssارتباطات شبکه ای سرور شما را نمایش میدهد.
مثلا: از چه آدرسی، با چه پورتی، به چه آدرسی و چه پورتی تحت چه پروتکلی ارتباط برقرار شده است؟ آیا پورت فلان (مثلا پورت مربوط به دریافت لاگ) باز است؟ آیا ارتباط شبکه ای هم با آن پورت برقرار شده است؟
netstatهمانند برنامه lsof و ss میباشد. در بین این سه ابزار هر کدام که برای شما کارآمدتر است نصب کنید.
nmapنصب برنامه nmap فقط برای عیب یابی از طریق کامندهای اسکن آن و ذخیره کردن گزارش در این لیست آمده است. میتوانید از ابزارهای دیگر که خودتان میشناسید نیز استفاده کنید.
مثلا: لیست وب سرورهایی که قابل دسترس هستند را لیست کن تا با لیست سنسورهایم مقایسه کنم!
ncبرنامه netcat برای آن پیشنهاد شده است که چنانچه نیاز به دانش برای باز کردن پورتی روی سرورتان ندارید، با این برنامه به سادگی یک پورت TCP یا UDP باز کنید.
مثلا: تست موقت و مقایسه بار ترافیکی دریافتی روی TCP و یا UDP، جهت عیب یابی و یا تصمیم گیری بهتر!
wgetدر این برنامه میتوانید محتوایی را از شبکه وب دانلود نمایید.
مثلا: برای دانلود کردن فایل نصب اسپلانک از روی سایت Splunk.com و یا سایت های دیگر!

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

  • قدم سوم) تنظیم کردن دسترسی از راه دور لینوکس /  Install and Enable SSH on Ubuntu Linux

چنانچه که در حین نصب اوبانتو، SSH را نصب نکرده باشید، به ترتیب مراحل زیر را انجام بدهید.

ابتدا OpenSSH-Server را نصب کنید:

sudo apt install openssh-server

سپس فایل کانفیگ آن را باز کنید:

sudo nano /etc/ssh/sshd_config

دنبال خطی بگردید که PermitRootLogin نوشته شده باشد. آن را از کانت در بیاورید (علامت # را از ابتدای آن پاک کنید) و در ادامه ی آن yes بنویسید:

PermitRootLogin yes

سپس سرویس ssh را فعال کنید و یا سرور لینوکس تان را reboot نمایید.

(تنظیمات امن تری برای ssh نیز میباشد که در این مقاله فرصت باز کردن آن نیست).

  • قدم چهارم) تنظیم کردن زمان سرور از طریق NTP سرورها /  set Own NTP Servers on your Linux

اگر از تمام اهمیت های “دقیق بودن زمان سرور” گذر کنیم، برای ارسال و دریافت لاگ چنانچه که زمان ها دقیق نباشند و یا Timezone و Daylight در آنها رعایت نشده باشد، باعث بهم ریختن تقدم و تاخر لاگ ها شده و نه تنها اطلاعات ناقص و بهم ریخته و حتی اشتباه خواهد شد، بلکه در پروسه Correlation و Investigation نیز به مشکل بزرگی خواهید خورد و مجبور خواهید شد که خیلی از مراحل را بصورت دستی انجام بدهید و یا زمان زیادی برای تبدیل و ترجمه زمان ها بگذارید.

پس پیشنهاد میشود حداقل هم روی سرورهای SIEM و هم روی سنسورها، NTP تنظیم گردد.

مراحل زیر جهت فعالسازی و تنظیم کردن NTP روی سرور Ubuntu میباشد اما با کمی مطالعه و جستجو روی تمامی سیستم عامل ها و دارایی ها میتوانید NTP را تنظیم نمایید.

اول: تنظیم کردن Timezone روی ایران:

sudo timedatectl set-timezone Asia/Tehran

دوم: نصب برنامه جهت معرفی سرورهای دلخواه بعنوان NTP Server:

sudo apt-get install ntpdate

سوم: وارد کردن سرورهای مورد نظر جهت NTP Server و اسم گذاشتن روی آن:

ابتدا فایل hosts را با برنامه nano یا vi باز کنید. سپس در هر خط اسم و آدرس NTP Serverهای مورد نظرتان را وارد کنید. فایل را ذخیره کرده و از ویرایشگر خارج بشوید و با دستورات ntpdate یکی یکی سرورها را معرفی نمایید.

در مثال زیر سه سرور داخلی بعنوان NTP Server معرفی شده است:

sudo nano /etc/hosts
     192.168.1.11 ntp1
     192.168.1.12 ntp2
     192.168.1.13 ntp3

sudo ntpdate ntp1
sudo ntpdate ntp2
sudo ntpdate ntp3

چهارم: غیرفعال کردن Timesync

sudo timedatectl set-ntp off

پنجم: نصب و تنظیم کردن NTP Client جهت جایگزین کردن منبع زمان

ابتدا برنامه NTP Client را نصب کرده، سپس فایل کانفیگ آن را باز کرده و سرورهای NTPتان را وارد کرده و در نهایت با ذخیره کردن فایل کانفیگ سرویسش را Restart کنید.

sudo apt install ntp

sudo nano /etc/ntp.conf

     server ntp1 prefer iburst
     server ntp2 prefer iburst
     server ntp3 prefer iburst

sudo systemctl restart ntp

ششم: چک کردن صحت کارهایی که انجام دادیم:

این کامند را اجرا کنید، تا یکی یکی زمان را از سرورها بپرسد، نسبت به نتیجه متوجه خواهید شد که آیا سرورهای NTP که وارد کردید، سرویس ارائه میدهند؟ آیا کانفیگ ها را به درستی انجام داده اید؟

ntpq -p

  • قدم پنجم) تنظیم کردن فایروال لینوکس /  Enable and config Linux UFW (Firewall)

در این مرحله نیاز هست که تمام پورت ها (یا حتی آدرس دارایی ها) که مربوط به هر سرورتان است را در دست داشته باشید تا بتوانید یک تنظیم مناسب برای فایروال سرورتان انجام دهید.

بطور مثال میتوانید مشخص کنید که دقیقا چه آدرس های IP بتوانند به سرور SSH بزنند و یا وب اسپلانک را باز کنند. در مثال زیر علاوه بر NTP و SSH، پورت های پیشفرض اسپلانک و پورت Syslog هم برای TCP و هم برای UDP بعنوان Allow مشخص شده اند. بنابراین اگر پورت های پیشفرض اسپلانک را در فاز طراحی ساختار اسپلانکتان تغییر داده اید، نیاز است در تنظیم کردن فایروال هر سرورتان به آنها دقت نمایید.

همچنین، پیشنهاد میگردد که IPv6 در سرورتان فعال و در فایروال نیز لحاظ گردد چرا که برخی از ماژول ها و پایتون های اسپلانک هم با IPv4 و هم با IPv6 کار میکنند.

در ابتدا فایل کانفیگ فایروال ufw را باز کرده و وضعیت IPv6 آن را مشاهده و در صورت نیاز به yes تغییر دهید و بعد از آن یکی یکی رول های مورد نظر خود را وارد کرده، وضعیت پیشفرض را هم روی Deny Incoming و Allow Outgoing گذاشته و در مرحله آخر فایروال را فعال کنید.

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

sudo nano /etc/default/ufw
     IPV6=yes

sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow ntp
sudo ufw allow ssh
sudo ufw allow 514
sudo ufw allow 514/udp
sudo ufw allow 8000
sudo ufw allow 8089

sudo ufw allow 8088
sudo ufw allow 9100
sudo ufw allow 9887
sudo ufw allow 9997

sudo ufw enable
sudo ufw reload
sudo ufw status

تنظیمات فوق برای کل نقش های اسپلانک میباشد اما چنانچه که میخواهید به ازای هر سرور کانفیگ فایروال خودش را وارد کنید، باید ابتدا نقش سرورهایتان و پورت ها (و حتی آدرس های سرورهای مرتبط) را برنامه ریزی و سپس وارد کنید.

  • قدم ششم) نصب اسپلانک روی لینوکس / Install Splunk on Ubuntu Linux

سایت Splunk.com کشور ایران را تحریم کرده است، بنابراین شما امکان دانلود مستقیم را “بصورت عادی” ندارید.

بنابراین شما چند قدم برای به دست آوردن فایل نصب اسپلانک برای سرور لینوکس تان دارید:

اول اینکه با یک فیلترشکن وارد سایت اسپلانک شده و لینک فایل tgz آخرین نسخه را بدست بیاورید.

وارد سرورتان شده و DNSهای سرورتان را “موقتا” به دو آدرس معرفی شده توسط “شکن” تغییر بدید:

sudo nano /etc/resolv.conf
     nameserver 185.51.200.2
     nameserver 178.22.122.100

سپس سرویسی که کارت شبکه شما را مدیریت میکند را ری استارت کنید. مثلا اگر سرویس networkd و یا netplan است به صورت زیر ری استارت کنید:

(توجه: اگر فقط دسترسی ssh دارید، و احیانا کانفیگ اشتباهی زده باشید، امکان دارد دسترسی شما قطع بشود)

sudo systemctl restart networkd
sudo systemctl restart netplan

پیشنهاد میشود با status گرفتن از سرویس ها، یا دستورات شبکه ای دیگر از کانفیگ صحیح تان مطمئن بشوید.

sudo systemctl status networkd
sudo systemctl status netplan

حالا به مسیر دلخواهتان cd وارد شده و از طریق wget و مسیری که از Splunk.com بدست آوردید، فایل نصب با پسوند tgz را دانلود نمایید: (لینک پایین فقط یک مثال است برای ارائه الگوی استفاده و امکان دارد دیگر وجود خارجی ندارد)

wget -O splunk-8.2.3.tgz ‘https://download.splunk.com/products/splunk/releases/8.2.3/linux/splunk-8.2.3-cd0848707637-Linux-x86_64.tgz

برای باقی سرورها، نیاز نیست مراحل بالا را تکرار کنید، میتوانید از طریق ssh و scp فایل را به سایر سرورها منتقل نمایید.

مثلا اگر سرور فعلی آدرس 192.168.1.1 و سرور دوم آدرس 192.168.1.2 را داشته باشد، و نام یوزر mohammad باشد و فایل اسپلانک را روی سرور اول دانلود کرده باشید:

از روی سرور اول میتوانید روی سرور دوم کپی نمایید:

scp /path/to/sourcefile mohammad@192.168.1.2:/path/to/destination

یا از روی سرور دوم میتوانید از روی سرور اول فایل را بردارید:

scp mohammad@192.168.1.1:/path/to/sourcefile /path/to/destination

پس از آن با دستور زیر فایل tar را Extract کرده و عملا کار نصب را انجام بدهید:

نکته: حتما با یوزری غیر از root این کارا انجام بدهید.

sudo tar xvzf splunk.tgz -C /opt

 

  • قدم هفتم) تنظیم کردن SELinux لینوکس /  Splunk vs SELinux

ویژگی های SELinux (Security-Enhanced Linux) شرایطی را برای سرور شما محیا میکند که از نظر امنیتی وضعیت بسیار مناسبی را از طریق اعمال دسترسی های مناسب پیدا کند. SELinux دارای فایل کانفیگ مجزا میباشد که میتوان بصورت دستی کانفیگ مورد نظر خود را در آن قرار داد و یا با دستوراتی آن را تنظیم کرد.

چنانچه کانفیگ کردن SELinux برایتان ساده نیست، میتوانید پیرو حالت پیشفرض SELinux روی برخی لینوکس ها، آن را غیرفعال کنید.

یکی از راه های زیر را انتخاب نمایید:

  • قدم هشتم) غیرفعال کردن THP برای پرفرمنس اسپلانک / Disabling THP for Splunk

سیستم Transparent Huge Pages یا به اختصار THP جهت مدیریت حافظه لینوکس فعال شده است. اما چه مشکلی برای اسپلانک بوجود می آورد؟

فعال بودن این سیستم تقریبا در تضاد کامل با نحوه کار اسپلانک (یعنی پروسه های کوچک و موقت) بوده و همین باعث میشود که Performance اسپلانک افت شدیدی داشته باشد. همچنین ممکن است این مشکل برای لینوکس شما نیز بوجود بیاید چرا که حافظه های موقتی که توسط اسپلانک استفاده شده به سرعت آزاد نمیشوند و فرآیندی را باید سپری کنند که هم باعث بوجود آمدن فرآیندهای اضافی روی لینوکس و اختلال در استفاده بهینه اسپلانک از حافظه خواهد شد.

همچنین به گفته مستندات اسپلانک در مطالب و فروم های مختلف (مانند این مطلب / کلیک کنید) فعال بودن THP روی I/O اسپلانک تاثیر منفی میگذارد.

پس با مراحل زیر این سیستم را (چنانچه که فعال باشد) غیرفعال کنید:

ابتدا یوزر root را فعال کنید. برای اینکار دستور sudo passwd را وارد کنید. از شما چند پسورد خواسته میشود که میبایست به آنها دقت کنید. احتمالا اولین پسورد مربوط به یوزر فعلی شما میباشد و دو پسورد بعدی برای ست کردن پسورد روی یوزر root میباشد.

پس از آن با دستور sudo su به یوزر root سویچ یوزر کنید.

 

 

در این مرحله میتوانید با دستور زیر کانفیگ thp را تغییر بدهید:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

و یا میتوانید با دستورات زیر کانفیگ را با دستور تغییر دهید:

apt-get install hugepages
hugeadm –thp-never

 

  • قدم نهم) تغییر دادن ULimit مخصوص اسپلانک خود / set ULimit for your Splunk

به غول آخر، که حساسترین قدم نیز است خوش آمدید!

دستور ulimit برای نمایش دادن و تنظیم کردن محدودیت هایی است که هر لینوکس برای سیستم یا کاربر ایجاد میکند. از مزایای این محدودیت ها که بگذریم، با تعریف کوتاهی خودتان متوجه خواهید شد که کانفیگ نکردن این محدودیت ها، باعث چه مشکلاتی در اسپلانک خواهد شد.

با دستور ulimit شما میتوانید تنظیمات فعلی در خصوص محدودیت لینوکس برای باز کردن همزمان فایل ها و حتی Touch کردن فایل ها را رویت کنید.

بطور خلاصه چهار حالت کلی را نیاز است بدانید:

تنظیم System-Wide یعنی تنظیمی که برای کل سیستم (شامل لینوکس) تعریف شده است.

تنظیم User-Wide که تنظیماتی که برای کاربران تعریف شده است.

حالت Soft، حدودی است که تعریف شده اما باعث محدودیت نمیشود و مثلا در بخش هایی لاگ هایی و Noticeهایی ایجاد میکند.

حالت Hard، حدودی است که محدودیت اجرا خواهد شد و بالاتر از عدد مشخص شده، اجرای جدیدی صورت نمیگیرد. (محدود میشود)

برای مشاهده تنظیمات فعلی خود (هم برای زمان فعلی و هم بعد از اعمال تغییرات) از دستورات زیر میتوانید استفاده کنید. دستورات مشابه به یکدیگر هستند و از هر کدام که راحت تر هستید استفاده کنید.

ulimit -a
ulimit -Sn
ulimit -Hn
cat /proc/sys/fs/file-max
sysctl fs.file-max

جهت تنظیم کردن محدودیت ها، نسبت به سیستم عامل تان، و Init-Based یا Systemd-Based بودن کانفیگ مورد نظر، میتوانید از این دستورات استفاده کنید.

توجه نمایید که این دستورات صرفا برای اطلاع شما ذکر شده اما در فرآیند نصب اسپلانک از این دستورات استفاده نمیشود:

1) init-based set limits (persistence):

/etc/security/limits.conf

2) systemd-based set limits (persistence)

system-wide: /etc/systemd/system.conf
user-wide: /etc/systemd/user.conf

3) sysctl:

/etc/sysctl.conf
     fs.file-max = 100000

sysctl -p

در دستورات بالا، شما تنظیمات را برای کل سیستم و در هر شرایطی تغییر خواهید داد. اما چنانچه که قصد دارید این تنظیمات فقط همراه با سرویس اسپلانک فعال گردد میتوانید آن را روی کانفیگ Startup کردن سرویس اسپلانک وارد کنید.

مزیت این کار، عدم تغییر کانفیگ برای کل سیستم در تمام شرایط است و عیب آن پروظیفه شدن سرویس اسپلانک خواهد بود.

با توجه به اینکه هنوز سرویس اسپلانک را اجرا نکرده اید، نیاز است در صورت وجود نداشتن فایل های عنوان شده، آن را بسازید و یا ابتدا مرحله نصب اسپلانک را تکمیل کرده و به این مرحله برگردید. (حتما مرحله دهم را مطالعه کنید، نکته ای در اولین اجرای سرویس وجود دارد!)

نکته: برای تغییر اعداد، در همان ضریب اعداد را تغییر دهید، مثلا 1024 را به 2000 تبدیل نکنید، به 2048 تبدیل کنید.

با توجه به فقط Init-Based بودن و یا Systemd-Based بودن لینوکس تان، از دستورات زیر جهت کانفیگ کردن Startup سرویس اسپلانک استفاده کنید.

جهت بدست آوردن اعداد Ulimit، نیاز است اول از همه شما بینش کافی در خصوص ساختار اسپلانک، میزان لاگ ها و… داشته باشید. پارامترهایی تاثیرگذار عبارتند از:

  • تعداد Forwarderهایی که اطلاعات را به Indexerها ارسال میکنند. یا بطور کلی مقدار Forwardهایی که به سرور بعدی (Next Hop) انجام میشود.
  • تعداد کاربرانی که با اسپلانک کار خواهند کرد و به ازای Session هر کدام چه تعداد Query توسط کاربر یا Appها و Addonهای اسپلانک اجرا میشود.
  • میزان رخداد دریافتی در لحظه یا به عبارتی Event per Second (EPS) روی هر کدام از سنورها و یا Forwarderها چه مقدار است.
  • سرور مورد نظر چه نقشی از ساختار اسپلانک را ایفا میکند؟ (Indexer, Forwarder, Search Head, Deployer, Cluster Master, License Server و…)
  • سرور مورد نظر چه نقش های تکمیلی را خارج از نقش اسپلانکی خود ایفا میکند؟ مثلا علاوه بر Forwarder بودن نقش دریافت ترافیک و Capture یا تبدیل آن را انجام میدهد.

پس از اطلاعات فوق، پیشنهاد میگردد با تنظیمات بالا روی حالت Soft پیش بروید و سپس لاگ های لینوکس و لاگ های اسپلانک را بررسی کنید.

چنانچه که اعداد شما کمتر از نیاز باشد سرور اسپلانک لاگ هایی واضح در خصوص محدود شدن CPU، Memory، Disk و یا File نمایش خواهد داد که متوجه خواهید شد کدام محدودیت را افزایش دهید.

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

در اینجا به ابزارهایی که در مراحل قبلی معرفی شد مراجعه و سرور را Tune کنید.

 

  • قدم دهم) اجرا کردن سرویس اسپلانک / Start Splunk Service

تمام پیش نیازها انجام شد. اگر تا قبل از تنظیم کردن ulimit و Startup آن، سرویس را اجرا نکردید با یوزری غیر از root دستور زیر را اجرا کنید:

./splunk enable boot-start -user root -systemd-managed 1

پس از اولین اجرا از شما خواسته میشود که موارد قراردادی را Accept کنید. با زدن چند Enter یا Space از این متن عبور کنید و Agree کنید.

سپس از شما خواسته میشود که نام کاربری برای اسپلانک مشخص کنید، که پیشنهاد میشود آن را admin قرار دهید.

در بعضی از Appها و Addonهای قدیمی، اسکریپت ها ماکروهای قدیمی که دیگر توسعه داده نشده اما همچنان استفاده میشوند؛ همچنین ماژول هایی که توسط شخص توسعه داده شده است مشکلات کد دارند که به اصطلاح برای یوزر admin، هاردکد (Hardcode) شده اند.

یوزر admin در نسخه های قدیمی اسپلانک بعنوان اولین یوزر بصورت خودکار مشخص میشد.

البته جای نگرانی وجود ندارد، چرا که تیم توسعه اسپلانک، در حال توسعه Appها و Addonهای به روز جهت جایگزین کردن با (حداقل) این دسته از ماژول ها می باشد

 

خب! امیدوارم این آموزش براتون کاربردی بوده باشه. سعی میکنم ساختارهای مناسب و پیشنهاد اسپلانک و نحوه کلاسترهای مختلف اسپلانک، با Best Practice اسپلانک را در مقاله ای جدا به شما عزیزان اهل علم و اهل فن ارائه کنم.

امتیاز، اشتراک گذاری و دنبال کردن در شبکه هایی که در انتهای صفحه هست به من انرژی خواهد داد، اگر سوالی داشتید هم بپرسید. موفق باشید./محمد، 24 بهمن 1400

این آموزش باز هم با نکات و تصاویر بیشتر آپدیت خواهد شد.

متن

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *