مانیتورینگ سرور چیست؟ انواع، ابزارها و مانیتورینگ رایگان آنلاین
سرور نیمهشب از دسترس خارج میشود و شما صبح روز بعد، از روی تیکت مشتری متوجه ماجرا میشوید. یا دیسک بهآرامی پر میشود و دیتابیس بدون هیچ هشدار قبلی از کار میافتد. تقریباً همه این اتفاقها قابل پیشبینی بودند؛ فقط کسی حواسش نبوده. کاری که مانیتورینگ سرور انجام میدهد دقیقاً همین است: بهجای شما حواسش هست و پیش از آنکه کاربر متوجه شود، به شما خبر میدهد.
مانیتورینگ سرور مجموعهای از فرآیندها و ابزارها است که به مدیران شبکه و مسئولان فناوری اطلاعات اجازه میدهد بهصورت پیوسته عملکرد و سلامت سرورها را زیر نظر داشته باشند. این نظارت شامل منابع سختافزاری، سرویسهای نرمافزاری، ترافیک شبکه، وضعیت سیستمعامل، اپلیکیشنها، لاگها و امنیت سرور میشود. هدف نهایی از مانیتورینگ، جلوگیری از بروز اختلال، پیشبینی خرابیها، بهبود عملکرد و پاسخ سریع به مشکلات است.

انواع مانیتورینگ سرور
۱. مانیتورینگ منابع سختافزاری (Hardware Monitoring)
نظارت بر مصرف CPU، RAM، دیسک، دمای سیستم، وضعیت فنها، منابع تغذیه و سایر اجزای سختافزاری. مهمترین هشدارهای این دسته، پرشدن پارتیشنها و فرسودگی دیسک است؛ چون هر دو خرابیهایی هستند که از قبل خبر میدهند و اگر کسی نگاهشان نکند، سرویس را بیسروصدا از کار میاندازند.
۲. مانیتورینگ سرویسها (Service Monitoring)
بررسی صحت عملکرد سرویسهایی مانند Apache، Nginx، MySQL، FTP و SMTP و اطلاعرسانی در صورت توقف یا اختلال. توجه کنید که «بالا بودن پروسه» با «سالم بودن سرویس» یکی نیست؛ MySQL میتواند در حال اجرا باشد ولی بهدلیل پر شدن تعداد کانکشنها به هیچ درخواستی پاسخ ندهد. بنابراین علاوه بر وضعیت پروسه، یک چک واقعی روی پورت یا یک کوئری ساده هم تعریف کنید.
۳. مانیتورینگ شبکه (Network Monitoring)
شامل بررسی ترافیک شبکه، اتصالات، تأخیر (latency)، دسترسیپذیری از بیرون، وضعیت DNS و حملات احتمالی.
۴. مانیتورینگ اپلیکیشنها (Application Monitoring)
تحلیل عملکرد برنامههای نصبشده روی سرور، میزان مصرف منابع و لاگهای خطا.
۵. مانیتورینگ فایلها و لاگها (File & Log Monitoring)
بررسی تغییرات در فایلهای سیستم، لاگهای امنیتی، رخدادهای مشکوک، تلاش برای نفوذ و رفتارهای غیرعادی.
۶. مانیتورینگ بیرونی و در دسترسبودن (External / Uptime Monitoring)
این نوع مانیتورینگ معمولاً فراموش میشود، در حالی که بدون آن بقیه کارها ناقص است. ابزاری که بهصورت Agent روی خود سرور نصب شده، وقتی سرور از کار بیفتد نمیتواند به شما خبر بدهد؛ چون خودش هم با سرور از کار افتاده است. حتی اگر سرور مانیتورینگ را جدا کرده باشید، اگر در همان شبکه یا همان دیتاسنتر باشد، قطعی upstream را نمیبیند. راهحل، یک سرویس بیرونی است که از چند نقطه جغرافیایی مستقل، سایت و سرویسهای شما را از بیرون صدا بزند. در ادامه یکی از رایگانترین گزینههای این دسته را معرفی میکنیم.
ابزارهای معروف مانیتورینگ سرور
Zabbix
Zabbix یک ابزار متنباز (اوپنسورس) و قدرتمند برای مانیتورینگ زیرساخت، سرویس، اپلیکیشن و شبکه است.

