بلاگ ابرفردوسی > آموزش سرور مجازی : نصب Zabbix و آموزش جامع راه‌اندازی سیستم مانیتورینگ زبیکس

نصب Zabbix و آموزش جامع راه‌اندازی سیستم مانیتورینگ زبیکس

نصب Zabbix

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

در این آموزش از فرضیات تئوریک فاصله می‌گیریم تا خیلی سریع به یک سیستم مانیتورینگ عملیاتی و پایدار برسیم. در ادامه پیش‌نیازهای سخت‌افزاری و نرم‌افزاری سیستم، روش‌های راه‌اندازی Zabbix Server روی توزیع‌های اوبونتو ۲۴.۰۴ و خانواده ردهت (AlmaLinux/Rocky)، اتصال ایمن پایگاه داده MariaDB، آموزش نصب Zabbix Agent روی سرورهای کلاینت، روش ساخت اولین هاست و در نهایت ترفندهای امنیت، بهینه‌سازی دیتابیس و تنظیم ایمیل هشدار (Triggers) را بررسی خواهیم کرد.

 پیش‌نیازهای راه‌اندازی Zabbix Server

قبل‌از اینکه ترمینال را باز کنید و دستورات نصب را ردیف کنید، باید مطمئن شوید زیرساخت شما کشش پردازش داده‌های مانیتورینگ را دارد. زبیکس ابزار سبکی است، اما اگر تعداد آیتم‌های مانیتورینگ بالا برود، به سرعتِ خواندن و نوشتن دیسک (I/O) و فرکانس پردازنده وابسته می‌شود. طبق مستندات رسمی زبیکس، پیش‌نیازها را می‌توان براساس ابعاد شبکه دسته‌بندی کرد.

حداقل منابع سخت‌افزاری و نرم‌افزاری

حداقل‌های سخت‌افزاری و نرم‌افزاری راه‌اندازی Zabbix

اگر قصد دارید یک محیط کوچک (تا ۱۰۰ سرور یا هاست هدف) را مدیریت کنید، مشخصات زیر برای گام اول کافی است:

  • پردازنده (CPU): حداقل ۲ هسته اختصاصی
  • حافظه رم (RAM): حداقل ۲ تا ۴ گیگابایت (بسته به حجم دیتابیس)
  • فضای ذخیره‌سازی: حداقل ۳۰ گیگابایت از نوع SSD یا NVMe (سرعت دیسک در زبیکس حیاتی است)
  • سیستم‌عامل‌های پیشنهادی: توزیع‌های لینوکس پایه دبیان (Ubuntu 24.04 / Debian 12) یا پایه ردهت (AlmaLinux / Rocky Linux)
  • پشته نرم‌افزاری (LAMP/LEMP):
    وب‌سرور: Apache یا Nginx
    پایگاه داده: MySQL 8.0+ یا MariaDB 10.x+ (پستگرس نیز پشتیبانی می‌شود)
    زبان مفسر: PHP نسخه 8.1 به بالا به‌همراه اکستنشن‌های موردنیاز (GD, BCmath, MBstring)
⚠️ هشدار خیلی مهم
تنظیم دقیق زمان سرور
پیش‌از شروع فرایند نصب، حتماً از هماهنگ بودن زمان سیستم (Timezone) سرور خود با استفاده از سرویس NTP مطمئن شوید. زبیکس لاگ‌ها و دیتاها را براساس زمان دقیق ذخیره می‌کند؛ ناهماهنگی زمانی باعث می‌شود هشدارها (Triggers) هیچ‌وقت به‌درستی کار نکنند یا با تأخیرهای چندساعته در پنل ثبت شوند.

چرا سرور مجازی مستقل برای مانیتورینگ نیاز است؟

یک خطای سنتی و رایج در میان ادمین‌های تازه‌کار، نصب Zabbix روی همان سروری است که وب‌سایت اصلی یا اپلیکیشن شرکت روی آن میزبانی می‌شود. این کار ریسک بسیار بزرگی دارد.

اگر به هر دلیلی (مثل حملات DDoS یا نشت حافظه در کدهای فرانت‌اند) اپلیکیشن شما تحت فشار قرار گیرد و تمام منابع رم و سی‌پی‌یو را ببلعد، سیستم مانیتورینگ شما نیز هم‌زمان کرش خواهد کرد. در نتیجه، شما دقیقاً در لحظه‌ای که به دیتای مانیتورینگ برای عیب‌یابی نیاز دارید، کاملاً کور خواهید شد. برای راه‌اندازی Zabbix Server به‌صورت پایدار، استفاده از یک ماشین ایزوله و مستقل، پایداری پایش تجهیزات زیرساخت شما را تضمین می‌کند.

انتخاب بهترین روش نصب زبیکس

توسعه‌دهندگان زبیکس راه‌های متنوعی را برای استقرار این پلتفرم در اختیار ما گذاشته‌اند. انتخاب روش مناسب بستگی به این دارد که چقدر می‌خواهید در آینده درگیر شخصی‌سازی لایه‌های سیستم‌عامل و تیونینگ پایگاه داده شوید.

