وقتی سرور کند میشود، سوال اصلی این است که در همان لحظه چه اتفاقی افتاده. ابزارهایی که هر پنج دقیقه یک بار نمونه برداری میکنند، اوج های کوتاه را اصلا نمیبینند. Netdata داده ها را ثانیه به ثانیه جمع میکند و بدون اینکه چیزی پیکربندی کنید، سرویس های نصب شده روی سرور را خودش تشخیص میدهد و برایشان نمودار میسازد.
چرا راهنماهای قدیمی دیگر کار نمیکنند
بیشتر مطالبی که در اینترنت درباره نصب Netdata پیدا میکنید مربوط به سال ها قبل هستند و روش هایی مثل کلون کردن مخزن و اجرای دستی اسکریپت نصب را توضیح میدهند. آن مسیر دیگر توصیه نمیشود و نسخه هایی هم که در مخازن قدیمی توزیع ها بود، فاصله زیادی با نسخه فعلی دارد.
روش رسمی امروز یک اسکریپت راه انداز است که خودش تشخیص میدهد روی چه توزیعی هستید و در صورت امکان از بسته های بومی استفاده میکند. همین یک دستور روی اوبونتو و دبیان کافی است.
نصب
اسکریپت را دانلود و اجرا کنید. عادت خوبی است که قبل از اجرا یک نگاه به محتوای آن بیندازید؛ این کار را با هر اسکریپتی که قرار است با دسترسی مدیر اجرا شود انجام دهید.
اگر نمیخواهید آمار استفاده برای توسعه دهندگان ارسال شود، با گزینه مربوطه آن را غیرفعال کنید.
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.shless /tmp/netdata-kickstart.shsudo sh /tmp/netdata-kickstart.shsudo sh /tmp/netdata-kickstart.sh --disable-telemetryبررسی سرویس و اولین ورود
بعد از نصب، سرویس اجرا میشود و داشبورد روی پورت ۱۹۹۹۹ در دسترس است. وضعیت سرویس و پورت را بررسی کنید.
قبل از اینکه آدرس را در مرورگر باز کنید، بخش بعدی را بخوانید. به صورت پیشفرض این داشبورد برای همه قابل دسترسی است.
sudo systemctl status netdata
sudo ss -tlnp | grep 19999
مهمترین بخش: داشبورد پیشفرض باز است
این نکته ای است که خیلی ها از آن غافل میشوند. Netdata به صورت پیشفرض روی تمام رابط های شبکه گوش میدهد و هیچ رمز عبوری هم ندارد. یعنی اگر فایروال جلوی آن را نگیرد، هر کسی با دانستن آی پی سرور شما میتواند جزئیات کاملی از سخت افزار، سرویس های نصب شده، نام پایگاه داده ها و الگوی ترافیک شما ببیند.
این اطلاعات برای کسی که قصد نفوذ دارد بسیار ارزشمند است. پس بلافاصله بعد از نصب، یکی از دو راه زیر را انتخاب کنید: یا سرویس را فقط روی لوکال هاست محدود کنید و از طریق تونل یا ریورس پروکسی به آن دسترسی بگیرید، یا دسترسی به پورت را در فایروال به آدرس های مشخص محدود کنید.
cd /etc/netdata
sudo ./edit-config netdata.conf[web]
bind to = 127.0.0.1sudo systemctl restart netdata- فایل پیکربندی را حتما با اسکریپت edit-config باز کنید تا نسخه پیشفرض حفظ شود.
- اگر فقط گاهی به داشبورد نیاز دارید، تونل SSH ساده ترین راه است.
- اگر پورت را باز میگذارید، حتما آن را به آدرس های مشخص محدود کنید.
دسترسی امن از راه تونل SSH
وقتی سرویس فقط روی لوکال هاست گوش میدهد، ساده ترین راه دسترسی این است که یک تونل باز کنید. بعد از اجرای دستور زیر، آدرس داشبورد را روی مرورگر سیستم خودتان باز کنید. هیچ پورتی روی اینترنت باز نمیشود و ارتباط هم رمزنگاری شده است.
ssh -L 19999:127.0.0.1:19999 user@your-server-ip
# سپس در مرورگر: http://127.0.0.1:19999قرار دادن داشبورد پشت Nginx با رمز عبور
اگر چند نفر باید به داشبورد دسترسی داشته باشند، تونل عملی نیست. در این حالت داشبورد را روی لوکال هاست نگه دارید و دسترسی را از طریق Nginx با احراز هویت پایه بدهید. بعد از این کار حتما گواهی SSL هم نصب کنید؛ احراز هویت پایه روی ارتباط رمزنگاری نشده عملا بی فایده است.
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd adminserver {
listen 80;
server_name monitor.example.com;
location / {
auth_basic "Netdata";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:19999;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
}
}sudo nginx -t
sudo systemctl reload nginxنگهداری داده و مصرف منابع
نگرانی رایج این است که جمع آوری ثانیه ای، منابع سرور را مصرف کند. در عمل مصرف پردازنده کم است و داده ها به صورت فشرده نگهداری میشوند. با این حال روی سرورهای کوچک بهتر است بازه نگهداری را متناسب با فضای دیسک تنظیم کنید.
تنظیمات مربوط به پایگاه داده در بخش db فایل پیکربندی قرار دارد و هر گزینه در همان فایل توضیح داده شده است. اگر مقدار پیشفرض برای شما زیاد است، فضای اختصاص یافته را کم کنید.
systemctl status netdata
sudo du -sh /var/cache/netdataهشدارها و حذف نصب
Netdata مجموعه ای از هشدارهای پیشفرض دارد که مواردی مثل پر شدن دیسک یا فشار روی حافظه را تشخیص میدهد. برای اینکه این هشدارها به ایمیل یا تلگرام برسند، فایل مربوط به اعلان ها را ویرایش کنید.
اگر خواستید ابزار را حذف کنید، همان اسکریپت نصب گزینه حذف هم دارد و نیازی به پاک کردن دستی فایل ها نیست.
cd /etc/netdata
sudo ./edit-config health_alarm_notify.confsudo sh /tmp/netdata-kickstart.sh --uninstall- هشدارها را روی آستانه هایی تنظیم کنید که واقعا نیاز به واکنش دارند.
- هشدار بیش از حد باعث میشود بعد از مدتی همه را نادیده بگیرید.
- بعد از هر تغییر پیکربندی، سرویس را ری استارت و وضعیت را بررسی کنید.
پرسش های پرتکرار
آیا داشبورد Netdata به صورت پیشفرض امن است؟
خیر. به صورت پیشفرض روی تمام رابط های شبکه و بدون رمز عبور در دسترس است. باید آن را به لوکال هاست محدود کنید یا پشت پروکسی با احراز هویت قرار دهید.
مصرف منابع Netdata روی سرورهای کوچک زیاد نیست؟
مصرف پردازنده کم است و داده ها به صورت فشرده نگهداری میشوند. روی سرورهای کوچک میتوانید بازه نگهداری داده را متناسب با فضای دیسک کم کنید.
چطور Netdata را به طور کامل حذف کنم؟
همان اسکریپت نصب گزینه حذف دارد و نیازی به پاک کردن دستی فایل ها نیست.
به راهنمای بیشتری نیاز دارید؟
تیم پشتیبانی هایوهاست برای انتخاب و مدیریت سرویس کنار شماست.