مانیتورینگ عملکرد سرور لینوکس با Netdata
در این مقاله میخوانید
- قابلیتها و ویژگیهای Netdata
- مرحله اول: نحوه نصب Netdata روی سرور لینوکس
- مشکلات رایج حین نصب Netdata روی سرور لینوکس
- مرحله دوم: راهاندازی Reverse Proxy
- مرحله سوم: تنها از لوکال هاست Listen شود!
- مرحله چهارم: HTTPS را فعال کنید
- مرحله پنجم: احراز هویت رمزعبور را فعال کنید
- اسکرینشاتهایی از مانیتورینگ عملکرد Netdata سرور لینوکس
- حذف حافظه De-duplication
- نحوه فعالسازی هشدار ایمیل
- نحوه حذف Netdata
- نحوه بهروزرسانی Netdata
- نحوه مانیتورینگ عملکرد وبسرور Nginx
- نحوه ایجاد فرمتِ custom log
- نحوه مانیتورینگ عملکرد Apache
- سخن نهایی
- سؤالات متداول
Netdata ابزاری برای مدیریت یا مانیتورینگ عملکرد سرور لینوکس است. این ابزار به شما اجازه میدهد تا بر CPU ،RAM، میزان ورودی یا خروجی دیسک، ترافیک شبکه، Postfix و… نظارت کنید. Netdata به زبان برنامهنویسی C نوشته شده و بسیار سریع و کارآمد است.
در این مقاله از وبلاگ پارس پک، قصد داریم نحوه نصب Netdata روی سرورهای Debian/Ubuntu و Redhat/CentOS/Fedora را آموزش دهیم. درادامه، درباره نحوه فعالسازی احراز هویت رمزعبور در رابطِ وب Netdata نیز صحبت میکنیم تا فقط کاربران مجاز و مدنظرتان بتوانند به آن دسترسی داشته باشند.
به این نکته دقت کنید که اگر میل سرور را با iRedMail اجرا میکنید، دیگر لازم نیست این آموزش را دنبال کنید؛ زیرا iRedMail بهطور خودکار ابزار Netdata را برای شما نصب خواهد کرد. برای دسترسی به Netdata در https://mail.example.com/Netdata/ کافی است اکانت postmaster و رمزعبور خود را وارد کنید.
قابلیتها و ویژگیهای Netdata
ابزار Netdata قابلیتها و ویژگیهای کاربردی بسیار زیادی دارد که درادامه به برخی از آنها اشاره میکنیم:
- ابزار Netdata به شما کمک میکند تا با هزاران متریک و تجسمهای تعاملی و درک عمیق اخطارها، در کوتاهترین زمان دلیل کاهش سرعت و دیگر مشکلات را در زیرساخت سیستم خود تشخیص دهید.
- این ابزار استاتیک سیستم را در هر ثانیه بهروزرسانی میکند.
- Netdata به شما کمک میکند ازطریق eBPF درک عمیقی از هسته اصلی لینوکس پیدا کنید.
- با این ابزار میتوانید لگهای سرور وب Apache و Nginx را تجزیهوتحلیل کنید. همچنین برای نشاندادن زمان پردازش ریکوئست، از زمان پاسخگویی و آمار عملکرد بسیاری دیگر از بخشها بهره ببرید.
- با استفاده از Netdata میتوانید از سلامت پایگاه داده مطمئن شوید و مانیتورینگ عملکرد (MySQL/MariaDB و PostgreSQL و MongoDB)، ازجمله Galera Cluster را انجام دهید.
- ابزار Netdata بسیار سریع است و حجم کمی را اشغال و بهطور پیشفرض تنها ۱درصد پردازنده را استفاده میکند.
مرحله اول: نحوه نصب Netdata روی سرور لینوکس
Netdata در بسیاری از ریپازیتوریهای لینوکس قرار دارد؛ بااینحال، احتمال دارد جدیدترین نسخه آن دردسترس نباشد. بهمنظور دریافت جدیدترین نسخه، میتوانید از اسکریپت رسمی Netdata برای نصب نرمافزار استفاده کنید. برای نصب Netdata در سرور لینوکس، کافی است که دستور زیر را در سیستم لینوکس خود اجرا کنید:
bash <(curl -Ss https://my-Netdata.io/kickstart.sh) --disable-telemetry
توجه: اگر دسترسی روت نداشته باشید، ممکن است از شما بخواهد تا رمزعبور خود را وارد کنید.
توجه کنید پس از نصب، Netdata سعی میکند پیشنیازهای مرتبطی را نصب کند که قبلاً روی سیستم شما نصب نشدهاند. سپس در مرحله بعد، خلاصهای از محل نصب فایلها در سیستم را به شما گزارش میدهد. اکنون برای شروع نصب و راهاندازی Enter را فشار دهید.
پس از نصب Netdata، باید بهطور خودکار راهاندازی و بوت سیستم فعال شود. وضعیت نصب و راهاندازی را میتوانید در Systemctl Status مشاهده کنید.
systemctl status Netdata
درنهایت پس از نصب، خروجی زیر را مشاهده خواهید کرد:
* Netdata.service - Real time performance monitoring Loaded: loaded (/lib/systemd/system/Netdata.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-07-10 16:44:51 SAST; 18s ago Process: 1059965 ExecStartPre=/bin/mkdir -p /var/cache/Netdata (code=exited, status=0/SUCCESS) Process: 1059977 ExecStartPre=/bin/chown -R Netdata:Netdata /var/cache/Netdata (code=exited, status=0/SUCCESS) Process: 1059978 ExecStartPre=/bin/mkdir -p /var/run/Netdata (code=exited, status=0/SUCCESS) Process: 1059979 ExecStartPre=/bin/chown -R Netdata:Netdata /var/run/Netdata (code=exited, status=0/SUCCESS) Main PID: 1059980 (Netdata) Tasks: 49 (limit: 38335)
اگر خطوط زیر را در خروجی خود مشاهده کردید، نگران نباشید! مراحل نصب همچنان بهدرستی انجام شده است:
ebpf.plugin[1060201]: PROCFILE: Cannot open file '/etc/netdata/apps_groups.conf' ebpf.plugin[1060201]: Cannot read process groups configuration file '/etc/netdata/apps_groups.conf'. Will try '/usr/lib/netdata/conf.d/apps_groups.conf'
Netdata بهطور پیشفرض در پورت 19999 قرار میگیرد؛ بنابراین، عبارت server-ip:19999 را در نوار آدرس مرورگر خود وارد کنید تا به رابط وب Netdata دسترسی پیدا کنید. توجه کنید که این مرحله مکانیزم احراز هویت ندارد؛ بههمیندلیل، هر فردی که آدرس IP شما را بداند، میتواند به آن دسترسی پیدا کند!
اگر فایروال را در سرور خود فعال کردهاید، باید پورت TCP 19999 را باز کنید. برای مثال، اگر از فایروال UFW در دبیان یا اوبونتو استفاده میکنید، دستور زیر را اجرا کنید:
sudo ufw allow 19999/tcp
اگر از Firewalld در RHEL/CentOS/Alma Linux/Rocky Linux استفاده میکنید، باید دستورهای زیر را اجرا کنید:
sudo firewall-cmd --permanent --add-port=19999/tcp sudo systemctl reload firewalld
مشکلات رایج حین نصب Netdata روی سرور لینوکس
اگر Netdata با موفقیت در سرور لینوکس نصب نشود، خطاهای زیر را مشاهده خواهید کرد:
Makefile:3001: recipe for target 'all' failed make: *** [all] Error 2 FAILED FAILED ABORTED Netdata-installer.sh exited with error
بنابراین، بهعنوان گزینه دیگر میتوانید Netdata را با استفاده از پکیج deb یا RPM نصب کنید. درادامه، نحوه نصب آن را در توزیعهای مختلف به شما آموزش خواهیم داد:
در دبیان و اوبونتو باید از دستور زیر استفاده کنید:
curl -s https://packagecloud.io/install/repositories/Netdata/Netdata/script.deb.sh | sudo bash sudo apt install Netdata
در RHEL/CentOS/Alma Linux/Rocky Linux/Fedora باید از دستور زیر استفاده کنید:
curl -s https://packagecloud.io/install/repositories/Netdata/Netdata/script.rpm.sh | sudo bash sudo dnf install Netdata
در OpenSUSE دستور زیر را وارد کنید:
url -s https://packagecloud.io/install/repositories/Netdata/Netdata/script.rpm.sh | sudo bash sudo dnf install Netdata
مرحله دوم: راهاندازی Reverse Proxy
برای رابط وب ازطریق نام دامنه بهجای آدرس IP و شماره پورت، میتوانید با Nginx یا Apache پروکسی معکوس برای Netdata راهاندازی کنید. همچنین، این کار به شما اجازه میدهد تا HTTPS را بعداً فعال کنید.
وبسرور Nginx
نخست باید Nginx را روی سرور لینوکس نصب کنید. درادامه، دستورهای لازم برای هرکدام از سرورهای لینوکس را فهرست کردهایم:
Debian/Ubuntu
sudo apt install nginx
Redhat/CentOS/Fedora
sudo dnf install nginx
OpenSUSE
sudo zypper install nginx
Arch Linux/Manjaro
sudo pacman -S nginx
پس از نصب Nginx، فایل پیکربندی میزبان مجازی برای Netdata در پوشه /etc/nginx/conf.d/ ایجاد کنید. برای انجام این کار، کافی است از دستور زیر استفاده کنید:
sudo nano /etc/nginx/conf.d/Netdata.conf
سپس متن زیر را در فایل قرار دهید. متن قرمزرنگ را با نام دامنه واقعی خود جایگزین کنید و فراموش نکنید که رکورد DNS برای این زیردامنه تنظیم کنید:
upstream backend { server 127.0.0.1:19999; keepalive 64; } server { listen 80; server_name Netdata.example.com; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://backend; proxy_http_version 1.1; proxy_pass_request_headers on; proxy_set_header Connection "keep-alive"; proxy_store off; }
حال این فایل را ذخیره کنید و ببندید. سپس پیکربندی Nginx را آزمایش کنید:
sudo nginx -t
اگر آزمایش پیکربندی موفقیتآمیز بود، Nginx را reload کنید:
sudo systemctl reload nginx
اکنون رابط وب Netdata در http://Netdata.example.com دردسترس است.
وبسرور آپاچی (Apache)
آپاچی را روی سرور لینوکس نصب کنید. برای نصب آپاچی، از دستورهای زیر برای هرکدام از توزیعهای لینوکس مدنظرتان استفاده کنید:
Debian/Ubuntu
sudo apt install apache2
Redhat/CentOS/Fedora
sudo dnf install httpd
OpenSUSE
sudo zypper install apache2
Arch Linux/Manjaro
sudo pacman -S apache
پس از نصب Apache، فایل پیکربندی Virtual Host برای Netdata ایجاد کنید. از دستورهای زیر برای انجام این کار استفاده کنید:
sudo nano /etc/apache2/sites-available/Netdata.conf
یا
sudo nano /etc/httpd/conf.d/Netdata.conf
اکنون متن زیر را در فایل قرار دهید. متن قرمزرنگ را با نام دامنه واقعی خود جایگزین کنید. مجدداً فراموش نکنید که رکورد DNS را برای این زیردامنه تنظیم کنید:
<VirtualHost *:80> ProxyRequests Off ProxyPreserveHost On ServerName Netdata.example.com <Proxy *> Require all granted </Proxy> ProxyPass "/" "http://localhost:19999/" connectiontimeout=5 timeout=30 keepalive=on ProxyPassReverse "/" "http://localhost:19999/" ErrorLog ${APACHE_LOG_DIR}/Netdata-error.log CustomLog ${APACHE_LOG_DIR}/Netdata-access.log combined </VirtualHost>
درادامه، فایل را ذخیره کنید و آن را ببندید. برای استفاده از Apache بهعنوان پروکسی معکوس، باید ماژولهای پراکسی و ماژول هِدِر را فعال کنید. از دستور زیر برای انجام این کار استفاده کنید:
sudo a2enmod proxy proxy_http rewrite headers proxy_wstunnel
سپس این میزبان مجازی را فعال کنید:
sudo a2ensite Netdata.conf
Apache را ریستارت کنید:
sudo systemctl restart apache2
اکنون میتوانید با استفاده از نام دامنه Netdata.example.com به رابط وب Netdata دسترسی پیدا کنید.
مرحله سوم: تنها از لوکال هاست Listen شود!
بهطور پیشفرض، Netdata آدرس IP عمومی را میپذیرد (اصطلاحاً listen میکند)؛ درنتیجه اکنون که نتدیتا ازطریق پراکسی معکوس Nginx دردسترس قرار دارد، برای امنیت بیشتر بهتر است که فقط به 127.0.0.1 (لوکال هاست) گوش بسپارد. برای انجام این کار، ازطریق دستور زیر فایل پیکربندی Netdata را باز کنید:
sudo nano /etc/Netdata/Netdata.conf
به بخش [web] بروید و خط زیر را پیدا کنید (خط 67):
# bind to = *
علامت # را بردارید و مقدار آن را 127.0.0.1 قرار دهید:
bind to = 127.0.0.1
حالا آن را ذخیره کنید و فایل را ببندید. پسازآن، Netdata را ریستارت کنید تا تغییرات اعمال شود:
sudo systemctl restart Netdata
لطفاً توجه کنید که مقدار bind to را روی آدرس IPv6 ::1 تنظیم کنید. سپس در فایل پیکربندی میزبان مجازی Nginx، باید آدرس IPv6 را نیز در قسمت upstream مانند زیر مشخص کنید:
upstream backend { server [::1]:19999; keepalive 64; }
مرحله چهارم: HTTPS را فعال کنید
به این نکته حتماً توجه کنید که از TLS برای رمزگذاری ترافیک HTTP استفاده کنید. HTTPS را با نصب گواهی TLS که بهرایگان صادر میشود، میتوانید از Let’s Encrypt فعال کنید (خرید و نصب SSL ازطریق پارسپک هم امکانپذیر است).
برای نصب Let’s Encrypt Client (certbot) باید دستور زیر را اجرا کنید:
Debian/Ubuntu
sudo apt install certbot
RHEL/CentOS/Alma Linux/Rocky Linux
sudo dnf install certbot
OpenSUSE
sudo zypper install certbot
Arch Linux
sudo pacman -S certbot
اگر از وبسرور Nginx استفاده میکنید؛ پس باید افزونه Certbot Nginx را نیز نصب کنید:
sudo apt install python3-certbot-nginx
سپس دستور زیر را برای دریافت و نصب گواهی TLS اجرا کنید:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d Netdata.example.com
اگر از Apache استفاده میکنید؛ بنابراین، باید پلاگین Certbot Apache را نصب کنید:
sudo apt install python3-certbot-apache
سپس دستور زیر را برای دریافت و نصب گواهی TLS اجرا کنید:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d Netdata.example.com
درادامه، راهنمای دستورهای بالا آمده است:
- nginx–: استفاده از افزونه Nginx
- apache–: استفاده از افزونه Apache
- agree-to–: موافقت با شرایط خدمات
- redirect–: تغییر مسیر HTTPS به 301
- hsts–: هِدِر Strict-Transport-Security را به هر پاسخ HTTP اضافه کنید. با این دستور، مرورگر را به استفاده از TLS برای دامنه مجبور خواهید کرد.
- staple-ocsp –: این کد OCSP Stapling را فعال میکند. درحقیقت، پاسخ معتبر OCSP به گواهی (Certificate) ارائهشده سرور در طول TLS منگنه (Staple) میشود.
اکنون گواهی باید دریافت و بهطور خودکار نصب شود.
مرحله پنجم: احراز هویت رمزعبور را فعال کنید
اگر Netdata را روی سرور لینوکس نصب کردهاید، باید کنترل دسترسی را فعال کنید تا فقط کاربران مجاز بتوانند ببینند چه برنامههایی روی سیستم شما اجرا میشوند.
وبسرور 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 رمزعبور فایل را مشخص میکند.
server { ..... auth_basic "Protected"; auth_basic_user_file /etc/nginx/passwords; ....
اکنون دستورها را ذخیره کنید و فایل را ببندید. سپس Nginx را reload کنید:
sudo systemctl reload nginx
درنهایت، مرورگر از شما میخواهد که نام کاربری و رمزعبور را وارد کنید.
وبسرور آپاچی Apache
با دستور زیر فایل رمز ایجاد کنید. نام کاربری و رمزعبور دلخواه خود را بهجای متن قرمز جایگزین کنید. رمزعبور در /etc/apache2/password ایجاد خواهد شد.
printf "yourusername:$(openssl passwd -crypt 'yourpassword')" | sudo tee -a /etc/apache2/passwords
پیام هشدار زیر بهمعنی تأیید رمزعبورتان است؛ پس نگران نشوید:
Warning: truncating password to 8 characters
سپس فایل پیکربندی میزبان مجازی آپاچی را برای مانیتورینگ Netdata ویرایش کنید:
sudo nano /etc/apache2/sites-enabled/Netdata-le-ssl.conf
بخش <Proxy *>…</Proxy> را بهصورت زیر تغییر دهید:
<Proxy *> AllowOverride None AuthType Basic AuthName "Protected site" AuthUserFile /etc/apache2/passwords Require valid-user </Proxy>
کد را ذخیره کنید و فایل را ببندید. درادامه، Apache را ریستارت کنید:
sudo systemctl restart apache2
حالا مرورگر از شما میخواهد که نام کاربری و رمزعبور را وارد کنید (مانند وبسرور Nginx).
اسکرینشاتهایی از مانیتورینگ عملکرد Netdata سرور لینوکس
برای آشنایی بیشتر با محیط Netdata، اسکرینشاتهایی برایتان در نظر گرفتهایم تا نظارت بر سرور لینوکس ازطریق نتدیتا را بهتر درک کنید:
حذف حافظه De-duplication
اگر حافظ کرنلِ de-duper (به نام Kernel Same-page Merging یا KSM) در سیستم شما موجود است، میتوانید آن را فعال کنید تا ۴۰ تا ۶۰درصد از حافظه Netdata ذخیره شود. برای فعالکردن KSM، دستور زیر را بهعنوان root اجرا کنید؛ زیرا sudo کار نمیکند:
echo 1 >/sys/kernel/mm/ksm/run echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs
نحوه فعالسازی هشدار ایمیل
برای این کار، فایل پیکربندی Health Alarm را ویرایش کنید:
sudo /etc/Netdata/edit-config health_alarm_notify.conf
خط زیر را پیدا کنید:
DEFAULT_RECIPIENT_EMAIL="root"
بهطور پیشفرض، هشدارهای ایمیل برای کاربر در لوکال هاست ارسال میشود. کافی است آن را به آدرس ایمیل خود تغییر دهید:
[email protected]
دستور را ذخیره کنید و فایل را ببندید. سپس Netdata را مجدداً راهاندازی کنید:
sudo systemctl restart Netdata
اگر از iRedMail استفاده میکنید، هشدارهای ایمیل غیرفعال است و خط زیر را در این فایل مشاهده خواهید کرد:
SEND_EMAIL="NO"
اکنون آن را تغییر دهید:
EMAIL_SENDER="[email protected]" # enable/disable sending emails SEND_EMAIL="YES" # if a role recipient is not configured, an email will be send to: [email protected]
دستور را ذخیره کنید و فایل را ببندید. درادامه، Netdata را ریستارت کنید:
sudo systemctl restart Netdata
حالا برای ارسال هشدارهای ایمیلی باید Postfix را نصب کنید. درادامه، دستور نصب آن را برای توزیعهای مختلف لینوکس ذکر کردهایم:
Debian/Ubuntu
sudo apt install postfix
RHEL/CentOS/Alma Linux/Rocky Linux
sudo dnf install postfix
OpenSUSE
sudo zypper install postfix
نحوه حذف Netdata
اسکریپت حذفِ نتدیتا در /usr/libexec/Netdata/Netdata-uninstaller.sh موجود است.
نحوه بهروزرسانی Netdata
اسکریپت بهروزرسانی مانیتورینگ Netdata در /usr/libexec/Netdata/Netdata-updater.sh موجود است؛ بنابراین زمانی که نسخه جدید منتشر شد، دستور زیر را اجرا کنید:
sudo /usr/libexec/Netdata/Netdata-updater.sh
خوشبختانه نیازی نیست این کار را بهصورت دستی انجام دهید. دستور cron (/etc/cron.daily/Netdata-updater) را Netdata اضافه کرده است تا بهطور خودکار نرمافزار را روزانه بهروزرسانی کند.
نحوه مانیتورینگ عملکرد وبسرور Nginx
برای جمعآوری مانیتورینگ عملکرد Nginx، باید Nginx stub_status را پیکربندی کنید:
sudo nano /etc/nginx/conf.d/stub_status.conf
دستورهای زیر را به این فایل اضافه کنید:
server { listen 127.0.0.1:80; server_name 127.0.0.1; location /nginx_status { stub_status on; allow 127.0.0.1; deny all; } }
فایل را ذخیره کنید و ببندید. سپس Nginx را reload کنید تا تغییرات اعمال شوند:
sudo systemctl reload nginx
اکنون میتوانید Nginx را در Netdata مشاهده کنید که ازطریق منو web log nginx در نوار کناری سمت راست دردسترس است.
Netdata میتواند اطلاعات را از فایلهای لاگِ Nginx جمعآوری کند؛ بااینحال، فرمت log پیشفرض اطلاعات محدودی دراختیارتان قرار میدهد. اگر واقعاً به عملکرد برنامه اهمیت میدهید، باید custom log format ایجاد کنید تا زمان ریکوئست، زمان پاسخدهی، cache hit و… را نشان دهد.
نحوه ایجاد فرمتِ custom log
برای ایجاد custom log format، باید مراحل زیر را دنبال کنید.
فایل nginx.conf را باز کنید:
sudo nano /etc/nginx/nginx.conf
خطوط زیر را در کانتکستِ {…} http بالای دستورالعملها اضافه کنید. در این مرحله، باید فرمتِ لاگِ سفارشی Nginx به نام Netdata را ایجاد کنید که شامل اطلاعات مربوط به request_time و upstream_response_time است و در ثانیه با وضوح میلیثانیه اندازهگیری میشود:
log_format Netdata '$remote_addr - $remote_user [$time_local]' '"$request" $status $body_bytes_sent ' '$request_length $request_time $upstream_response_time' '"$http_referer" "$http_user_agent"';
دستورها را ذخیره کنید و فایل را ببندید. سپس فایل پیکربندی میزبان مجازی Nginx خود را باز کنید. برای مثال:
sudo nano /etc/nginx/conf.d/linuxbabe.com.conf
فایل پیکربندی میزبان مجازی Nginx شما ممکن است در پوشه /etc/nginx/sites-enabled/ باشد. از دایرکتوری /etc/nginx/conf.d/ میتوانید استفاده کنید.
در کانتکستِ server {…} دو خط زیر را برای فعالسازی access log و error log اضافه کنید. گزارش دسترسی از فرمت Netdata و error log از warn log level استفاده میکند:
access_log /var/log/nginx/linuxbabe.com.access.log Netdata; error_log /var/log/nginx/linuxbabe.com.error.log warn;
دستورها را ذخیره کنید و فایل را ببندید. حالا Nginx را reload کنید تا تغییرات اعمال شوند:
sudo systemctl reload nginx
درادامه، فایل Netdata web_log.conf را ویرایش کنید:
sudo /etc/Netdata/edit-config python.d/web_log.conf
به قسمت log Nginx بروید. خطوط زیر را اضافه کنید:
yourdomain.com: name: 'yourdomain' path: '/var/log/nginx/yourdomain.com.access.log'
*عکس 10
دستورها را ذخیره کنید و فایل را ببندید. سپس مجوز خواندن را به کاربر Netdata بدهید:
sudo setfacl -R -m u:Netdata:rx /var/log/nginx/
Netdata را ریستارت کنید:
sudo systemctl restart Netdata
نحوه مانیتورینگ عملکرد Apache
ابتدا دستور زیر را برای ایجاد فایل Netdata apache.conf اجرا کنید. توجه کنید که لازم نیست چیزی را در این فایل ویرایش کنید. برای خروج فقط کافی است Ctrl+X را فشار دهید:
sudo /etc/Netdata/edit-config python.d/apache.conf
پسازآن، فایل پیکربندی اصلی آپاچی را ویرایش کنید:
sudo nano /etc/apache2/apache2.conf
بخش LogFormat را پیدا و دو فرمت لاگِ جدید اضافه کنید:
LogFormat "%h %l %u %t \"%r\" %>s %O %I %D \"%{Referer}i\" \"%{User-Agent}i\"" vhost_Netdata LogFormat "%h %l %u %t \"%r\" %>s %O %I %D \"%{Referer}i\" \"%{User-Agent}i\"" Netdata
دستورها را ذخیره کنید و فایل را ببندید. سپس فایل میزبان مجازی آپاچی خود را ویرایش و از تنظیمات CustomLog زیر استفاده کنید:
CustomLog "/var/log/apache2/yourdomain.com.access.log" Netdata
دستورهای زیر را ذخیره کنید و فایل را ببندید. بعدازآن، فایل Netdata web_log.conf را ویرایش کنید:
sudo /etc/Netdata/edit-config python.d/web_log.conf
درادامه، به بخش Apache log بروید و خطوط زیر را اضافه کنید:
yourdomain: name: 'yourdomain' path: '/var/log/apache2/yourdomain.com.access.log'
دستورها را ذخیره کنید و فایل را ببندید. حالا به کاربر Netdata مجوز خواندن (Read) دهید:
sudo setfacl -R -m u:Netdata:rx /var/log/apache2/
سپس Apache و Netdata را ریاستارت کنید:
sudo systemctl restart apache2 Netdata
اگر Netdata متریکهای عملکرد را برای میزبان مجازی Apache نشان نمیدهد، بررسی کنید که فایل web_log.conf اشتباه تایپی یا نحوی نداشته باشد.
سخن نهایی
مانیتورینگ عملکرد سرور لینوکس با Netdata را کاملاً در این مقاله آموزش دادیم. امیدواریم که با خواندن این مقاله پاسخ پرسشهای خود را پیدا کرده باشید. همچنین، شما میتوانید مشکلات خود را با کارشناسان پارس پک در میان بگذارید و راهنماییهای لازم را دریافت کنید.
سؤالات متداول
۱. مانیتورینگ Netdata چیست؟
Netdata یکی از ابزارهای عالی لینوکس است که نظارت بر عملکرد در زمان واقعی (در هر ثانیه) را برای سیستمهای لینوکسی، برنامهها، دستگاههای SNMP و… امکانپذیر میکند. همچنین، از اتفاقهایی که اخیراً روی سیستمها و برنامههای لینوکس شما افتاده است، گزارش مفیدی ارائه میدهد.
۲. Netdata متنباز است؟
ابزار نتدیتا کاملاً متنباز است و بیش از ۳۰۰ مشارکتکننده از آن پشتیبانی میکنند. همچنین، همه کامپوننتهای آن تحت مجوز GPL v3 در GitHub دردسترس هستند.
۳. چگونه Netdata را حذف کنیم؟
بستگی به روش نصب شما دارد. اگر از پکیجهای نیتیو (deb یا rpm) استفاده میکنید، آن را با کمک پکیج منیجرِ (apt یا yum) حذف کنید؛ درغیراینصورت، از اسکریپتهای حذفکننده زیر استفاده کنید:
/opt/Netdata/usr/libexec/Netdata/Netdata-uninstaller.sh
یا
/usr/libexec/Netdata/Netdata-uninstaller.sh