روش نصببهترین سناریو استفادهمزایامعایب
نصب از پکیج‌های رسمیمحیط‌های تولیدی (Production) استانداردپایداری بالا، آپدیت راحت با پکیج منیجر لینوکسنیاز به کانفیگ دستی وب‌سرور و دیتابیس
کانتینر (Docker & Docker Compose)محیط‌های مایکروسرویس و دپلوی سریعایزولاسیون کامل، راه‌اندازی سه‌سوته بدون دردسر پیش‌نیازهاپیچیدگی در شخصی‌سازی برخی اسکریپت‌های داخلی
ایمیج آماده (Appliance)محیط‌های تستی، آزمایشگاهی و ارزیابی سریعبدون نیاز به هیچ دانش لینوکسی، آماده‌به‌کارغیرقابل توسعه برای پروژه‌های بزرگ سازمانی

برای اکثر ادمین‌های سیستم و شبکه‌های تجاری، نصب زبیکس روی لینوکس ازطریق بسته‌های توزیع رسمی (Packages) استانداردترین مسیر ممکن است، زیرا کنترل کاملی روی بهینه‌سازی کانفیگ‌های پایگاه داده و وب‌سرور به شما می‌دهد. در بخش‌های بعدی این آموزش، تمرکز اصلی ما روی همین روش خواهد بود.

💡 نکته
به یاد داشته باشید که زبیکس از دو بخش مجزا تشکیل شده است: Core Server (که مرکز و مغز متفکر سیستم است) و Zabbix Agent (برنامه‌ای سبک که روی سرورهای کلاینت نصب می‌شود تا دیتا را جمع‌آوری کند و به سرور اصلی بفرستد). در روش پکیج و داکر، ما درحال ساختن مغز متفکر هستیم و بعداً به‌سراغ پکیج کلاینت‌ها خواهیم رفت. 

آموزش نصب Zabbix روی Ubuntu 24.04

مراحل نصب Zabbix روی ابونتو در ۳ گام

توزیع اوبونتو ۲۴.۰۴ (Noble Numbat) به‌دلیل پایداری بلندمدت (LTS)، محبوب‌ترین میزبان برای اجرای زبیکس است. در این بخش، فرایند بومی پیاده‌سازی Zabbix روی لینوکس ابونتو را جلو می‌بریم تا مرکز مانیتورینگ شما بدون نقص بالا بیاید.

گام اول- آماده‌سازی دیتابیس (MariaDB/MySQL) و وب‌سرور

پیش‌از اضافه کردن بسته‌های زبیکس، باید خانه آن یعنی وب‌سرور آپاچی و پایگاه داده را آماده کنیم. پیشنهاد تجربی من استفاده از MariaDB است که سرعت و مدیریت رم بهتری در سرورهای مانیتورینگ ارائه می‌دهد.

۱. ابتدا با دسترسی root یا sudo، مخازن اوبونتو را به‌روزرسانی کنید:

sudo apt update && sudo apt upgrade -y

۲. وب‌سرور Apache و پایگاه داده MariaDB را با دستور زیر نصب کنید:

sudo apt install apache2 mariadb-server mariadb-client -y

۳. سرویس‌ها را فعال و روشن کنید تا مطمئن شویم با ریبوت سرور، پایش تجهیزات شبکه قطع نمی‌شود:

sudo systemctl enable --now apache2 mariadb

گام دوم- افزودن مخزن (Repository) و نصب پکیج‌ها

نسخه‌های موجود در مخازن پیش‌فرض اوبونتو معمولاً قدیمی هستند. پس باید همیشه هنگام نصب زبیکس، مخزن رسمی خود آن (در این آموزش نسخه 7.0 LTS) را به سیستم‌عامل معرفی کنیم.

۱. پکیج مخزن رسمی زبیکس را دانلود و نصب کنید:

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest+ubuntu24.04_all.deb

۲. لیست مخازن apt را به‌روزرسانی کنید تا بسته‌های جدید شناسایی شوند:

sudo apt update

۳. حالا هسته اصلی یعنی بسته‌های فرانت‌اند، دیتابیسِ سرور، وب‌سرور و ایجنت محلی را به صورت یک‌جا نصب کنید:

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y

گام سوم- پیکربندی دیتابیس و راه‌اندازی Frontend

بسیاری از ادمین‌ها در این مرحله به‌دلیل ساختار ذخیره‌سازی زبیکس با ارور مواجه می‌شوند. زبیکس به یک پایگاه داده با انکودینگِ کاملاً مشخص نیاز دارد. پس مراحل زیر را با دقت در ترمینال وارد کنید:

۱. وارد محیط کامندلاین ماریا دی‌بی شوید:

sudo mysql -u root

۲. یک دیتابیس اختصاصی با ساختار کاراکتر استاندارد زبیکس بسازید و دسترسی کاربر را مشخص کنید (به‌جای myPassword یک پسورد سخت بگذارید):

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'myPassword';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
QUIT;

باکس فوت استادی (راز سوئیچ log_bin):

💡 ترفند کاربردی
دستور SET GLOBAL log_bin_trust_function_creators = 1; به شما اجازه می‌دهد که جداول اولیه زبیکس را بدون خطای دسترسیِ توابع در دیتابیس ایمپورت کنید. اگر این را نزنید، در مرحله بعد ترمینال به شما ارور خواهد داد. بعداز اتمام کار، برای حفظ امنیت حتماً آن را غیرفعال خواهیم کرد.

۳. حالا با دستور زیر، شماتیک و دیتای اولیه زبیکس را داخل دیتابیسی که ساختید استخراج (Import) کنید. پسوردی که در مرحله قبل ساختید را هنگام درخواست وارد کنید:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

