آموزش نصب و پیکربندی زابیکس (Zabbix) جهت مانیتورینگ امن سرورهای ریموت در اوبونتو 22.04

مقدمه

زابیکس (Zabbix) یک نرم‌افزار متن‌باز (Open-Source) قدرتمند برای مانیتورینگ شبکه، سرورها و زیرساخت‌های پردازشی است. این ابزار قابلیت پایش آنی و ریل‌تایم هزاران متریگ از سرورها، ماشین‌های مجازی، تجهیزات شبکه و اپلیکیشن‌های وب را فراهم می‌کند. داده‌های جمع‌آوری‌شده در دیتابیس ذخیره می‌شوند تا بتوانید وضعیت سلامتی زیرساخت IT خود را بررسی کرده، رخ دادن اختلالات را پیش از گلایه کاربران تشخیص دهید و برای ارتقای زیرساخت برنامه ریزی کنید.

زابیکس برای جمع‌آوری داده‌ها از روش‌های متعددی مانند مانیتورینگ بدون ایجنت (Agentless) و معماری کلاینت-سرور بهره می‌برد. در روش کلاینت-سرور، یک ایجنت سبُک (Zabbix Agent) روی سرور مقصد نصب می‌شود تا اطلاعات را جمع‌آوری کرده و به سرور مرکزی زابیکس بفرستد. ارتباط میان ایجنت و سرور مرکزی کاملاً رمزنگاری‌شده (Encrypted) است؛ بنابراین داده‌های حساس مانیتورینگ حتی روی شبکه‌های ناامن نیز با ایمنی بالا جابه‌جا می‌شوند.

داده‌های جمع‌آوری‌شده در پایگاه داده‌های رابطه‌ای مانند MySQL یا PostgreSQL ذخیره می‌شوند. همچنین interface تحت وب زابیکس مدیریت سیستم و مشاهده گزارش‌ها را بسیار ساده می‌سازد.