ویژگیها:
- رابط وب گرافیکی
- مانیتورینگ مبتنی بر Agent و SNMP
- ارسال هشدار از طریق ایمیل، SMS و Telegram
- پشتیبانی از auto-discovery و ساخت map
انتخاب نسخه — این قسمت مهم است: راهنماهای قدیمی (از جمله نسخه پیشین همین مقاله) نصب Zabbix 6.4 را نشان میدادند. نسخه ۶.۴ طبق سیاست رسمی چرخه عمر Zabbix به پایان پشتیبانی رسیده و دیگر بهروزرسانی امنیتی نمیگیرد؛ آن دستور wget قدیمی را اجرا نکنید. در زمان نگارش این مطلب، نسخه ۷.۰ نسخه LTS پشتیبانیشده است و نسخههای استانداردِ جدیدتر هم منتشر میشوند. پیش از نصب، نسخه فعلی را از صفحه رسمی zabbix.com/download بگیرید؛ آن صفحه با انتخاب سیستمعامل، دیتابیس و وبسرور، دقیقاً همان دستورهای مخصوص شما را تولید میکند.
مراحل نصب (Ubuntu 24.04، شاخه ۷.۰ LTS با MySQL و Apache):
یک هشدار پیش از شروع: دستور زیر MySQL را روی سرور نصب میکند. اگر سرور شما کنترلپنل (cPanel، DirectAdmin و مانند آن) دارد، از قبل MariaDB یا MySQL مدیریتشده دارد و نصب دوباره میتواند دیتابیسهای مشتریان را از کار بیندازد. در آن حالت این خط را اجرا نکنید و از همان دیتابیس موجود استفاده کنید. بهترین کار، نصب Zabbix روی یک سرور جداگانه است.
sudo apt update sudo apt install -y mysql-server wget # بسته مخزن؛ نام فایل با نسخه اوبونتو شما مطابقت داشته باشد wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb sudo apt update sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
بسته zabbix-sql-scripts در فهرست بالا اضافه شده است؛ راهنماهای قدیمی آن را ندارند و بدون آن اسکریپت ساخت دیتابیس روی سرور موجود نیست و کار در همان مرحله متوقف میشود.
سپس دیتابیس و کاربر را بسازید. روی نصب تازه اوبونتو، کاربر root دیتابیس با auth_socket کار میکند و رمزی ندارد؛ پس همین دستور کافی است (اگر خودتان قبلاً برای root رمز گذاشتهاید، بهجای آن sudo mysql -uroot -p بزنید):
sudo mysql
create database zabbix character set utf8mb4 collate utf8mb4_bin; create user zabbix@localhost identified by 'YOUR_STRONG_PASSWORD'; grant all privileges on zabbix.* to zabbix@localhost; set global log_bin_trust_function_creators = 1; quit;
حالا ساختار دیتابیس را وارد کنید. مسیر فایل اسکیما بین نسخههای Zabbix تغییر کرده است، پس بهجای حفظکردن مسیر، آن را از خود بسته بپرسید:
dpkg -L zabbix-sql-scripts | grep 'mysql/server.sql.gz' # مسیری که در خروجی بالا دیدید را جایگزین کنید zcat /path/to/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
بعد از وارد کردن اسکیما، تنظیم log_bin_trust_function_creators را دوباره غیرفعال کنید، رمز دیتابیس را در /etc/zabbix/zabbix_server.conf در پارامتر DBPassword قرار دهید و سرویسها را اجرا کنید:
sudo mysql -e "set global log_bin_trust_function_creators = 0;" sudo nano /etc/zabbix/zabbix_server.conf sudo systemctl restart zabbix-server zabbix-agent apache2 sudo systemctl enable zabbix-server zabbix-agent apache2
در پایان، نصب فرانتاند را از مسیر http://SERVER_IP/zabbix کامل کنید. سرور Zabbix روی پورت ۱۰۰۵۱ و ایجنت روی ۱۰۰۵۰ کار میکند. توجه کنید که این فرانتاند روی پورت ۸۰ و روی IP عمومی سرور بالا میآید و نام کاربری و رمز پیشفرضش Admin و zabbix است؛ بلافاصله بعد از نخستین ورود این رمز را عوض کنید و ترجیحاً دسترسی به آن را هم با فایروال یا احراز هویت وبسرور محدود کنید.
اگر روی AlmaLinux، Rocky Linux یا RHEL کار میکنید، منطق کلی همین است و فقط بستهها با dnf نصب میشوند و وبسرور بهجای apache2، سرویس httpd نام دارد. اما دو تفاوت را در نظر بگیرید: firewalld بهصورت پیشفرض فعال است و باید پورتهای لازم را در آن باز کنید، و SELinux در حالت enforcing جلوی ارتباط فرانتاند با سرور Zabbix را میگیرد؛ برای همین بسته zabbix-selinux-policy را هم نصب کنید.
Prometheus + Grafana
Prometheus ابزاری برای جمعآوری دادههای time-series است که معمولاً با Grafana برای ایجاد داشبوردهای گرافیکی ترکیب میشود.