(نکته: این فرایند بسته به سرعت دیسک سرور شما ممکن است ۱ تا ۳ دقیقه طول بکشد، پس ترمینال را نبندید).

۴. حالا همان‌طور که قول دادیم، متغیر موقت دیتابیس را خاموش کنید:

sudo mysql -u root -e "SET GLOBAL log_bin_trust_function_creators = 0;"

۵. فایل تنظیمات اصلی زبیکس را باز کنید تا رمز عبور دیتابیس را به آن بفهمانید:

sudo nano /etc/zabbix/zabbix_server.conf

خط مربوط به DBPassword= را پیدا کنید، علامت # ابتدای آن را بردارید و رمز خود را جلوی آن بنویسید:

DBPassword=YourPassword

۶. در نهایت، تمام سرویس‌ها را ری‌استارت کنید تا تغییرات روی فرانت‌اند آپاچی و سرور اعمال شود:

sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

اکنون زیرساخت لینوکسی شما کاملاً آماده است و همه‌چیز برای ورود به مراحل گرافیکی وب جلو رفته است.

نصب Zabbix روی خانواده RHEL (AlmaLinux / Rocky / CentOS)

اگر در دیتاسنترهای سازمانی کار کرده باشید، می‌دانید که توزیع‌های لینوکس مبتنی بر ردهت (خانواده RHEL) مثل AlmaLinux، Rocky Linux و CentOS به‌خاطر پایداری بتنی خود، انتخاب اول بسیاری از مدیران شبکه هستند. منطق کلی پیاده‌سازی Zabbix روی این توزیع‌ها تفاوت عجیبی با اوبونتو ندارد؛ اما ابزارها، مدیریت بسته‌ها و ساختارهای امنیتی کاملاً متفاوتی را تجربه خواهید کرد.

تفاوت مدیریت بسته‌ها

بزرگ‌ترین تفاوت در قدم اول، پکیج منیجر سیستم‌عامل است. در اوبونتو همه‌چیز با دستور apt جلو می‌رفت، اما اینجا در توزیع‌های مدرن RHEL با مدیریت بسته dnf (و در نسخه‌های قدیمی‌تر مثل CentOS 7 با yum) سروکار داریم. تفاوتی که باید به آن دقت کنید:

  • مدیریت مخازن: خانواده ردهت بر خلاف اوبونتو، به‌شدت روی دسترسی‌های پکیج‌ها حساس است؛ بنابراین برای برخی پیش‌نیازها به مخزن مکمل EPEL نیاز خواهید داشت.
  • ماژول‌های PHP: در سیستم‌عامل‌های AlmaLinux و Rocky Linux، پکیج منیجر dnf قابلیتی به نام AppStream دارد که گاهی نسخه‌های خاصی از زبان‌ها (مثل PHP) را قفل می‌کند و باید ابتدا آن‌ها را به‌صورت دستی ریست یا سوئیچ کنید.

تفاوت دستورات اوبونتو (APT) و خانواده ردهت (DNF) در نصب زبیکس

عملیات فنیتوزیع‌های دبیان‌بیس (Ubuntu – APT)توزیع‌های ردهت‌بیس (Alma / Rocky – DNF)
به‌روزرسانی سیستمsudo apt update && sudo apt upgrade -ysudo dnf clean all && sudo dnf makecache
افزودن مخزن رسمی زبیکسsudo dpkg -i zabbix-release_latest+ubuntu…debsudo rpm -Uvh zabbix-release-latest+el…rpm
نصب هسته و فرانت‌اندsudo apt install zabbix-server-mysql zabbix-frontend-php…sudo dnf install zabbix-server-mysql zabbix-web-mysql…
استارت و فعال‌سازی سرویسsudo systemctl enable –now zabbix-serversudo systemctl enable –now zabbix-server

مراحل استقرار زبیکس روی خانواده RHEL

مراحل نصب Zabbix روی لینوکس RHEL

برای نصب زبیکس روی لینوکس ردهت‌بیس (نسخه‌های ۹ به بالا)، مراحل زیر را به‌ترتیب در ترمینال کپی و اجرا کنید:

۱. افزودن مخزن رسمی زبیکس 7.0 LTS

ابتدا بسته‌ پیکربندی ریپازیتوری زبیکس را روی سیستم‌عامل نصب کنید:

sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest+el9.noarch.rpm
sudo dnf clean all

۲. تنظیم ماژول PHP (ترفند AppStream)

از آنجا که زبیکس به نسخه به‌روز PHP نیاز دارد، ماژول پیش‌فرض سیستم‌عامل را غیرفعال کنید تا تداخلی ایجاد نشود:

sudo dnf -y module reset php

۳. نصب کامپوننت‌های Zabbix Server و وب‌سرور

حالا با کمک dnf هسته مرکزی، فرانت‌اند سازگار با دیتابیس MySQL/MariaDB و ایجنت محلی را نصب کنید:

sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent2 -y
⚠️ هشدار خیلی مهم
بزرگ‌ترین مشکلی که معمولا در آموزش نصب Zabbix روی AlmaLinux یا راکی لینوکس گزارش می‌شود، ارور ۵۰۳ یا عدم اتصال وب‌سرور به دیتابیس است. مقصر اصلی این ماجرا، سیستم امنیتی SELinux است که به‌صورت پیش‌فرض در RHEL روشن است و اجازه دسترسی به وب‌سرور را نمی‌دهد. برای حل این مشکل، به‌جای خاموش کردن کامل SELinux (که یک اشتباه امنیتی بزرگ است)، دستورات زیر را وارد کنید تا دسترسی‌های زبیکس مجاز شوند:
sudo setsebool -P httpd_can_connect_zabbix on
sudo setsebool -P httpd_can_network_connect_db on

