وقتی چند سرور مجازی یا سرویس آنلاین را مدیریت میکنید، مهم است که قطعی سرویس، بالا رفتن مصرف CPU یا کمبود فضای دیسک را قبل از آنکه به مشکل جدی تبدیل شوند، ببینید. اگر برایتان سؤال است که Zabbix چیست، این ابزار دقیقاً برای همین نوع پایش طراحی شده است: دادههای سرورها و شبکه را جمع میکند و وضعیت آنها را در یک محیط متمرکز نشان میدهد.
در ادامۀ این مطلب از VPSmarket، بعد از اینکه روشن کردیم Zabbix چیست و چگونه کار میکند، سراغ آموزش zabbix، راهاندازی Agent و مانیتورینگ چند VPS میرویم. تا انتهای این مطلب با ما همراه باشید.
Zabbix چیست؟
Zabbix یک پلتفرم متنباز برای مانیتورینگ سرورها، شبکه، ماشینهای مجازی، سرویسها و دیگر اجزای زیرساخت IT است. با استفاده از این پلتفرم میتوان شاخصهایی مثل مصرف CPU و RAM، فضای دیسک، ترافیک شبکه و وضعیت سرویسها را جمعآوری و بررسی کرد. اگر یکی از این شاخصها از محدودهای که تعریف کردهاید خارج شود، Zabbix میتواند برای آن هشدار ایجاد کند.
این کار با همکاری چند جزء انجام میشود. در یک معماری معمول، Zabbix Server دادهها را دریافت و پردازش میکند، Database وظیفۀ نگهداری اطلاعات را بر عهده دارد و Web Interface همان جایی است که وضعیت سیستمها را میبینید و تنظیمات را مدیریت میکنید. در بسیاری از سناریوها نیز Zabbix Agent روی سرور تحت مانیتورینگ اجرا میشود و اطلاعات محلی، از جمله CPU Load و وضعیت حافظه، را برای Server میفرستد.
تفاوت Zabbix با Prometheus و Nagios
Zabbix ،Prometheus و Nagios هر سه برای مانیتورینگ زیرساخت استفاده میشوند، اما تمرکز و شیوۀ کارشان یکسان نیست. Zabbix مجموعهای نسبتاً یکپارچهای از امکانات جمعآوری داده، Trigger، Alert و نمایش وضعیت سرورها و تجهیزات را در اختیار شما میگذارد. Prometheus بیشتر در محیطهای Cloud Native و Kubernetes و برای جمعآوری متریکها شناخته میشود؛ در مقابل، Nagios بیشتر روی بررسی وضعیت Hostها و سرویسها تمرکز دارد.
بنابراین اگر هدف شما این است که چند VPS را از یک پنل زیر نظر بگیرید و هشدارها را هم در همان محیط مدیریت کنید، Zabbix با این نوع سناریو همخوانی خوبی دارد.
Zabbix چگونه کار میکند؟
برای درک سازوکار Zabbix، فرض کنید پنج VPS دارید و میخواهید وضعیت همۀ آنها را از یک داشبورد دنبال کنید. روی هر سرور میتوان Zabbix Agent نصب کرد تا اطلاعات موردنیاز را جمعآوری کند. این دادهها در نهایت به Zabbix Server میرسند و برای پردازش و نگهداری در Database قرار میگیرند.
در مرحلۀ بعد، Web Interface اطلاعات جمعشده را به شکل نمودار، وضعیت Hostها، Triggerها و Alertها نمایش میدهد. برای مثال، میتوانید Triggerی تعریف کنید که اگر مصرف CPU یک سرور برای چند دقیقه بالاتر از مقدار مشخصی باقی ماند، یک Problem در Zabbix ثبت شود.
البته Agent تنها راه دریافت داده در Zabbix نیست و بسته به نوع تجهیزات یا سرویس، میتوان از روشهای دیگری هم استفاده کرد. همین موضوع باعث میشود معماری مانیتورینگ در پروژههای مختلف یکسان نباشد. برای اینکه این ساختار روشنتر شود، در بخش بعد اجزای اصلی Zabbix را جداگانه مرور میکنیم.
اجزای اصلی Zabbix
- Zabbix Server: بخش مرکزی سیستم است و دریافت و پردازش دادهها، Triggerها، Eventها و فرایندهای اصلی مانیتورینگ را مدیریت میکند.
- Zabbix Agent: روی سرور یا سیستم تحت مانیتورینگ اجرا میشود و اطلاعات موردنیاز را از همان سیستم جمعآوری میکند.
- Database: تنظیمات Zabbix و دادههای تاریخی در این بخش نگهداری میشوند.
- Web Interface: پنل مدیریتی تحت وب است که برای مشاهده Hostها، نمودارها، مشکلات و انجام تنظیمات از آن استفاده میشود.
- Zabbix Proxy: در زیرساختهای بزرگتر میتواند میان Agentها و Zabbix Server قرار بگیرد و جمعآوری دادهها را از یک موقعیت جداگانه انجام دهد.
پیشنیازها و آمادهسازی نصب Zabbix Server
در این آموزش فرض میکنیم Zabbix Server ،Database و Web Interface همگی روی یک سرور Ubuntu نصب میشوند. مبنای مراحل نیز Ubuntu 24.04 و Zabbix 7.0 LTS است. برای شروع، Repository رسمی Zabbix را به سیستم اضافه کنید؛ به این صورت که فایل Release را دانلود کرده و سپس با dpkg آن را نصب کنید:
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
بعد از اجرای این دستورها، Repository رسمی Zabbix در دسترس سیستم قرار میگیرد و بستههای موردنیاز را میتوانید از منبع رسمی پروژه نصب کنید.
پیش از ادامه، منابع سرور را هم با مقیاس مانیتورینگ خود هماهنگ کنید. برای یک محیط آزمایشی کوچک، یک VPS با چند هسته CPU و چند گیگابایت RAM میتواند برای شروع کافی باشد، اما نیاز واقعی به تعداد Hostها و Itemها، فاصلۀ جمعآوری داده و حجم History بستگی دارد. برای نمونه، در مستندات Zabbix برای محیطی با حدود ۱۰۰۰ Metric، پیکربندی ۲ هسته CPU و ۸ گیگابایت RAM بهعنوان یک نمونه آمده است.
آموزش نصب Zabbix روی Ubuntu
حالا سیستم را بهروزرسانی کنید تا بستههای موجود در آخرین وضعیت قرار بگیرند:
sudo apt update && sudo apt upgrade -y
اگر مرحله قبل را انجام داده باشید، Repository رسمی Zabbix از قبل به سیستم اضافه شده است. فقط دقت کنید نسخه Ubuntu، نسخه Zabbix و Backend موردنظر، مانند MySQL یا PostgreSQL، با بستههایی که نصب میکنید هماهنگ باشند. Zabbix نیز برای نصب، استفاده از Packageهای رسمی Repository را توصیه میکند.
در این آموزش از MySQL استفاده میکنیم. پس از آمادهشدن Repository، بستههای مربوط به Zabbix Server و Frontend، اسکریپتهای SQL و Agent را نصب کنید:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y
پس از نصب بستهها، نوبت به آمادهکردن MySQL میرسد. یک Database و کاربر مخصوص Zabbix بسازید تا دادهها و تنظیمات سیستم در آن نگهداری شوند. برای نمونه:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'StrongPassword'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; SET GLOBAL log_bin_trust_function_creators = 1;
بعد از ساخت Database و کاربر، از محیط MySQL خارج شوید و Schema اولیه Zabbix را وارد کنید:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
هنگام اجرای این دستور، رمز عبوری که برای کاربر «zabbix» تعیین کردهاید از شما خواسته میشود. مسیر فایل Schema و روش Import باید با نسخۀ Zabbix و بستۀ نصبشده هماهنگ باشد؛ بنابراین اگر از نسخۀ دیگری استفاده میکنید، مسیر مربوط به همان نسخه را بررسی کنید.
پس از Import شدن Schema، مشخصات اتصال Database را در تنظیمات Zabbix Server قرار دهید. جزئیات این بخش بسته به نسخۀ Zabbix و نوع پایگاه داده کمی متفاوت است. وقتی تنظیمات کامل شد، سرویسهای Zabbix Server، Agent و Nginx را فعال و اجرا کنید:
sudo systemctl enable --now zabbix-server zabbix-agent nginx
در پایان این مرحله، وضعیت Zabbix Server را بررسی کنید تا مطمئن شوید سرویس بدون خطا اجرا شده است:
sudo systemctl status zabbix-server
اگر نصب و تنظیمات درست انجام شده باشند، سرویس باید در وضعیت «active (running)» قرار داشته باشد. بعد از راهاندازی Server، میتوانید سراغ VPSهایی بروید که قرار است مانیتور شوند.
راهاندازی Zabbix Agent روی VPS
برای مانیتورکردن VPSهای دیگر، روی هرکدام از آنها Zabbix Agent نصب کنید. اگر سیستمعامل VPS شما Ubuntu است، Agent را میتوانید از Repository رسمی Zabbix دریافت کنید. بعد از نصب، فایل تنظیمات آن را باز کنید:
sudo nano /etc/zabbix/zabbix_agentd.conf
در این فایل، آدرس Zabbix Server و مشخصات Host را متناسب با معماری خود تنظیم کنید. پس از ذخیرۀ تغییرات، Agent را Restart کنید و آن را برای اجرا پس از راهاندازی سیستم فعال نگه دارید:
sudo systemctl restart zabbix-agent sudo systemctl enable zabbix-agent
در نصب مبتنی بر Package، مسیر پیشفرض فایل تنظیمات Agent طبق مستندات رسمی «etc/zabbix/zabbix_agentd.conf/» است. پس از آمادهشدن Agent، مرحلۀ بعد معرفی VPS به Zabbix Server است.
اضافهکردن چند VPS به Zabbix
حالا وارد Web Interface شوید و VPS موردنظر را بهعنوان Host اضافه کنید. برای هر VPS باید IP یا Hostname درست، Interface مناسب و Template متناسب با سیستمعامل را انتخاب کنید. همین روند را میتوانید برای سرورهای بعدی هم تکرار کنید. مثلاً اگر سه VPS در لوکیشنهای مختلف دارید، هرکدام را با نام مشخص در Zabbix ثبت کنید. بعد از آن، اطلاعاتی مثل CPU، RAM، Disk و Network همۀ سرورها از یک داشبورد قابل مشاهده خواهد بود و لازم نیست برای بررسی وضعیت هر VPS جداگانه وارد آن شوید.
در چنین ساختاری، موقعیت جغرافیایی سرورها هم روی بخشی از دادههای شبکه اثر میگذارد. اگر Zabbix Server در ایران باشد و VPSها در کشورهایی مثل انگلیس، کانادا یا آمریکا قرار داشته باشند، فاصلۀ جغرافیایی و مسیر ارتباطی میتواند Latency را افزایش دهد. به همین دلیل، Ping و Packet Loss هر مسیر را جداگانه بررسی کنید؛ Ping بالاتر لزوماً به معنی وجود مشکل در خود VPS نیست.
اگر هنوز سروری برای راهاندازی این محیط ندارید، خرید سرور مجازی با منابع متناسب میتواند نقطۀ شروع یک سناریوی آزمایشی باشد. برای سرورهای خارج از ایران هم بهتر است لوکیشن را با توجه به محل کاربران و کیفیت مسیر شبکه انتخاب کنید؛ برای مثال، سرور مجازی انگلیس، سرور مجازی کانادا یا VPS آمریکا میتوانند بسته به نیاز پروژه گزینههای متفاوتی باشند.
در مقابل، اگر بخش اصلی زیرساخت یا کاربران شما داخل کشور هستند، میتوانید سرور اختصاصی ایران را هم برای اجرای Zabbix Server در نظر بگیرید. نزدیکتر بودن سرور مانیتورینگ به VPSهای ایرانی ممکن است مسیر ارتباطی را کوتاهتر کند؛ با این حال، برای سرویسهای خارج از کشور همچنان باید کیفیت مسیر و تأخیر بین لوکیشنها را جداگانه بسنجید.
چه چیزهایی را با Zabbix مانیتور کنیم؟
پس از اضافهکردن Hostها، باید مشخص کنید دقیقاً چه چیزهایی برای شما مهم است. Zabbix میتواند شاخصهای مختلفی را زیر نظر بگیرد؛ از جمله:
- مصرف CPU و Load
- میزان RAM آزاد و مصرفشده
- فضای دیسک
- ترافیک شبکه
- وضعیت سرویسهایی مانند Nginx و MySQL
- دسترسیپذیری پورتها
- وضعیت فرایندهای سیستم
- زمان پاسخ سرویسها
ارزش این دادهها زمانی بیشتر میشود که برای شرایط مهم Trigger تعریف کنید. مثلاً میتوانید مشخص کنید اگر فضای آزاد دیسک از یک حد معین کمتر شد، Zabbix هشدار بدهد. در این حالت، احتمال دارد پیش از آنکه کمبود فضا باعث اختلال یا توقف سرویس شود، از مشکل باخبر شوید.
Zabbix برای چند VPS چه مزیتی دارد؟
وقتی تعداد VPSها کم است، بررسی جداگانۀ هر سرور شاید هنوز قابل مدیریت باشد، اما با بیشترشدن Hostها، این روش هم زمان بیشتری میگیرد و هم احتمال از دست رفتن تغییرات مهم بالاتر میرود. Zabbix اطلاعات سرورها را در یک محیط متمرکز جمع میکند و Alertها و History هر Host هم در همانجا قابل بررسی است.
این تمرکز فقط برای دیدن وضعیت لحظهای مفید نیست و میتوانید Hostها را بر اساس نقش، موقعیت جغرافیایی یا پروژۀ گروهبندی کنید و ساختار مانیتورینگ را منظم نگه دارید؛ موضوعی که با بزرگترشدن زیرساخت اهمیت بیشتری پیدا میکند.
نکات امنیتی Zabbix
بعد از راهاندازی مانیتورینگ، امنیت خود Zabbix را هم باید در نظر بگیرید. Zabbix Server و Agent سرویسهای مدیریتی هستند و بهتر است دسترسی به آنها محدود باشد. Web Interface را فقط در اختیار کاربران موردنیاز قرار دهید، برای حسابها رمز عبور قوی انتخاب کنید و در Firewall فقط پورتهایی را باز بگذارید که واقعاً استفاده میشوند.
اگر Agent در حالت Passive کار میکند، دسترسی به پورت آن را فقط از سمت Zabbix Server مجاز کنید. در محیطهای حساستر نیز میتوان ارتباط میان اجزای Zabbix را با Encryption محافظت کرد تا دادههای مانیتورینگ در مسیر ارتباطی امنتر منتقل شوند.
برای نمونه، در Ubuntu میتوانید با UFW دسترسی به پورت Agent را فقط برای IP سرور Zabbix باز کنید. اگر IP سرور Zabbix برابر «203.0.113.10» باشد، دستور زیر این محدودیت را اعمال میکند:
sudo ufw allow from 203.0.113.10 to any port 10050 proto tcp
به این ترتیب، پورت 10050 برای همۀ اینترنت باز نمیماند و فقط IP یا محدودۀ شبکهای که سرور مانیتورینگ در آن قرار دارد میتواند به Agent متصل شود.
جمعبندی
Zabbix زمانی کاربردی است که بخواهید وضعیت چند سرور و سرویس را بهجای بررسی پراکنده، از یک نقطه دنبال کنید. با راهاندازی Zabbix Server و نصب Agent روی VPSها، دادههای مهم هر سرور در یک داشبورد جمع میشوند و میتوانید برای شرایطی که نیاز به توجه دارند هشدار تعریف کنید.
اگر در مقیاس کوچک شروع میکنید، یک VPS میتواند برای اجرای اولیه Zabbix کافی باشد. بعد، همزمان با افزایش Hostها و حجم داده، منابع Server را متناسب با بار کاری بیشتر کنید. ظرفیت Database و تعداد Metricها را هم از ابتدا جدی بگیرید؛ چون با بزرگشدن مانیتورینگ، حجم دادههای تاریخی و مصرف منابع پایگاه داده نیز بیشتر میشود.
سؤالات متداول
Zabbix چیست و چه کاربردی دارد؟
Zabbix یک ابزار متنباز برای مانیتورینگ زیرساخت IT است. با آن میتوانید وضعیت سرورها، شبکه، سرویسها و تجهیزات مختلف را بررسی کنید و دادههایی مثل CPU، RAM، Disk و Network را در یک محیط متمرکز ببینید. همچنین میتوان برای شرایط مشخص Trigger و Alert تعریف کرد تا مشکلات مهم سریعتر دیده شوند.
آیا Zabbix برای مانیتورینگ چند VPS مناسب است؟
بله. Zabbix برای جمعآوری اطلاعات چند Host در یک Server مرکزی طراحی شده و میتوانید روی VPSهای مختلف Agent نصب کنید. وضعیت این سرورها از یک داشبورد قابل مشاهده است و امکان گروهبندی Hostها، اختصاص Template و تعریف Trigger هم وجود دارد؛ بنابراین ساختار مانیتورینگ با افزایش تعداد VPSها قابل توسعه است.
تفاوت Zabbix Server و Zabbix Agent چیست؟
Zabbix Server بخش مرکزی سیستم است و دادههای مانیتورینگ را دریافت، پردازش و مدیریت میکند. Zabbix Agent روی سروری نصب میشود که قرار است زیر نظر باشد و اطلاعات مربوط به منابع و وضعیت همان سیستم را جمعآوری میکند. در یک معماری معمول، چند Agent دادههای خود را به یک Zabbix Server مرکزی میفرستند.
برای نصب Zabbix Server چقدر RAM نیاز است؟
برای تمام نصبها نمیتوان یک مقدار ثابت تعیین کرد، چون مصرف منابع به تعداد Hostها و Metricها، فاصلۀ جمعآوری داده و مدت نگهداری History بستگی دارد. در مستندات Zabbix، برای یک نمونه با حدود ۱۰۰۰ Metric، پیکربندی ۲ هسته CPU و ۸ گیگابایت RAM بهعنوان نمونه ذکر شده است. در محیط واقعی، منابع باید بر اساس بار کاری خودتان سنجیده شوند.
آیا میتوان Zabbix را روی Ubuntu نصب کرد؟
بله. Zabbix برای Ubuntu بستههای رسمی ارائه میکند و میتوان Server، Agent و Frontend را از Repository رسمی نصب کرد. هنگام انتخاب بستهها باید نسخۀ Ubuntu، نسخۀ Zabbix و نوع Database را با هم هماهنگ کنید. استفاده از Repository رسمی نیز کمک میکند بستههای متناسب با نسخۀ موردنظر را دریافت کنید.
آیا Zabbix Agent فقط روی Linux کار میکند؟
خیر. Zabbix Agent فقط به Linux محدود نیست و برای سیستمعاملهای دیگری از جمله Windows هم در دسترس است. روش نصب و مسیر فایلهای تنظیمات در هر سیستمعامل متفاوت است، اما نقش Agent همان جمعآوری اطلاعات سیستم و ارسال آنها برای مانیتورینگ توسط Zabbix Server یا Proxy است.
آیا برای Zabbix به سرور اختصاصی نیاز داریم؟
خیر. برای نصبهای کوچک الزاماً به سرور اختصاصی نیاز ندارید و یک VPS با منابع مناسب میتواند Zabbix Server را اجرا کند. با افزایش تعداد Metricها، Hostها و مدت نگهداری دادهها، نیاز به منابع بیشتری خواهید داشت. در محیطهای بزرگتر، جداکردن Database از Server نیز میتواند مدیریت منابع را سادهتر کند.
آیا Zabbix رایگان است؟
بله. Zabbix متنباز است و برای استفاده از هستۀ اصلی آن هزینۀ لایسنس پرداخت نمیکنید. با این حال، اجرای آن به زیرساختی مثل VPS یا سرور، Database و منابع شبکه نیاز دارد که ممکن است هزینه داشته باشند. بنابراین رایگانبودن نرمافزار به این معنی نیست که کل سیستم مانیتورینگ بدون هزینه راهاندازی میشود.






