هر ادمینی متوجه اهمیت نظارت عملکرد سرورها است و می داند که اگر در روند کار مشکلی پیش بیایید و کارها درست پیش نروند، باید در سریع ترین زمان ممکن از آن باخبر شوند. به همین دلیل است که اکثر مدیران به دنبال یک ابزار مانیتورینگ خوب هستند که NetData یکی از بهترین گزینه ها برای مانیتورینگ عملکرد سرور لینوکس است.
نظارت عملکرد بخش های مهمی مثل CPU، دیسک، رم، شبکه، فرآیندها، وقفه ها و … با استفاده از ابزار نت دیتا، بهترین کاری است که می توانید برای حفظ و ارتقاء عملکرد سرور لینوکس خود انجام دهید. پس بیایید نحوه کار با این ابزار فوق العاده را یاد بگیریم:
مانیتورینگ سرور چیست و چرا مهم است؟
NetData یکی از محبوب ترین ابزارهای خطایابی و نظارت عملکرد سرور لینوکس است. این ابزار با ارزیابی هزارها معیار مختلف و ارائه نمودارهای معنی دار به کاربر کمک می کند که وضعیت بخش های مختلف سرور خود را ردیابی کند و اقدامات لازم را در اسرع وقت انجام دهد.
مانیتورینگ عملکرد سرور، فرآیندی است که طی آن منابع سیستم مثل میزان استفاده از CPU، مصرف حافظه، فضای ذخیره سازی، عملکرد ورودی و خروجی، کارکرد شبکه و … نظارت می شوند. این کار باعث می شود هر گونه مسئله و اختلال مربوط به عملکرد سرور مثل زمان پاسخ سرور، میزان استفاده از منابع و خرابی اپلیکیشن در اسرع وقت شناسایی و حل شود.
معیارهایی مهمی مثل تعداد درخواست در ثانیه (RPS)، نرخ خطا، زمان در دسترس و بالا بودن سرور (Uptime)، تعداد نخ یا Thread به ادمین کمک می کند تا وضعیت سرور را شناسایی کند و در صورت نیاز به بهبود، وارد عمل شود.
ویژگی های مهم NetData
- ردیابی و نظارت با توجه به هزاران معیار و استفاده از رابط کاربری تعاملی و هشدارهای دقیق برای تشخیص هرگونه اختلال، کاهش سرعت و ناهنجاری
- بروزرسانی آمارهای مربوط به سیستم در هر ثانیه
- استفاده از گزارشات هسته لینوکس از طریق eBPF و گزارش های Apache و NGINX برای نمایش تحلیل های مربوط به زمان پردازش درخواست، زمان پاسخدهی آپ استریم و …
- جمع آوری اطلاعات مربوط به معیارهای عملکرد و وضعیت پایگاه داده (MySQL/MariaDB ،PostgreSQL ،MongoDB و غیره)
- سریع و سبک
- ارائه گزارشات هسته لینوکس
پس برای اینکه عملکرد سرور خود را بررسی کنید و با شناسایی سریع تر خطرات و بهینه سازی وضعیت سرور، دچار مشکلات بزرگتر نشوید، بهتر است از NetData استفاده کنید. خودکار سازی فرآیندهای مربوط به نظارت عملکرد سرور لینوکس، امتیازی است که با استفاده از این ابزار مانیتورینگ، نصیب شما می شود.
نحوه نصب ابزار مانیتورینگ NetData روی سرور لینوکس
Netdata در repository های اکثر توزیع های لینوکس قرار دارد ولی بهتر است برای دانلود آخرین نسخه این ابزار از اسکریپت رسمی نت دیتا استفاده کنید. البته قبل از نصب، مطمئن شوید که repository سرور شما بروز است.
! البته اگر نیاز به یادگیری مهم ترین دستورات لینوکس دارید، می توانید از مقاله ” پرکاربرد ترین دستورات لینوکس” استفاده کنید تا در در زمینه نصب و کار کردن با ابزارهای مختلف از جمله Netdata به مشکل برنخورید.
روش ۱) نصب بسته موجود در repository از طریق دستور apt-get
– قبل از نصب، مخزن بسته را بروز کنید تا آخرین نسخه از این ابزار را نصب کنید.
$ sudo apt-get update –y
$ sudo apt-get upgrade -y
– در ادامه، بسته های نرم افزاری موردنیاز برای این ابزار را نصب کنید.
$ sudo apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make autoconf autoconf-archive autogen automake pkg-config curl
– بسته هایی هم هستند که نصب آنها اختیاری است اما نت دیتا توصیه می کند که آنها را نیز نصب کنید چون امکان دارد به آنها نیاز پیدا کند.
$ sudo apt-get install python python-yaml python-mysqldb python-psycopg2 nodejs lm-sensors netcat
– حالا نوبت به نصب خود Netdata می رسد. برای این کار از repository گیت هاب استفاده می کنیم و با دستور Clone بسته مربوط به این ابزار را به دایرکتوری home سیستم می آوریم.
$ git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata
– بعد با دستور cd در داخل دایرکتوری مربوط به NetData قرار می گیریم.
$ cd ~/netdata
– الان دیگر می توانیم برنامه را با استفاده از اسکریپت netdata-installer.sh نصب کنیم. حتماً دستور sudo را وارد کنید تا عمل نصب با دسترسی ادمین انجام شود در غیر این صورت، پروسه نصب به درستی تکمیل نمی شود.
$ sudo ./netdata-installer.sh
خروجی که قرار است مشاهده کنید، حاوی اطلاعاتی در مورد لوکیشن اجزای نت دیتا است.
بعد از مشاهده این اطلاعات، کلید Enter را وارد کنید تا پروسه نصب ادامه پیدا کند. بعد از چند لحظه، پیام زیر را مشاهده خواهید کرد:
نصب ابزار مانیتورینگ Netdata با موفقیت انجام شد.
روش ۲) نصب آخرین نسخه نت دیتا از اسکریپت رسمی netdata
– کافی است دستور زیر را در ترمینال سرور خود وارد کنید:
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh) --disable-telemetry
! اگر کاربر روت نیستید، احتمالاً ترمینال از شما می خواهد که رمز خود را وارد کنید.
بعد از این مرحله، اطلاعاتی در مورد بسته های موردنیاز برای این ابزار نمایش داده می شود که باید در سیستم موجود باشند. حتی اگر برخی از بسته ها را قبلاً نصب کرده باشید هم باز بهتر است با وارد کردن Y و فشردن دکمه Enter اجازه دهید که آخرین نسخه این بسته ها در سیستم شما نصب شوند:
* پروسه نصب ابزار نت دیتا تکمیل شد.
نکته! فرقی نمی کند که برای نصب از کدام روش استفاده می کنید، پس از تکمیل نصب، سرویس های Netdata به طور خودکار راه اندازی و فعال می شوند؛ اما اگر اینطور نیست، می توانید با اجرای دستورات زیر، این قابلیت را فعال کنید:
$ sudo systemctl start netdata
$ sudo systemctl enable netdata
دسترسی به رابط کاربری Netdata
این ابزار به طور پیش فرض در پورت ۱۹۹۹۹ قرار می گیرد. پس برای دسترسی به آن کافی است آی پی سرور و پورت را به صورت server-ip:19999 در نوار آدرس مرورگر خود وارد کنید تا داشبورد نت دیتا از شما استقبال کند. البته می توانید به جای server-ip، با نام هاست یا localhost نیز به داشبورد این ابزار دسترسی پیدا کنید.
نکته ۱: توجه داشته باشید که سرور و دیتاسنتر شما به یک شبکه یکسان متصل باشند.
نکته ۲: مکانیسم احراز هویت خاصی برای این دسترسی وجود ندارد و هر کسی که IP سرور لینوکس را می داند، می تواند از ابزار مانیتورینگ Netdata برای نظارت عملکرد سرور لینوکس موردنظر استفاده کند.
نکته ۳: اگر قبلاً در سرور خود فایروال را فعال کرده اید، باید TCP port 19999 را باز کنید.
– دستور لازم برای سرور Debian یا Ubuntu با فایروال UFW
$ sudo ufw allow 19999/tcp
– دستور لازم برای سرور RHEL، CentOS، Alma Linux یا Rocky Linux با فایروال Firewalld
$ sudo firewall-cmd --permanent --add-port=19999/tcp
$ sudo systemctl reload firewalld
بررسی بخش های مختلف ابزار Netdata برای مانیتورینگ عملکرد سرور لینوکس
داشبورد
با توجه به این که نت دیتا یک ابزار نظارت و عیب یابی است، ارائه نمودارهای real-time، واقعی و معنی دار بسیار ضروری است.
بلافاصله بعد از نصب و دسترسی به این ابزار با مرورگر، عملکرد سخت افزار، سیستم عامل، کانتینرها، سرویس ها و برنامه های در حال اجرا به صورت نموداری نمایش داده می شود. ارائه صدها نمودار با ابعاد و معیارهای مختلف، کار شما را راحت تر می کند چون به صورت یکجا و به طور پیش فرض به هر آنچه که باید در مورد عملکرد تک تک این بخش ها بدانید، دسترسی پیدا می کنید.
منوها
اولین بخش داشبورد، نمای کلی سیستم است و در ادامه عملکرد cpu، حافظه و … به صورت نموداری نمایش داده می شود. به جای پیمایش به سمت بالا و پایین می توانید نمودار مربوط به معیار موردنظر را به صورت مستقیم از منوی سمت راست انتخاب کنید و به آن بخش منتقل شوید
برخی از معیارها مثل حافظه به چند زیربخش (درایوها و پارتیشن های دیسک) تقسیم می شوند که با هم یک بخش اصلی یا خانواده را تشکیل می دهند.
نمودارها
هر نمودار موجود در داشبورد NetData کاملاً تعاملی است. این ویژگی به شما کمک می کند عملکرد و رفتار سرور را در هر بازه زمانی بررسی کنید.
هر یک از این نمودارها منحصربفرد، تعاملی و به روز هستند که مقادیر یک یا چند معیار را محاسبه کرده و به صورت معنی دار به کاربر نمایش می دهند.
به عنوان مثال نمودار مربوط به CPU حاصل محاسبه و ادغام ۱۳ معیار منحصر به فرد مثل httpd ، kernel و … است؛ که این معیارها در اغلب اوقات از کاربر مخفی می مانند تا به او کمک کنند که به جای جزئیات، روی مسئله اصلی تمرکز کنند.
امکاناتی مثل تعامل با نمودار با حرکت ماوس، قفل نمودار در یک بازه زمانی برای جلوگیری از بروزرسانی و … درجه تعامل این نمودارها را بالا می برند و در درک بهتر عملکرد به کاربر کمک می کنند
حرکت در زمان: برای این کار کافی است روی نمودار کلیک (لمس) کنید و نگه دارید، بعد ماوس (دست) خود را به سمت چپ یا راست بکشید.
بزرگنمایی: برای مشاهده نمودار از نمای نزدیک تر، کافی است دکمه shift را فشار دهید و کمی نگه دارید و بعد با استفاده از چرخ اسکرول ماوس زوم کنید. اگر از تاچ پد استفاده می کنید، دو انگشت خود را فشار داده و حرکت دهید.
آلارم ها
بسیاری از نمودارهای موجود در داشبورد نت دیتا دارای آلارام های مخصوص هستند. این ابزار سه نوع هشدار را برای وضعیت هر بخش در نظر می گیرد: CLEAR، WARNING و CRITICAL. آلارم های WARNING و CRITICAL نشانه بروز یک نابه هنجاری هستند. برای دیدن آلارم ها کافی است روی آیکون زنگوله کلیک کنید. همچنین تب Log یک تاریخچه از آلارم های فعال و وضعیت آنها را در اختیار شما قرار می دهد.
نحوه آپدیت ابزار Netdata
برای این کار کافی است netdata.git که قبلا دانلود کرده اید را اجرا کنید:
$ cd /path/to/netdata.git
$ git pull
$ ./netdata-installer.sh
با انجام این دستورات، نت دیتا بروزرسانی می شود و ویژگی های مربوط به آخرین نسخه ان ابزار لحاظ می شود.
نحوه حذف ابزار نت دیتا
$ cd /usr/src/netdata.git ./netdata-uninstaller.sh –force
کنترل سطح دسترسی کاربران با قرار دادن فرم نام کاربری و رمز برای ورود به صفحه NetData
اگر گزارشات مربوط به عملکرد سرور لینوکس برای شما حساس است و دوست ندارید که هر کسی که IP سرور شما را می داند، به این ابزار مانیتورینگ دسترسی پیدا کند، باید با استفاده از Nginx یا Apache یک فرم ورود به آدرس مربوط به نت دیتا ایجاد کنید:
Nginx
اول با اجرای دستور زیر، یک فایل رمز ایجاد کنید. نام کاربری و رمز عبور را در قسمت مشخص شده وارد کنید. با این کار، رمز عبور در /etc/nginx/password ایجاد می شود.
$ printf "yourusername:$(openssl passwd -crypt 'yourpassword')" | sudo tee -a /etc/nginx/passwords
پیام زیر نشان می دهد که نام کاربری و رمز شما مورد تایید قرار گرفته است.
Warning: truncating password to 8 characters
سپس با دستور زیر، هاست مجازی Nginx را برای NetData ویرایش کنید:
$ sudo nano /etc/nginx/conf.d/netdata.conf
دستورات تایید بخش سرور در این قسمت مشخص می شود. auth_basic احراز هویت اولیه رمز را فعال می کند و auth_basic_user_file لوکیشن فایل رمز را تعیین می کند.
سپس، فایل را ذخیره کنید و ببندید و بعد از آن، Nginx را دوباره بارگذاری کنید.
$ sudo systemctl reload nginx
بعد از طی کردن این مراحل، ورود به آدرس ابزار NetData نیاز به وارد کردن نام کاربری و رمز عبور دارد.
Apache
اول با اجرای دستور زیر، یک فایل رمز ایجاد کنید. نام کاربری و رمز عبور را در قسمت مشخص شده وارد کنید. با این کار، رمز عبور در / etc/apache2/password ایجاد می شود.
$ printf "yourusername:$(openssl passwd -crypt 'yourpassword')" | sudo tee -a /etc/nginx/passwords
پیام زیر نشان می دهد که نام کاربری و رمز شما مورد تایید قرار گرفته است.
Warning: truncating password to 8 characters
سپس با دستور زیر، هاست مجازی Apache را برای نت دیتا ویرایش کنید.
$ sudo nano /etc/apache2/sites-enabled/netdata.conf
بخش <Proxy *>…</Proxy> را به شکل زیر تغییر دهید.
<Proxy *>
AllowOverride None AuthType Basic AuthName "Protected site" AuthUserFile
/etc/apache2/passwords Require valid-user </Proxy>
سپس، فایل را ذخیره کنید و ببندید و بعد از آن، Apache را دوباره بارگذاری کنید.
$ sudo systemctl reload apache2
بعد از طی کردن این مراحل، ورود به آدرس ابزار NetData نیاز به وارد کردن نام کاربری و رمز عبور دارد.
نکته مهم!
جا دارد به این نکته نیز اشاره کنیم که اگر به فکر امنیت و سرعت بالا هستید و به همین خاطر دوست دارید از یک سرور مجازی قدرتمند استفاده کنید، باید به فکر مانیتورینگ آن نیز باشید.
به این صورت که ابتدا از با توجه به نیازها و کاربرد خود یک سرور مجازی مناسب تهیه کنید و سپس برای نظارت بر عملکرد سرور در زمینه میزان استفاده از CPU و دیسک، روابط بین اپلیکیشن های سرور مجازی، سرویس ها در حال اجرا، تعداد درخواست های HTTP و جستجو های Mysql و درک الگوهای ترافیک سایت و نحوه تاثیر این معیارها بر عملکرد سرور از ابزارهای محبوبی مثل NetData استفاده کنید