۴. فعال‌سازی و استارت سرویس‌ها

در نهایت، دیتابیس (که مراحل ساخت آن دقیقاً مانند اوبونتو در بخش قبل است) را متصل و سرویس‌ها را روشن کنید:

sudo systemctl restart zabbix-server httpd php-fpm
sudo systemctl enable zabbix-server zabbix-agent apache2 php-fpm

بخش لینوکسی کار در اینجا به پایان می‌رسد و حالا سیستم‌عامل شما (از هر خانواده‌ای که باشد) آماده اتصال به کلاینت‌ها است.

آموزش نصب Zabbix Agent (اتصال سرورهای هدف)

راه‌اندازی سرور اصلی زبیکس، تازه شبیه به ساختن مغز است؛ این مغز برای اینکه بتواند وضعیت سلامتی شبکه را بسنجد، به چشم و گوش‌هایی در سرورهای هدف نیاز دارد. این وظیفه برعهده زبیکس ایجنت (Zabbix Agent) است. تازمانی‌که این سرویس کوچک و سبک را روی ماشین‌های مقصد مستقر نکنید، داشبورد زبیکس شما چیزی جز یک صفحه زیبا اما خالی از نمودار نخواهد بود.

تفاوت Zabbix Agent و Zabbix Agent 2

هنگام دانلود بسته‌ها با دو نسخه کاملاً متفاوت مواجه می‌شوید. انتخاب میان این دو یک تصمیم تئوریک نیست، بلکه مستقیماً با معماری زیرساخت شما گره خورده است:

  • Zabbix Agent (نسخه کلاسیک): با زبان C نوشته شده است. فوق‌العاده سبک است، رم بسیار ناچیزی (در حدّ چند مگابایت) مصرف می‌کند و برای سرورهای قدیمی یا ماشین‌هایی که منابع به‌شدت محدودی دارند گزینه‌ای بی‌نقص است.
  • Zabbix Agent 2 (نسخه جدید): با زبان برنامه‌نویسی Go بازنویسی شده است. این نسخه از قابلیت گوروتین‌ها (Goroutines) برای اجرای هم‌زمان تسک‌ها استفاده می‌کند. اگر قصد مانیتورینگ سیستم‌های پیچیده مثل کانتینرهای داکر، کلاسترهای کوبرنتیز یا دیتابیس‌های سنگین را دارید، نصب Zabbix Agent 2 به‌دلیل داشتن پلاگین‌های داخلی پیشرفته و ظرفیت بالاتر در جمع‌آوری هم‌زمان دیتا، انتخاب به مراتب هوشمندانه‌تری است.

مراحل نصب Zabbix Agent روی لینوکس

برای مانیتور کردن یک سرور لینوکسی جدید، ابتدا باید مخزن زبیکس را (دقیقاً مشابه روشی که در دو بخش قبل گفته شد) روی آن سرور کلاینت اضافه کنید. سپس بسته به توزیع خود، یکی از دستورات زیر را اجرا کنید:

  • نصب روی اوبونتو / دبیان:
sudo apt update
sudo apt install zabbix-agent2 -y
  • نصب روی آلما لینوکس / راکی لینوکس:
sudo dnf install zabbix-agent2 -y

پیکربندی و تنظیمات فایل zabbix_agent2.conf

پس‌از نصب، ایجنت فعال می‌شود اما هنوز نمی‌داند باید دیتای سرور را به کدام مقصد بفرستد. برای معرفی سرور اصلی مانیتورینگ، باید فایل کانفیگ را ویرایش کنیم. فایل تنظیمات را باز کنید:

sudo nano /etc/zabbix/zabbix_agent2.conf

(نکته: اگر نسخه ۱ یا کلاسیک را نصب کرده‌اید، آدرس فایل zabbix_agentd.conf خواهد بود).

در این فایل متنی طولانی گیج نشوید؛ اسکرول کنید و فقط ۳ پارامتر مهم زیر را پیدا کنید و براساس اطلاعات شبکه خود تغییر دهید:

  • Server: آی‌پي سرور اصلی زبیکس را اینجا وارد کنید (برای مانیتورینگ غیرفعال یا Passive).
Server=192.168.1.50
  • ServerActive: باز هم آی‌پی سرور اصلی زبیکس را بنویسید (برای مانیتورینگ فعال یا Active که در آن خود ایجنت دیتا را هُل می‌دهد).
ServerActive=192.168.1.50
  • Hostname: یک نام کاملاً منحصربه‌فرد برای این سرور کلاینت بنویسید.
Hostname=Web-Server-Production

پس‌از ذخیره فایل، سرویس ایجنت را ری‌استارت کنید تا گوش‌به‌زنگِ فرستادن اطلاعات شود:

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2
باکس نکته وردپرس – راست‌چین
✨ نکته مهم
نامی که جلوی پارامتر Hostname در فایل کانفیگ سرور مقصد می‌نویسید، باید دقیقاً و موبه‌مو (حتی ازنظر کوچکی و بزرگی حروف انگلیسی) با نامی که بعداً در پنل وب زبیکس برای این هاست تعریف می‌کنید، همخوانی داشته باشد. اگر حتی یک کاراکتر متفاوت باشد، سرور زبیکس لاگ‌های ارسالی از سمت کلاینت را پس می‌زند و ارور عدم شناسایی هاست می‌دهد.

