مانیتورینگ عملکرد سرور لینوکس با Netdata

مانیتورینگ عملکرد سرور لینوکس با Netdata
Avatar
نویسنده: سانیا عبدی‌پور
دوشنبه 12 اردیبهشت 1401
مطالعه: ۱۹ دقیقه ۰ نظر ۸۴۷ بازدید

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 قابلیت‌ها و ویژگی‌های کاربردی بسیار زیادی دارد که درادامه به برخی از آن‌ها اشاره می‌کنیم:

  • ابزار 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

توجه کنید پس از نصب، Netdata سعی می‌کند پیش‌نیازهای مرتبطی را نصب کند که قبلاً روی سیستم شما نصب نشده‌اند. سپس در مرحله بعد، خلاصه‌ای از محل نصب فایل‌ها در سیستم را به شما گزارش می‌دهد. اکنون برای شروع نصب و راه‌اندازی Enter را فشار دهید.

استفاده از netdata برای مانیتورینگ سرور لینوکس
نحوه نصب Netdata روی سرور لینوکسی

پس از نصب 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 شما را بداند، می‌تواند به آن دسترسی پیدا کند!

استفاده از Netdata برای سرور لینوکس
آموزش استفاده از Netdata برای مانیتورینگ سرور لینوکسی

اگر فایروال را در سرور خود فعال کرده‌اید، باید پورت 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، اسکرین‌شات‌هایی برایتان در نظر گرفته‌ایم تا نظارت بر سرور لینوکس ازطریق نت‌دیتا را بهتر درک کنید:

عملکرد CPU در سرور لینوکس
بررسی استفاده از CPU در سرور لینوکسی با Netdata
بررسی عملکرد سرور لینوکسی با Netdata
بررسی استفاده از RAM در سرور لینوکسی با استفاده از Netdata
آموزش کار با Netdata
آموزش کار با  Netdata برای بررسی I/O دیسک
دستورات مانیتورینگ سرور لینوکس
بررسی عملکرد ترافیک شبکه در سرور لینوکسی

حذف حافظه 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 ابزار مانیتورینگ سرور
بررسی Logهای Nginx با کمک Netdata

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