ویژگیها:
- ساختار time-series
- هشداردهی با Alertmanager
- یکپارچهسازی با Kubernetes
روش اول — نصب با Docker:
پیش از اجرای دستور، حتماً فایل کانفیگ را روی خود سرور بسازید. اگر /etc/prometheus/prometheus.yml وجود نداشته باشد، Docker بهجای فایل یک پوشه با همین نام میسازد و کانتینر با خطای «is a directory» بالا نمیآید — این یکی از رایجترین گیرهای این مرحله است:
sudo mkdir -p /etc/prometheus sudo touch /etc/prometheus/prometheus.yml # بعداً محتوای scrape_configs را داخلش بگذارید
docker run -d --name=prometheus -p 127.0.0.1:9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus docker run -d --name=grafana -p 127.0.0.1:3000:3000 -v grafana-storage:/var/lib/grafana grafana/grafana
دو نکته که در راهنماهای قدیمی غلط نوشته شده بود: نام ایمیج Grafana با حرف کوچک است (grafana/grafana و نه grafana/Grafana؛ نام ایمیج به بزرگی و کوچکی حروف حساس است و شکل دوم اصلاً pull نمیشود)، و اگر برای Grafana یک volume تعریف نکنید، با حذف کانتینر تمام داشبوردها و کاربران از بین میروند.
روش دوم — نصب بدون Docker روی Ubuntu:
شماره نسخه را ثابت ننویسید؛ شاخه اصلی Prometheus مدتهاست به نسخه ۳ رسیده و نسخههایی مثل ۲٫۵۲ که در راهنماهای قدیمی میبینید قدیمی هستند. با دستور زیر همیشه آخرین نسخه پایدار گرفته میشود:
sudo useradd --system --no-create-home --shell /bin/false prometheus
sudo mkdir -p /etc/prometheus /var/lib/prometheus
VER=$(curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest
| grep -Po '"tag_name": "vK[^"]*')
echo "$VER" # اگر خالی بود ادامه ندهید؛ یعنی درخواست به GitHub ناموفق بوده
wget https://github.com/prometheus/prometheus/releases/download/v${VER}/prometheus-${VER}.linux-amd64.tar.gz
tar xvf prometheus-${VER}.linux-amd64.tar.gz
cd prometheus-${VER}.linux-amd64
sudo cp prometheus promtool /usr/local/bin/
sudo cp -r consoles console_libraries /etc/prometheus/
sudo cp prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
دستور chown در راهنماهای قدیمی نبود؛ بدون آن سرویس با کاربر prometheus اجازه نوشتن در /var/lib/prometheus را ندارد و بلافاصله بعد از start کرش میکند.
حالا فایل یونیت systemd را بسازید:
sudo nano /etc/systemd/system/prometheus.service
محتوای فایل:
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple Restart=on-failure ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/ --web.listen-address=127.0.0.1:9090 ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
سپس:
sudo systemctl daemon-reload sudo systemctl enable --now prometheus sudo systemctl status prometheus
دقت کنید که دستور صحیح بعد از ساخت یا تغییر فایل یونیت، systemctl daemon-reload است؛ daemon-reexec که در متنهای قدیمی تکرار میشود کار دیگری میکند (خودِ systemd را دوباره اجرا میکند) و یونیت جدید را نمیخواند. همچنین نام سرویس در لینوکس به بزرگی و کوچکی حروف حساس است؛ systemctl enable Prometheus با P بزرگ خطا میدهد.
بدون node_exporter، Prometheus فقط خودش را مانیتور میکند. این نکتهای است که معمولاً جا میافتد: Prometheus بهتنهایی چیزی از CPU و RAM و دیسک سرور نمیداند. برای هر سروری که میخواهید مانیتور شود باید node_exporter نصب باشد (پورت پیشفرض ۹۱۰۰). روی اوبونتو سادهترین راه، بسته آماده مخزن است:
sudo apt install -y prometheus-node-exporter sudo systemctl enable --now prometheus-node-exporter
سپس آن را در /etc/prometheus/prometheus.yml معرفی کنید:
scrape_configs:
- job_name: "node"
static_configs:
- targets: ["127.0.0.1:9100"]
و کانفیگ را دوباره بخوانید. دقت کنید که systemctl reload فقط در صورتی کار میکند که خط ExecReload را — همانطور که در یونیت بالا آوردیم — داشته باشید؛ در غیر این صورت systemd خطای «Job type reload is not applicable» میدهد و باید از restart استفاده کنید:
sudo systemctl reload prometheus
برای نصب Grafana هم روش مخزن APT را استفاده کنید. دستور apt-key add که در راهنماهای قدیمی میبینید منسوخ شده و در نسخههای جدید دبیان و اوبونتو دیگر کار نمیکند؛ روش فعلی، کلید جداگانه در /etc/apt/keyrings است. آدرس مخزن هم به apt.grafana.com تغییر کرده است:
sudo apt install -y apt-transport-https software-properties-common wget sudo mkdir -p /etc/apt/keyrings sudo wget -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key sudo chmod 644 /etc/apt/keyrings/grafana.asc echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list sudo apt update sudo apt install -y grafana sudo systemctl daemon-reload sudo systemctl enable --now grafana-server
Grafana روی پورت ۳۰۰۰ بالا میآید. نام کاربری و رمز عبور پیشفرض admin است و در نخستین ورود باید آن را عوض کنید. بعد از ورود، در بخش Data sources، آدرس Prometheus (بهصورت پیشفرض http://localhost:9090) را اضافه کنید تا داشبوردها داده بگیرند.
PRTG Network Monitor
نرمافزاری تجاری و جامع برای مانیتورینگ سرور، شبکه و تجهیزات، با رابط کاربری گرافیکی پیشرفته.

ویژگیها:
- داشبورد حرفهای
- پشتیبانی از SNMP، WMI و API
- بیش از ۲۰۰ نوع سنسور
نصب (Windows):
- فایل نصب را از سایت رسمی paessler.com دریافت کنید.
- نصب بهصورت Wizard-Based انجام میشود.
- در مرورگر به آدرس
http://localhostمراجعه کنید و داشبورد را ببینید.
SolarWinds Server & Application Monitor (SAM)
ابزاری تجاری برای مانیتورینگ سرورهای ویندوز، لینوکس، اپلیکیشنها و خدمات ابری.

ویژگیها:
- مانیتورینگ بیش از ۱۲۰۰ اپلیکیشن آماده
- پشتیبانی از Azure و AWS
- گزارشگیری هوشمند
نصب (Windows):
- دانلود از solarwinds.com
- اجرای نصاب و طی کردن مراحل گرافیکی نصب
- پیکربندی Agentها و تعریف سرورها در کنسول مدیریتی
HetrixTools — مانیتورینگ رایگان سرور بهصورت آنلاین
اگر دنبال راهاندازی سریع و بدون هزینه برای همان «مانیتورینگ بیرونی» هستید که بالاتر توضیح دادیم، HetrixTools یک سرویس ابری است که سرور و سایت شما را از بیرون صدا میزند و طرح رایگان قابل استفادهای دارد. مزیت اصلیاش همین است: چون روی زیرساخت خودتان اجرا نمیشود، وقتی سرور شما کاملاً از دسترس خارج شود، این سرویس همچنان زنده است و به شما هشدار میدهد.
کارهایی که در نسخه رایگان میشود انجام داد:
- مانیتور وبسایت (HTTP/HTTPS): بررسی اینکه سایت واقعاً بالا میآید و کد پاسخ درست برمیگرداند.
- مانیتور Ping و سرویس/پورت: برای زمانی که میخواهید خودِ سرور یا یک پورت مشخص (مثلاً SMTP روی سرور ایمیل) را چک کنید.
- مانیتور بلکلیست: IP یا دامنه شما در برابر دهها بلکلیست شناختهشده ایمیل بررسی میشود و اگر جایی لیست شد به شما خبر میدهد. برای سرورهایی که ایمیل ارسال میکنند این قابلیت بهتنهایی ارزش ساخت حساب را دارد، چون معمولاً تا وقتی ایمیلها برنگردند کسی متوجه بلکلیست شدن نمیشود.
- Contact List و هشدار ایمیلی: میتوانید فهرستی از مخاطبان بسازید تا هشدارها همزمان برای چند نفر ارسال شود.
- گزارشها (Reports): تاریخ، ساعت و مدت هر قطعی ثبت میشود؛ همان چیزی که برای پیگیری SLA یا رسیدگی به شکایت مشتری لازم دارید.
محدودیتهای طرح رایگان این سرویس در طول سالها تغییر کرده است. اعدادی که در راهنماهای قدیمی فارسی میبینید (مثلاً «۵ سرور» و «۳ نقطه») دیگر معتبر نیست. طبق سایت رسمی HetrixTools در زمان نگارش این مطلب، طرح رایگان شامل ۱۵ مانیتور آپتایم و ۳۲ مانیتور بلکلیست است، بررسیها میتوانند در بازههای یکدقیقهای انجام شوند و وضعیت سرویس همزمان از حداکثر ۱۲ نقطه جغرافیایی در جهان چک میشود؛ سرویسهای دیگری مانند Status Page، هشدار انقضای دامنه، بررسی گواهی SSL و اعلام تغییر Nameserver هم روی همین پلتفرم وجود دارد. چون این سقفها ممکن است دوباره عوض شوند، پیش از برنامهریزی، آخرین وضعیت را روی صفحه رسمی خودشان ببینید.
نکته مهم: مانیتورینگ بیرونی جایگزین مانیتورینگ داخلی نیست. HetrixTools به شما میگوید «سایت بالا نیست»، اما نمیگوید «چون دیسک پر شده». ترکیب درست این است: یک ابزار داخلی مثل Zabbix یا Prometheus برای دیدن علت، و یک سرویس بیرونی برای مطمئن شدن از اینکه اصلاً خبردار میشوید.
پنل مانیتورینگ را روی اینترنت باز نگذارید
این بخش را جدی بگیرید. Prometheus بهصورت پیشفرض هیچ احراز هویتی ندارد؛ اگر پورت ۹۰۹۰ را روی IP عمومی باز کنید، هر کسی میتواند تمام متریکهای زیرساخت شما را ببیند. Grafana هم اگر با رمز پیشفرض رها شود، عملاً در اختیار همه است. به همین دلیل در دستورهای بالا سرویسها روی 127.0.0.1 محدود شدهاند. توصیه عملی:
- سرویسها را به لوکالهاست ببندید و از طریق تونل SSH یا یک reverse proxy با HTTPS و احراز هویت به آنها دسترسی بگیرید.
- پورتهای ۹۰۹۰، ۹۱۰۰، ۳۰۰۰، ۱۰۰۵۰ و ۱۰۰۵۱ را در فایروال فقط برای IPهای مورد نیاز باز کنید.
- رمز پیشفرض هیچ داشبوردی را دستنخورده نگذارید.
کدام ابزار برای شما مناسب است؟
- یک یا چند سرور محدود و نیاز به راهاندازی سریع: یک سرویس بیرونی رایگان مثل HetrixTools بهعلاوه هشدارهای ساده سیستم، در چند دقیقه آماده میشود.
- زیرساخت مختلط با تجهیزات شبکه و SNMP: Zabbix گزینه متنباز جامعی است که سرور، سرویس و تجهیزات را با هم پوشش میدهد.
- محیطهای کانتینری، Kubernetes و نیاز به متریک دقیق و نموداری: ترکیب Prometheus و Grafana.
- سازمانهایی با محیط ویندوزی گسترده و نیاز به پشتیبانی تجاری: PRTG یا SolarWinds SAM.
جمعبندی
مانیتورینگ سرور از ارکان اصلی مدیریت زیرساختهای IT است و در حفظ پایداری، پیشگیری از بروز مشکلات، شناسایی تهدیدات امنیتی و بهینهسازی عملکرد نقش کلیدی دارد. ابزارهای معرفیشده در این مقاله، بسته به نیاز سازمان، اندازه شبکه و نوع سرورها، میتوانند بهصورت مستقل یا ترکیبی استفاده شوند؛ استفاده از راهکارهای متنباز مانند Zabbix و Prometheus در کنار نرمافزارهای تجاری مانند PRTG و SolarWinds و یک سرویس بیرونی مانند HetrixTools، پوشش جامعتری به شما میدهد.
تقریباً همه ابزارهای این حوزه داده را از SNMP میگیرند؛ فعالسازی SNMP در اوبونتو، میکروتیک و ویندوز سرور اولین قدم عملی راهاندازی آنهاست.
و یک توصیه پایانی: هشداری که تعریف میکنید ولی آزمایشش نمیکنید، وجود ندارد. بعد از راهاندازی، یک بار عمداً سرویس را متوقف کنید و ببینید آیا واقعاً پیام به دستتان میرسد یا نه.
ارسال نظر