ساخت اولین Host و شروع مانیتورینگ شبکه

پس‌از اتمام کارهای ترمینال، مرورگر خود را باز کنید و آدرس http://server_ip/zabbix را وارد کنید. در اولین ورود، یک ویزارد ساده چند مرحله‌ای برای تایید نسخه‌ PHP و وارد کردن مشخصات دیتابیس (که در بخش چهارم ساختیم) پیش روی شما قرار می‌گیرد. پس‌از عبور از این مرحله با مشخصات پیش‌فرض زیر وارد داشبورد شوید:

  • نام کاربری: Admin (حرف A حتماً بزرگ باشد)
  • رمز عبور: zabbix

گام‌های تعریف سرور کلاینت در پنل گرافیکی

برای شروع فرایند راه‌اندازی Zabbix و گرفتن دیتای زنده از سروری که ایجنت را روی آن نصب کرده‌اید، مراحل زیر را به‌ترتیب دنبال کنید:

۱- ورود به بخش مدیریت هاست‌ها: از منوی سمت چپ به مسیر Data Collection و سپس Hosts بروید. در گوشه سمت راست بالا، روی دکمه Create host کلیک کنید.

۲- تنظیم مشخصات اصلی (Host tab):

  • Host name: نامی که اینجا می‌نویسید باید دقیقاً همان نامی باشد که در فایل کانفیگ ایجنت جلوی Hostname ست کردید.
  • Templates: عبارت Linux by Zabbix agent را سرچ و انتخاب کنید. با این کار، صدها آیتم و نمودار پیش‌فرض (مثل مصرف رم، هارد و پردازنده) خودکار به این ماشین متصل می‌شوند.
  • Host groups: یک گروه انتخاب کنید (مثلاً Linux servers) یا یک گروه جدید بسازید تا دسته‌بندی سرورها منظم بماند.

۳- اتصال ایجنت (Interfaces): در همان صفحه، روی دکمه Add جلوی عبارت Interfaces کلیک کنید و گزینه Agent را بزنید. حالا آی‌پي پابلیک یا لوکال سرور مقصد (کلاینت) را وارد کنید. پورت پیش‌فرض باید روی 10050 باشد.

۴- ذخیره: در نهایت روی دکمه Add کلیک کنید تا هاست ساخته شود.

چگونه مطمئن شویم مانیتورینگ شروع شده است؟

پس‌از ذخیره، چند دقیقه به سیستم فرصت دهید. در جدول هاست‌ها، اگر چراغ کوچک ZBX به رنگ سبز دربیاید، یعنی ارتباط بدون نقص برقرار شده است. حالا برای بررسی سلامت زیرساخت و دیدن نمودارها، از منوی سمت چپ به مسیر Monitoring -> Latest data بروید، نام هاست خود را فیلتر کنید تا حجم عظیمی از داده‌های زنده و لاگ‌های ارسالی سرور کلاینت را مشاهده کنید.