در این مقاله، سیستم مانیتورینگ زابیکس را روی دو سرور با سیستم‌عامل اوبونتو 22.04 پیکربندی می‌کنیم:

  1. سرور اول (Zabbix Server): به عنوان سرور مرکزی همراه با دیتابیس MySQL و وب‌سرور Nginx.

  2. سرور دوم (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 متصل شوید:

Bash

ssh sammy@zabbix_server_ip_address

مخازن پیش‌فرض اوبونتو ممکن است نسخه‌های قدیمی‌تر زابیکس را داشته باشند. برای نصب نسخه پایدار LTS (نسخه 6.0)، ابتدا مخزن رسمی Zabbix را دریافت و نصب کنید:

Bash

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

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

Bash

sudo apt update

اکنون سرور مرکزی زابیکس، رابط وب و پشتیبانی از پایگاه‌داده MySQL را نصب کنید:

Bash

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-sql-scripts

همچنین ایجنت زابیکس را روی همین سرور نصب کنید تا بتوانید وضعیت خودِ سرور مرکزی را هم پایش کنید:

Bash

sudo apt install zabbix-agent

گام ۲ — پیکربندی دیتابیس MySQL برای Zabbix

وارد محیط کنسول MySQL شوید:

Bash

sudo mysql

یک دیتابیس با پشتیبانی از کاراکترهای UTF-8 ایجاد کنید:

SQL

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

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

SQL

CREATE USER zabbix@localhost IDENTIFIED BY 'your_zabbix_mysql_password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
FLUSH PRIVILEGES;
QUIT;

حالا باید اسکیما (Schema) و داده‌های اولیه را وارد دیتابیس کنید:

Bash

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix

پسوردی که در مرحله‌ی قبل انتخاب کرده بودید را وارد کنید. این فرایند ممکن است ۱ الی ۲ دقیقه طول بکشد.

سپس فایل کانفیگ زابیکس را باز کنید تا پسورد دیتابیس را در آن ثبت کنید:

Bash

sudo nano /etc/zabbix/zabbix_server.conf

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

Ini, TOML

DBPassword=your_zabbix_mysql_password

فایل را ذخیره کرده (CTRL+O و ENTER) و خارج شوید (CTRL+X).

گام ۳ — کانفیگ وب‌سرور Nginx برای زابیکس

برای کانفیگ خودکار Nginx، پکیج مربوطه را نصب کنید:

Bash

sudo apt install zabbix-nginx-conf

فایل تنظیمات ایجاد شده را باز کنید:

Bash

sudo nano /etc/zabbix/nginx.conf

خطوط مربوط به listen و server_name را از کامنت خارج کرده و دامنه خود را جایگزین کنید:

Nginx

server {
        listen          80;
        server_name     your_domain;
...

فایل را ذخیره کرده و صحت کانفیگ Nginx را تست و آن را ری‌لود کنید:

Bash

sudo nginx -t
sudo nginx -s reload

گام ۴ — تنظیمات PHP و اجرای سرویس Zabbix

فایل کانفیگ PHP-FPM اختصاصی زابیکس را باز کنید:

Bash

sudo nano /etc/zabbix/php-fpm.conf

تایم‌زون (Timezone) را پیدا کرده، از کامنت خارج کنید و روی Asia/Tehran قرار دهید:

Ini, TOML

php_value[date.timezone] = Asia/Tehran

فایل را ذخیره کرده و سرویس‌ها را ری‌استارت و فعال (Enable) کنید:

Bash

sudo systemctl restart php8.1-fpm zabbix-server zabbix-agent nginx
sudo systemctl enable zabbix-server zabbix-agent nginx

وضعیت سرویس زابیکس را بررسی کنید:

Bash

sudo systemctl status zabbix-server

گام ۵ — راه‌اندازی اولیه از طریق پنل وب

مرورگر خود را باز کرده و به آدرس http://your_domain بروید.

  1. Check of pre-requisites: بررسی کنید که تمام گزینه‌ها سبز و OK باشند.

  2. DB Connection: اطلاعات دیتابیس (zabbix) و پسوردی که در گام ۲ ساختید را وارد کنید.

  3. Zabbix Server Details: یک نام اختیاری برای سرور مانیتورینگ خود انتخاب کنید.

  4. Default Login: پس از اتمام مراحل، با اطلاعات پیش‌فرض زیر وارد شوید:

    • Username: Admin (با A بزرگ)

    • Password: zabbix

(حتماً پس از اولین ورود، رمز عبور Admin را از بخش مدیریت کاربران تغییر دهید).

گام ۶ — نصب و پیکربندی Zabbix Agent روی سرور ریموت (کلاینت)

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

Bash

ssh sammy@second_ubuntu_server_ip_address

مخزن رسمی زابیکس را نصب کنید:

Bash

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.ir

  • PyPI (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 بسازید:

Bash

sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
cat /etc/zabbix/zabbix_agentd.psk

کلید خروجی را کپی کنید؛ در مرحله بعد به آن نیاز خواهید داشت.

فایل تنظیمات ایجنت را باز کنید:

Bash

sudo nano /etc/zabbix/zabbix_agentd.conf

پارامترهای زیر را پیدا کرده و متناسب با اطلاعات خود تغییر دهید:

Ini, TOML

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

فایل را ذخیره کرده، سرویس را اجرا و پورت مربوطه را در فایروال باز کنید:

Bash

sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
sudo ufw allow 10050/tcp

گام ۷ — افزودن سرور جدید به پنل Zabbix

  1. وارد پنل وب زابیکس شوید.

  2. از منوی سمت چپ به مسیر Configuration -> Hosts بروید و روی Create host کلیک کنید.

  3. در تب Host:

    • Host name: دقیقاً همان نامی که در فایل کانفیگ ایجنت جلوی Hostname قرار دادید (Second Ubuntu Server).

    • Templates: قالب Linux by Zabbix agent را انتخاب کنید.

    • Groups: گروه Linux servers را انتخاب کنید.

    • Interfaces: یک انترفیس از نوع Agent اضافه کرده و IP سرور دوم را وارد کنید.

  4. به تب Encryption بروید:

    • Connections to host: گزینه PSK

    • Connections from host: گزینه PSK

    • PSK identity: عبارت PSK 001

    • PSK value: کلید تولید شده در گام ۶ را پیست کنید.

  5. روی دکمه Add کلیک کنید.

پس از ۱ الی ۲ دقیقه، وضعیت کلاینت با تگ سبز رنگ ZBX و آیکون رمزنگاری فعال نشان داده خواهد شد.

گام ۸ — تنظیم هشدارهای ایمیلی (Email Notifications)

  1. به مسیر Administration -> Media types بروید.

  2. روی گزینه Email کلیک کنید.

  3. تنظیمات سرویس ایمیل یا SMTP خود را وارد کرده و تغییرات را ذخیره کنید.

  4. به مسیر Administration -> Users رفته، کاربر خود را انتخاب کنید، به تب Media بروید و آدرس ایمیل دریافت‌کننده هشدارها را ثبت کنید.

  5. در نهایت از مسیر Configuration -> Actions -> Trigger actions، اکشن پیش‌فرض ارسال پیام را روی حالت Enabled قرار دهید.

گام ۹ — تست سیستم هشداردهی (Alert Test)

برای اطمینان از صحت عملکرد هشدارها، وارد سرور دوم شوید و یک فایل حجیم موقت بسازید تا حجم دیسک پر شود:

Bash

fallocate -l 70G /tmp/temp.img

پس از مدت کوتاهی، زابیکس پر شدن دیسک (بیش از ۸۰٪) را تشخیص داده، یک تریگر قرمز رنگ روی دشبورد ظاهر می‌کند و ایمیل هشدار را ارسال خواهد کرد.

پس از اطمینان از عملکرد سیستم، فایل موقت را پاک کنید:

Bash

rm -f /tmp/temp.img

جمع‌بندی

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

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *