مقدمه
زابیکس (Zabbix) یک نرمافزار متنباز (Open-Source) قدرتمند برای مانیتورینگ شبکه، سرورها و زیرساختهای پردازشی است. این ابزار قابلیت پایش آنی و ریلتایم هزاران متریگ از سرورها، ماشینهای مجازی، تجهیزات شبکه و اپلیکیشنهای وب را فراهم میکند. دادههای جمعآوریشده در دیتابیس ذخیره میشوند تا بتوانید وضعیت سلامتی زیرساخت IT خود را بررسی کرده، رخ دادن اختلالات را پیش از گلایه کاربران تشخیص دهید و برای ارتقای زیرساخت برنامه ریزی کنید.
زابیکس برای جمعآوری دادهها از روشهای متعددی مانند مانیتورینگ بدون ایجنت (Agentless) و معماری کلاینت-سرور بهره میبرد. در روش کلاینت-سرور، یک ایجنت سبُک (Zabbix Agent) روی سرور مقصد نصب میشود تا اطلاعات را جمعآوری کرده و به سرور مرکزی زابیکس بفرستد. ارتباط میان ایجنت و سرور مرکزی کاملاً رمزنگاریشده (Encrypted) است؛ بنابراین دادههای حساس مانیتورینگ حتی روی شبکههای ناامن نیز با ایمنی بالا جابهجا میشوند.
دادههای جمعآوریشده در پایگاه دادههای رابطهای مانند MySQL یا PostgreSQL ذخیره میشوند. همچنین interface تحت وب زابیکس مدیریت سیستم و مشاهده گزارشها را بسیار ساده میسازد.
در این مقاله، سیستم مانیتورینگ زابیکس را روی دو سرور با سیستمعامل اوبونتو 22.04 پیکربندی میکنیم:
-
سرور اول (Zabbix Server): به عنوان سرور مرکزی همراه با دیتابیس MySQL و وبسرور Nginx.
-
سرور دوم (Client Server): سروری که قصد داریم آن را بهصورت امن مانیتور کنیم.
پیشنیازها
برای اجرای مراحل این مقاله به موارد زیر نیاز دارید:
-
دو سرور اوبونتو 22.04 که روی آنها کاربر غیر روت با دسترسی
sudoو فایروال UFW فعال باشد.-
سرور اول: Zabbix Server
-
سرور دوم: Target Server (سروری که مانیتور میشود)
-
-
نصب بودن Nginx، MySQL و PHP (پشته LEMP) روی سرور مرکزی زابیکس.
-
یک دامنه (Domain Name): تنظیم A Record دامنه بههمراه subdomain مربوط به
wwwروی IP عمومی سرور زابیکس. -
گواهی SSL/TLS (اختیاری اما بسیار توصیه شده): استفاده از Certbot و Let’s Encrypt برای امنسازی پنل وب.
گام ۱ — نصب Zabbix Server
به سرور مرکزی خود از طریق SSH متصل شوید:
ssh sammy@zabbix_server_ip_address
مخازن پیشفرض اوبونتو ممکن است نسخههای قدیمیتر زابیکس را داشته باشند. برای نصب نسخه پایدار LTS (نسخه 6.0)، ابتدا مخزن رسمی Zabbix را دریافت و نصب کنید:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
لیست پکیجها را بروزرسانی کنید:
sudo apt update
اکنون سرور مرکزی زابیکس، رابط وب و پشتیبانی از پایگاهداده MySQL را نصب کنید:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-sql-scripts
همچنین ایجنت زابیکس را روی همین سرور نصب کنید تا بتوانید وضعیت خودِ سرور مرکزی را هم پایش کنید:
sudo apt install zabbix-agent
گام ۲ — پیکربندی دیتابیس MySQL برای Zabbix
وارد محیط کنسول MySQL شوید:
sudo mysql
یک دیتابیس با پشتیبانی از کاراکترهای UTF-8 ایجاد کنید:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
کاربر اختصاصی برای زابیکس بسازید و دسترسیهای لازم را اعطا کنید:
CREATE USER zabbix@localhost IDENTIFIED BY 'your_zabbix_mysql_password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
FLUSH PRIVILEGES;
QUIT;
حالا باید اسکیما (Schema) و دادههای اولیه را وارد دیتابیس کنید:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
پسوردی که در مرحلهی قبل انتخاب کرده بودید را وارد کنید. این فرایند ممکن است ۱ الی ۲ دقیقه طول بکشد.
سپس فایل کانفیگ زابیکس را باز کنید تا پسورد دیتابیس را در آن ثبت کنید:
sudo nano /etc/zabbix/zabbix_server.conf
خط مربوط به DBPassword را پیدا کرده، از حالت کامنت خارج کنید و رمز عبور دیتابیس را وارد کنید:
DBPassword=your_zabbix_mysql_password
فایل را ذخیره کرده (CTRL+O و ENTER) و خارج شوید (CTRL+X).
گام ۳ — کانفیگ وبسرور Nginx برای زابیکس
برای کانفیگ خودکار Nginx، پکیج مربوطه را نصب کنید:
sudo apt install zabbix-nginx-conf
فایل تنظیمات ایجاد شده را باز کنید:
sudo nano /etc/zabbix/nginx.conf
خطوط مربوط به listen و server_name را از کامنت خارج کرده و دامنه خود را جایگزین کنید:
server {
listen 80;
server_name your_domain;
...
فایل را ذخیره کرده و صحت کانفیگ Nginx را تست و آن را ریلود کنید:
sudo nginx -t
sudo nginx -s reload
گام ۴ — تنظیمات PHP و اجرای سرویس Zabbix
فایل کانفیگ PHP-FPM اختصاصی زابیکس را باز کنید:
sudo nano /etc/zabbix/php-fpm.conf
تایمزون (Timezone) را پیدا کرده، از کامنت خارج کنید و روی Asia/Tehran قرار دهید:
php_value[date.timezone] = Asia/Tehran
فایل را ذخیره کرده و سرویسها را ریاستارت و فعال (Enable) کنید:
sudo systemctl restart php8.1-fpm zabbix-server zabbix-agent nginx
sudo systemctl enable zabbix-server zabbix-agent nginx
وضعیت سرویس زابیکس را بررسی کنید:
sudo systemctl status zabbix-server
گام ۵ — راهاندازی اولیه از طریق پنل وب
مرورگر خود را باز کرده و به آدرس http://your_domain بروید.
-
Check of pre-requisites: بررسی کنید که تمام گزینهها سبز و OK باشند.
-
DB Connection: اطلاعات دیتابیس (
zabbix) و پسوردی که در گام ۲ ساختید را وارد کنید. -
Zabbix Server Details: یک نام اختیاری برای سرور مانیتورینگ خود انتخاب کنید.
-
Default Login: پس از اتمام مراحل، با اطلاعات پیشفرض زیر وارد شوید:
-
Username:
Admin(با A بزرگ) -
Password:
zabbix
-
(حتماً پس از اولین ورود، رمز عبور Admin را از بخش مدیریت کاربران تغییر دهید).
گام ۶ — نصب و پیکربندی Zabbix Agent روی سرور ریموت (کلاینت)
حالا وارد سرور دوم (سروری که قصد مانیتور کردن آن را دارید) شوید:
ssh sammy@second_ubuntu_server_ip_address
مخزن رسمی زابیکس را نصب کنید:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo apt update
sudo apt install zabbix-agent
نکته توسعهدهندگان و زیرساخت: اگر در طول فرایندهای توسعه روی سرورهای خود نیاز به دانلود ایمیجهای داکر، پکیجهای پایتون، نود یا جاوا اسکریپت داشتید، میتوانید از میرورهای زیرساختی پارمین کلود جهت افزایش سرعت و دور زدن تحریمها استفاده کنید:
Docker Registry:
hub.cr.parmincloud.irPyPI (Python):
[https://pypi.parmincloud.ir/simple/](https://pypi.parmincloud.ir/simple/)NPM:
[https://npm.parmincloud.ir](https://npm.parmincloud.ir)Composer (PHP):
[https://composer.parmincloud.ir](https://composer.parmincloud.ir)
امنسازی ارتباط با کلید پیشاشتراکگذاریشده (PSK)
برای رمزنگاری ارتباط بین ایجنت و سرور اصلی، یک کلید PSK بسازید:
sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
cat /etc/zabbix/zabbix_agentd.psk
کلید خروجی را کپی کنید؛ در مرحله بعد به آن نیاز خواهید داشت.
فایل تنظیمات ایجنت را باز کنید:
sudo nano /etc/zabbix/zabbix_agentd.conf
پارامترهای زیر را پیدا کرده و متناسب با اطلاعات خود تغییر دهید:
Server=zabbix_server_ip_address
ServerActive=zabbix_server_ip_address
Hostname=Second Ubuntu Server
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK 001
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
فایل را ذخیره کرده، سرویس را اجرا و پورت مربوطه را در فایروال باز کنید:
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
sudo ufw allow 10050/tcp
گام ۷ — افزودن سرور جدید به پنل Zabbix
-
وارد پنل وب زابیکس شوید.
-
از منوی سمت چپ به مسیر Configuration -> Hosts بروید و روی Create host کلیک کنید.
-
در تب Host:
-
Host name: دقیقاً همان نامی که در فایل کانفیگ ایجنت جلوی
Hostnameقرار دادید (Second Ubuntu Server). -
Templates: قالب
Linux by Zabbix agentرا انتخاب کنید. -
Groups: گروه
Linux serversرا انتخاب کنید. -
Interfaces: یک انترفیس از نوع
Agentاضافه کرده و IP سرور دوم را وارد کنید.
-
-
به تب Encryption بروید:
-
Connections to host: گزینه
PSK -
Connections from host: گزینه
PSK -
PSK identity: عبارت
PSK 001 -
PSK value: کلید تولید شده در گام ۶ را پیست کنید.
-
-
روی دکمه Add کلیک کنید.
پس از ۱ الی ۲ دقیقه، وضعیت کلاینت با تگ سبز رنگ ZBX و آیکون رمزنگاری فعال نشان داده خواهد شد.
گام ۸ — تنظیم هشدارهای ایمیلی (Email Notifications)
-
به مسیر Administration -> Media types بروید.
-
روی گزینه Email کلیک کنید.
-
تنظیمات سرویس ایمیل یا SMTP خود را وارد کرده و تغییرات را ذخیره کنید.
-
به مسیر Administration -> Users رفته، کاربر خود را انتخاب کنید، به تب Media بروید و آدرس ایمیل دریافتکننده هشدارها را ثبت کنید.
-
در نهایت از مسیر Configuration -> Actions -> Trigger actions، اکشن پیشفرض ارسال پیام را روی حالت Enabled قرار دهید.
گام ۹ — تست سیستم هشداردهی (Alert Test)
برای اطمینان از صحت عملکرد هشدارها، وارد سرور دوم شوید و یک فایل حجیم موقت بسازید تا حجم دیسک پر شود:
fallocate -l 70G /tmp/temp.img
پس از مدت کوتاهی، زابیکس پر شدن دیسک (بیش از ۸۰٪) را تشخیص داده، یک تریگر قرمز رنگ روی دشبورد ظاهر میکند و ایمیل هشدار را ارسال خواهد کرد.
پس از اطمینان از عملکرد سیستم، فایل موقت را پاک کنید:
rm -f /tmp/temp.img
جمعبندی
شما موفق شدید یک زیرساخت مانیتورینگ متمرکز و امن با Zabbix روی سرورهای اوبونتو 22.04 راهاندازی کنید. اکنون سرور ریموت شما با ارتباط رمزنگاریشده PSK تحت پایش قرار دارد و در صورت بروز هرگونه مشکل، هشدارهای آنی دریافت خواهید کرد.
نظرات کاربران