⚠️ هشدار خیلی مهم
(چرا چراغ ZBX قرمز می‌شود؟
اگر چراغ ZBX پس‌از ۵ دقیقه قرمز شد یا ارور تایم‌اوت داد، ۹۰ درصد مواقع مشکل از فایروال سرور کلاینت است. باید پورت 10050 را روی سرور مقصد باز کنید تا سرور اصلی زبیکس اجازه داشته باشد دیتای ایجنت را بخواند. در اوبونتو با دستور sudo ufw allow 10050/tcp این مشکل فوراً حل می‌شود. همچنین ممکن است نیاز باشد این پورت را از سمت سرور هم باز کنید.

تنظیم هشدارها (Triggers) و ارسال ایمیل در زبیکس

مکانیزم نظارت بر منابع سرور زمانی ارزش واقعی خود را نشان می‌دهد که نیاز نباشد شما ۲۴ ساعته به مانیتور و نمودارها زل بزنید. زبیکس باید خودش مقتدرانه اوضاع را بپوشاند و درصورت بروز مشکل با مدیریت هشدارها شما را باخبر کند. در لغت‌شناسی زبیکس به این لایه شرطی، تریگر (Trigger) می‌گویند.

سناریو: اگر مصرف CPU سرور بالای ۸۰٪ رفت باخبرم کن!

زمانی که تمپلیت Linux by Zabbix agent را به هاست متصل کردید، تریگرهای استاندارد (مثل پر شدن دیسک یا لود بالای پردازنده) خودکار فعال شده‌اند. اما برای اینکه زبیکس بتواند درصورت فعال شدن این شرط‌ها به شما ایمیل بزند، باید زنجیره رسانه ارسال و اقدام را کانفیگ کنیم.

گام اول- تنظیم سرور ایمیل (Media Types)

  1. به مسیر Alerts -> Media types بروید.
  2. گزینه Email را پیدا و روی آن کلیک کنید.
  3. مشخصات سرور SMTP خود (مثل جیمیل یا ایمیل سازمانی شرکت) را همراه با پورت و اطلاعات احراز هویت وارد کرده و ذخیره کنید.

گام دوم- اتصال ایمیل به کاربر

  1. به مسیر Users -> Users بروید و روی نام کاربری خود (مثلاً Admin) کلیک کنید.
  2. به تب Media بروید و روی Add کلیک کنید.
  3. نوع رسانه را روی Email بگذارید و آدرس ایمیل واقعی خودتان را بنویسید. اینجا مشخص می‌کنید که مایلید چه سطحی از هشدارها (مثلاً فقط خطاهای بحرانی یا Disaster) برایتان ارسال شود.

گام سوم: فعال‌سازی Action (شلیک هشدار)

  1. به مسیر Alerts -> Actions -> Trigger actions بروید.
  2. مطمئن شوید پکیج اکشنِ پیش‌فرض سیستم به نام Report problems to Zabbix administrators در حالت Enabled یا روشن باشد.
💡 ترفند کاربردی
جلوگیری از اسپم شدن ایمیل‌ها
زبیکس به‌صورت پیش‌فرض به‌محض اینکه مصرف پردازنده برای چند ثانیه کوتاه هم به بالای ۸۰ درصد برسد، تریگر را فعال می‌کند. برای اینکه صندوق ایمیل شما با نوسان‌های لحظه‌ای منفجر نشود، به تنظیمات تریگر در تمپلیت بروید و شرط را طوری تغییر دهید که مقدار پردازنده را در یک بازه زمانی (مثلاً میانگین ۵ دقیقه اخیر با تابع avg(5m)) بسنجد. این ترفند نرخ هشدارهای کاذب سیستم مانیتورینگ شما را به‌شدت کاهش می‌دهد. 

امنیت، بهینه‌سازی و میزبانی استاندارد Zabbix

رسیدن به پنل گرافیکی زبیکس و مشاهده اولین نمودارها تازه شروع کار است. اگر لایه‌های امنیتی را محکم نکنید و دیتابیس را برای حجم بالای داده‌های ورودی بهینه‌سازی (Tuning) نکنید، سیستم مانیتورینگ شما با کوچک‌ترین ترافیک یا اولین حمله سایبری، یا کاملاً از کار می‌افتد یا اطلاعات حساس شبکه را لو می‌دهد. طبق داکیومنت‌های رسمی امنیت زبیکس، سه گام زیر برای پایدارسازی محیط مانیتورینگ سرورها الزامی است:

  • تغییر فوری رمز عبور پیش‌فرض: اولین و حیاتی‌ترین کار، تغییر پسورد یوزر Admin از منوی Users است. باقی ماندن پسورد پیش‌فرض zabbix یک دعوت‌نامه رسمی برای هک شدن کل زیرساخت شما است.
  • تنظیم SSL/HTTPS روی وب‌سرور: زبیکس اطلاعات حساسی را میان فرانت‌اند و ادمین جابه‌جا می‌کند. برای جلوگیری از شنود اطلاعات (Sniffing) روی وب‌سرور آپاچی، حتماً یک گواهی SSL (مثل Let’s Encrypt) فعال کنید تا تمام ارتباطات پنل وب رمزنگاری شوند.
  • بهینه‌سازی دیتابیس Zabbix: بخش بزرگی از پردازش زبیکس شامل نوشتن مدام داده‌ها روی دیسک است. اگر از پایگاه داده MySQL یا MariaDB استفاده می‌کنید، حتماً پارامتر innodb_buffer_pool_size را در فایل تنظیمات دیتابیس (my.cnf) براساس ظرفیت رم سرور خود افزایش دهید (مثلاً تا ۵۰ درصد کل رم) تا از گلوگاه شدن سرعت هارد دیسک جلوگیری کنید.

چرا مانیتورینگ پایدار به یک زیرساخت مستقل و حرفه‌ای نیاز دارد؟

سیستم مانیتورینگ زمانی ارزش واقعی خود را نشان می‌دهد که دقیقاً در اوج بحران‌ها، قطعی‌ها و حملات شبکه، مثل یک دیده‌بان بیدار بماند و لاگ‌ها را ثبت کند. اگر فرایند نصب Zabbix را روی یک سرور اشتراکی، محلی یا ناپایدار انجام داده باشید، با بالا رفتن تعداد کلاینت‌ها و هجوم پکت‌های داده، سرعت سیستم به‌شدت افت خواهد کرد و دقیقاً در لحظه‌ای که کل شبکه دان (Down) می‌شود، سرور مانیتورینگ شما هم به‌دلیل کمبود منابع ایزوله کرش می‌کند!

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

ویژگی‌های ابر فردوسیمزیت برای پلتفرم Zabbix
سخت‌افزار نسل جدید HPEپایداری ۱۰۰ درصدی هسته مانیتورینگ و فرانت‌اند زیر بار پردازش‌های سنگین
پردازنده‌های Intel Xeon و AMD EPYCپردازش آنی و بدون تأخیر تریگرها (Triggers) و محاسبات ریاضی توابع هشدار
هاردهای فوق پرسرعت NVMeرفع کامل خطاهای کمبود فضای دیسک و سرعت بی‌نظیر در خواندن و نوشتن لاگ‌های دیتابیس
سیستم پرداخت ساعتیبهینه‌سازی هوشمندانه هزینه‌ها؛ فقط به‌اندازه ساعت‌های روشن بودن سرور هزینه می‌دهید
منابع کاملاً اختصاصی و ایزولهعدم اشتراک‌گذاری منابع با دیگران و تضمین امنیت کامل داده‌های مانیتورینگ شبکه
بازارچه ابری و اتوماسیون (یک کلیک)امکان نصب و پیکربندی خودکار ابزارهای مکمل مثل داکر (Docker) تنها با یک کلیک

شما می‌توانید برای ارزیابی کیفیت سخت‌افزار، سرعت دیسک‌های NVMe و تست پینگ زیرساخت، از ۱۰۰ هزار تومان اعتبار هدیه ابر فردوسی استفاده کنید. با این گرنت، سرور مجازی مانیتورینگ خود را کاملاً رایگان و بدون هیچ ریسک مالی راه‌اندازی می‌کنید، تست‌های پایداری دیتابیس را انجام می‌دهید و سپس با اطمینان خاطر تصمیم می‌گیرید.

سرور مجازی

نصب Zabbix با Docker (سناریوی پیشرفته)

گاهی اوقات در پروژه‌های تست، عیب‌یابی سریع یا اصولاً در زیرساخت‌هایی که همه چیز کانتینریایز شده است، وقت یا نیازی برای درگیر شدن با کامپایل پکیج‌ها، کانفیگ آپاچی و حل تداخل مفسر پی‌اچ‌پی وجود ندارد. در این سناریو، نصب Zabbix با Docker و ابزار محبوب Docker Compose بهترین و تمیزترین راهکار ممکن است؛ چرا که کل زنجیره نرم‌افزاری (سرور، فرانت‌اند و دیتابیس) را در کمتر از دو دقیقه بالا می‌آورد.

راه‌اندازی سریع زبیکس با داکر کامپوز

برای راه‌اندازی Zabbix به این روش کافی است یک پوشه جدید بسازید، وارد آن شوید و یک فایل به نام docker-compose.yaml ایجاد کنید:

version: '3.8'
services:
  zabbix-db:
    image: mysql:8.0
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
    volumes:
      - ./zbx_env/var/lib/mysql:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix_password
      - MYSQL_ROOT_PASSWORD=root_password

  zabbix-server:
    image: zabbix/zabbix-server-mysql:ubuntu-7.0-latest
    ports:
      - "10051:10051"
    volumes:
      - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
    environment:
      - DB_SERVER_HOST=zabbix-db
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix_password
      - MYSQL_ROOT_PASSWORD=root_password

  zabbix-web:
    image: zabbix/zabbix-web-apache-mysql:ubuntu-7.0-latest
    ports:
      - "8080:8080"
    environment:
      - DB_SERVER_HOST=zabbix-db
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix_password
      - MYSQL_ROOT_PASSWORD=root_password
      - ZBX_SERVER_HOST=zabbix-server

حالا با اجرای یک دستور ساده در ترمینال، تمام کانتینرها دانلود شده و در یک شبکه ایزوله به هم متصل می‌شوند:

docker compose up -d

پس‌از چند ثانیه، پنل گرافیکی زبیکس روی پورت 8080 سرور شما (آدرس http://server_ip:8080) آماده استفاده خواهد بود.

نگاهی به پایش میکروسرویس‌ها

مزیت بزرگ استقرار کانتینری این است که دست شما را برای سناریوهای پایش مدرن مانند استفاده از میکروسرویس‌ها باز می‌گذارد.

  • مانیتورینگ Docker: با اتصال سوکت داکر (/var/run/docker.sock) به کانتینر ایجنت زبیکس، می‌توانید وضعیت لحظه‌ای، میزان مصرف منابع و لاگ‌های تک‌تک کانتینرهای فعال روی سرور را بدون کانفیگ‌های دستی و طولانی رصد کنید.
  • مانیتورینگ Kubernetes با Zabbix: اگر ابعاد پروژه بزرگ شده و به‌سراغ کلاسترهای کوبرنتیز رفته‌اید، زبیکس با ارائه تمپلیت‌های بومی و ابزار Zabbix Helm Chart به شما اجازه می‌دهد تا کل وضعیت Podها، Nodeها و سرویس‌های داخل کلاستر را یک‌پارچه پایش کنید و مدیریت هشدارها را به دست بگیرید.

جمع‌بندی

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

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

آیا در طول فرایند نصب با خطای خاصی در دیتابیس یا چراغ قرمز ایجنت مواجه شدید؟ در بخش نظرات بپرسید تا باهم مشکلات را رفع کنیم.

سؤالات متداول

برای نصب زبیکس اوبونتو بهتر است یا دبیان یا خانواده ردهت؟

زبیکس روی تمام این توزیع‌ها عملکرد پایداری دارد. بااین‌حال، اوبونتو (به‌ویژه نسخه‌های LTS مانند Ubuntu 24.04) به‌دلیل گستردگی منابع آموزشی و در دسترس بودن پکیج‌های رسمی، برای اکثر سناریوها توصیه می‌شود. در پروژه‌های بزرگ سازمانی که پایداری بتنی لینوکس اولویت دارد، لینوکس‌های بر پایه ردهت مثل AlmaLinux و Rocky Linux انتخاب‌های اول ادمین‌های شبکه هستند.

Zabbix Server و Zabbix Agent چه تفاوتی دارند؟

سرور زبیکس (Zabbix Server) مغز متفکر و هسته اصلی سیستم مانیتورینگ است که وظیفه دریافت، پردازش، تحلیل و ذخیره‌سازی داده‌ها و همچنین صدور هشدارها را برعهده دارد. در مقابل، زبیکس ایجنت (Zabbix Agent) یک برنامه فوق‌العاده سبک است که روی سیستم‌عامل‌های مقصد (سرورهای کلاینت) نصب می‌شود تا داده‌هایی مثل میزان مصرف رم، پردازنده و دیسک را جمع‌آوری کرده و برای سرور ارسال کند.

وب‌سرور آپاچی برای زبیکس بهتر است یا انجین‌ایکس؟

بسته‌های رسمی زبیکس با هر دو وب‌سرور کاملاً سازگار هستند. آپاچی (Apache) به‌دلیل کانفیگ خودکار و ساده‌تر در فرایند نصب بسته‌ها محبوب است؛ اما اگر با یک محیط بزرگ مانیتورینگ با هزاران هاست هدف طرف هستید، انجین‌ایکس (Nginx) به‌دلیل مدیریت بهینه کانکشن‌های هم‌زمان و مصرف کمتر رم، کارایی بالاتری از خود نشان می‌دهد.

هنگام نصب زبیکس، بین MySQL/MariaDB و PostgreSQL کدام انتخاب بهتری است؟

برای دپلوی‌های کوچک تا متوسط، MariaDB به‌دلیل سرعت عالی در نوشتن داده‌ها و مدیریت ساده‌تر گزینه‌ای بی‌نقص است. اما اگر در یک دیتابیس سازمانی بسیار بزرگ (با حجم دیتای فراتر از چند صد گیگابایت) مانیتورینگ را اجرا می‌کنید، PostgreSQL همراه با افزونه TimescaleDB عملکرد بی‌نظیری در پارتیشن‌بندی داده‌های تایم‌سری (Time-series) و جلوگیری از افت سرعت دیسک دارد.

نام کاربری و رمز عبور پیش‌فرض زبیکس بعداز نصب چیست؟

پس‌از اتمام فرایند نصب فرانت‌اند و در اولین ورود به پنل وب، باید از نام کاربری Admin (با حرف اول بزرگ) و پسورد پیش‌فرض zabbix (با حروف کوچک) استفاده کنید. حتماً در اولین گام از منوی تنظیمات کاربر، این رمز عبور را به یک عبارت پیچیده تغییر دهید.

چرا چراغ ارتباط با Zabbix Agent سبز نمی‌شود و داده‌ای دریافت نمی‌کنیم؟

این اختلال معمولاً ۳ علت اصلی دارد:
مسائل فایروال: پورت 10050 روی سرور مقصد یا پورت 10051 روی سرور اصلی مسدود است.
اشتباه در فایل کانفیگ: آی‌پی سرور اصلی مانیتورینگ در فایل zabbix_agentd.conf کلاینت (جلوی پارامترهای Server و ServerActive) به‌درستی وارد نشده است.
عدم تطابق Hostname: نامی که در پنل وب زبیکس برای هاست تعریف کرده‌اید با نام نوشته شده جلوی پارامتر Hostname در فایل کانفیگ ایجنت، تفاوت کاراکتری یا حساسیت به حروف کوچک و بزرگ دارد.

آیا زبیکس کانتینرهای داکر و کلاسترهای کوبرنتیز را هم مانیتور می‌کند؟

بله؛ زبیکس با ارائه تمپلیت‌های بومی و پکیج مدرن Zabbix Agent 2 که با زبان Go نوشته شده، به‌صورت پیش‌فرض امکان اتصال به سوکت داکر و پایش لحظه‌ای کانتینرها را دارد. برای کوبرنتیز نیز با استفاده از ابزار Helm Chart و مانیتورینگ API کلستر، کل وضعیت Podها و Nodeها قابل پایش است.

چه زمانی به راه‌اندازی Zabbix Proxy نیاز داریم؟

اگر مانیتورینگ شما قرار است سرورهای موجود در دیتاسنترهای مختلف (خارج از شبکه محلی سرور اصلی) را پایش کند یا اگر تعداد هاست‌های شبکه شما به‌طرز چشم‌گیری افزایش یافته و بار پردازشی سرور اصلی سنگین شده است، باید از Zabbix Proxy استفاده کنید. پروکسی دیتاها را به‌صورت محلی جمع‌آوری، فشرده و فیلتر می‌کند و سپس به سرور اصلی می‌فرستد.

یاسین اسدی

اگه می‌خوای زندگیت تغیر کنه کتاب نخون؛ نوشته‌های منو بخون!
پست های مرتبط

مصرف بالای هاست و راهنمای کامل رفع مشکل منابع

وقتی سایت بدون هیچ دلیل واضحی کند می‌شود یا مدام با خطای ۵۰۸ روبه‌رو می‌شوید، احتمالاً با مشکل مصرف بالای هاست دست‌وپنجه نرم می‌کنید. این اتفاق لزوماً به معنی انفجار ترافیک و پربازدید شدن ناگهانی سایت نیست؛…

۱۶ شهریور ۱۴۰۵

بستن آی پی کشورهای خارجی در لینوکس

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

۲۴ مرداد ۱۴۰۵

آموزش دپلوی ربات تلگرام روی سرور

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

۲۴ مرداد ۱۴۰۵
0 0 رای ها
به مقاله امتیاز بدید
0 نظرات