محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش نصب زبیکس ( Zabbix ) از سورس

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

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

فرآیند نصب زبیکس از سورس کد از نظر من به 13  مرحله تقسیم بندی می شود که در ابتدا شما باید این 20 مرحله را بشناسید و طبق آن جلو بروید تا به مشکلی در نصب بر نخورید ، این مراحل شامل موارد زیر هستند :

آماده سازی سرور

ما تمامی مراحل را بر روی سیستم عامل CentOS 8 انجام می دهیم ، شما می توانید بر روی Rocky Linux یا RHEL نیز تمامی مراحل را دنبال کنید. توصیه شخصی من این است که برای اینکه طی فرآیند پیکربندی زبیکس به مشکل نخورید ، ابتدا پکیج های نرم افزاری را به روز رسانی کنید ، بنابراین دستور زیر را وارد کنید :

sudo dnf update
sudo dnf upgrade

آموزش نصب زبیکس

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

systemctl stop firewalld.service
systemctl disable firewalld

آموزش نصب زبیکس

برای غیرفعال کردن SELinux باید فایل /etc/sysconfig/selinux را باز کرده و مطمئن شوید SELINUX=disabled است .

آموزش نصب زبیکس

سپس فایل را ببندید و خارج شوید و یکبار سیستم عامل را Reboot کنید تا تغییرات اعمال شود.


  • نکته : مراحل گفته شده برای تست کردن نصب زبیکس از بیرون سرور و در صورت داشتن ارتباطات شبکه ای است ، در صورتیکه می خواهید همه چیز را بصورت Local تست بگیرید و از بیرون از سیستم عامل نمی خواهید به رابط گرافیکی زبیکس متصل شوید ، نیازی به انجام مراحل بالا نیست.


نصب بسته های نرم افزاری مورد نیاز

برای اینکه زبیکس شما به درستی کار کند شما نیاز به نصب کردن وب سرور آپاچی و بانک اطلاعاتی MySQL دارید ، با استفاده از دستور زیر شما می توانید آپاچی را نصب کنید :


dnf install httpd httpd-tools

آموزش نصب زبیکس


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

systemctl enable httpd.service
systemctl start httpd.service

آموزش نصب زبیکس



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

dnf -y install @mysql


آموزش نصب زبیکس


مشابه کاری که برای سرویس آپاچی انجام دادیم ، برای سرویس MySQL نیز انجام می دهیم و سرویس آن را start و enable می کنیم ، اینکار از طریق وارد کردن دستور زیر انجام می شود :

systemctl enable mysqld.service
systemctl start mysqld.service

آموزش نصب زبیکس


نصب وابستگی های نرم افزاری مورد نیاز

یکی از مشکلاتی که در حین نصب زبیکس از سورس خواهید داشت این است که به دلیل عدم استفاده از Package Manager وابستگی های نرم افزاری هر یک از بسته های نرم افزاری بصورت خودکار نصب نخواهند شد و زمانیکه شما برای کامپایل کردن سورس اقدام می کنید ، به شما بابت هر یک از این وابستگی ها خطا داده خواهد شد ، من لیستی از کلیه وابستگی های مورد نیاز برای نصب زبیکس از سورس را تهیه کرده ام و با زدن دستورات زیر ، در بیشتر موارد شما برای کامپایل کردن نیاز به هیچ چیز اضافه ای نخواهید داشت ، دستوراتی را که در ادامه قرار می دهیم به ترتیب در خط فرمان وارد کنید :

dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module reset php
dnf module enable php:remi-7.4
dnf install php php-mysqlnd
dnf install php-gd php-zip php-mcrypt php-json php-xml php-gettext php-curl php-intl
dnf install gcc mysql-devel libxml2-devel net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel libssh2-devel iksemel-devel openldap-devel
dnf install mariadb-devel
dnf install libxml2-devel
dnf install net-snmp-devel
dnf --enablerepo=powertools install OpenIPMI-devel
dnf install libevent-devel
dnf install curl curl-devel
dnf install pcre-devel
dnf install libxml2-devel --nobest
yum install php-bcmath
  • نکته : هر کدام از دستوراتی که در بالا مشاهده می کنید در نتیجه خطایی است که من در هنگام چک کردن فایل های زبیکس برای کامپایل دریافت کرده ام و بعد از وارد کردن دستوراتی که اشاره کردیم ، دیگر خطایی در زمان بررسی کامپایل مشاهده نشد. اگر دستورات بالا را وارد نکنید ، باید به ازای هر یک از خطاهایی که دریافت می کنید جستجو کنید و فایل وابستگی یا Dependency مشکل ساز را پیدا کنید و نصب کنید.


  • نکته : در دستورات بالا نصب کردن PHP به این دلیل است که رابط کاربری زبیکس با این زبان نوشته شده است ، در صورت وارد نکردن دستورات بالا شما خطاهایی مثل MySQL Error ، Lixml12 Error ، SNMP Error ، OpenIPMI Error ، Libevent-devel Error ، Curl Error ، libpcre Error و ... را دریافت خواهید کرد. من برای شما کار را بسیار راحت کرده ام.

نصب ابزارهای کامپایل سورس

بیشتر سورس کدهای زبیکس به زبان C نوشته شده است و شما برای اینکه بتوانید آنها را کامپایل کنید ، به ابزارهای کامپایلر کد نیاز دارید ، در این قسمت شما باید Development Tools را نصب کنید تا ابزارهای کامپایل کد نیز همراه به آنها نصب شوند ، برای اینکار کافیست دستور زیر را وارد کنید :

dnf group install "Development Tools"

آموزش نصب زبیکس

پیکربندی گروه ها و کاربران

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

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

آموزش نصب زبیکس

ایجاد کردن home directory برای کاربر ( انتخابی )

کاربرهای سرویس سیستم معمولا نیازی به داشتن Home Directory ندارند ، این قسمت از نصب زبیکس از سورس کاملا انتخابی است . ممکن است برخی اوقات نیاز به نگهداری داده های موقتی برای بانک اطلاعاتی یا در قالب فایل های Temporary باشد که تعریف کردن این Home Directory ممکن است در چنین شرایطی به شما کمک کند ، اما قطعا الزامی نیست.  با استفاده از دو دستور زیر می توانید اینکار را انجام دهید :

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix

آموزش نصب زبیکس

ایجاد کردن بانک اطلاعاتی زبیکس در MySQL

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

mysql –u root -p
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by 'password';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> quit;

دانلود فایل های سورس زبیکس

حالا شما باید فایل های سورس زبیکس را دانلود کنید ، ما اینجا از زبیکس نسخه 6.0 استفاده می کنیم ، برای دانلود کافیست دستور زیر را وارد کنید :

wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.23.tar.gz

آموزش نصب زبیکس

فایل zip شده زبیکس در مسیر فعلی دانلود می شود. برای استفاده از محتویات فایل ها باید آنها را در مسیر فعلی Extract کنید ، برای اینکار کافیست دستور زیر را وارد کنید :

tar -zxvf zabbix-6.4.0.tar.gz

آموزش نصب زبیکس

وارد کردن داده های پیشفرض در بانک اطلاعاتی

زمانیکه زبیکس را بصورت معمولی نصب می کنید ، داده هایی بصورت پیشفرض در بانک اطلاعاتی آن ثبت میشوند ، این اتفاق در زمانیکه فرآیند نصب بصورت نصب از سورس اتفاق می افتد ، صورت نمی گیرد و شما باید داده های پیشفرض بانک اطلاعاتی را بصورت دستی وارد کنید ، برای اینکار ابتدا وارد دایرکتوری سورس زبکیس و دایرکتوری  databases شوید و سپس وارد پوشه mysql شده و دستورات زیر را به ترتیب وارد کنید :

cd database/mysql
mysql -uzabbix -p zabbix < schema.sql
mysql -uzabbix -p zabbix < images.sql
mysql -uzabbix -p --default-character-set=utf8mb4 zabbix < data.sql

آموزش نصب زبیکس

در حال حاضر بانک اطلاعاتی زبیکس شما یک سری داده های پیشفرض درون خودش دارد. در ادامه یکی از قابلیت های MySQL باید غیرفعال شود که عینا دستور زیر را در خط فرمان برای اینکار باید وارد کنید :

mysql -uroot -p
mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;

آموزش نصب زبیکس

بررسی آماده شدن زبیکس برای فرآیند کامپایل

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

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

آموزش نصب زبیکس

برای اینکه دستور به درستی کار کند ، حتما وارد دایرکتوری سورس زبیکس شده  سپس دستور را وارد کنید. با وارد کردن دستور بالا ، همه وابستگی ها و کتابخانه های مورد نیاز برای کامپایل زبیکس بررسی می شوند و اگر همه چیز بدون مشکل اجرا شود با تصویر زیر مواجه خواهید شد:

آموزش نصب زبیکس

اگر دستوراتی که قبلا گفتیم را به درستی وارد نکرده باشید ، در اینجا قطعا به خطاهایی بر می خورید که باید آنها را برطرف کنید ، اگر با پیغام تصویر بالا یعنی Now run make install مواجه شدید ، یعنی زبیکس شما آماده کامپایل شدن است.

شروع فرآیند کامپایل

همه چیز برای کامپایل شدن آماده است ، کافیست دستور زیر را وارد کنید تا فرآیند کامپایل سورس زبیکس شروع شود :

make install

آموزش نصب زبیکس

همه چیز بدون مشکل انجام می شود ، اما این تازه شروع ماجراست و فرآیند نصب اصلی همچنان ادامه دارد.

تنظیمات فایل پیکربندی زبیکس برای ارتباط با بانک اطلاعاتی

در این مرحله شما باید تنظیمات بانک اطلاعاتی زبیکس هم برای Agent  هم برای سرور را در فایل های پیکربندی انجام دهید ، برای اینکار ابتدا فایل zabbix_agentd.conf را باز می کنیم که با دستور زیر انجام می شود :

nano /usr/local/etc/zabbix_agentd.conf

آموزش نصب زبیکس

در این فایل به دنبال مقدار Hostname بگردید و به شکل Hostname=centos-linux-01 آن را تغییر دهید.

آموزش نصب زبیکس

سپس فایل را ذخیره کرده و اینبار فایل zabbix_server.conf را با دستور زیر باز کنید :

nano /usr/local/etc/zabbix_server.conf

آموزش نصب زبیکس ( Zabbix ) از سورس

در این فایل به دنبال مقادیر زیر بگردید و آنها را طبق اطلاعات زیر تغییر بدهید :

DBname=zabbix
DBpassword=password
DBhost=127.0.0.1


سپس تغییرات را ذخیره کرده و از فایل خارج شوید ، سپس با استفاده از دستور زیر سرویس زبیکس و سرویس Agent زبیکس را را Start کنید تا تغییرات اعمال شود :

zabbix_server
zabbix_agentd

آموزش نصب زبیکس

انتقال فایل های رابط گرافیکی به پوشه وب سرور آپاچی

دیگر کاری با سرویس زبیکس نداریم ، نوبت به تنظیمات وب سرور و مشاهده رابط گرافیکی زبیکس است. ابتدا شما باید یک دایرکتوری در آپاچی ایجاد کنید که با دستور زیر اینکار را انجام می دهید :

mkdir /var/www/html/zabbix

آموزش نصب زبیکس

سپس وارد دایرکتوری سورس های زبیکس که دانلود کردیم می شویم و وارد دایرکتوری ui می شویم و محتویات آن را به داخل دایرکتوری که در آپاچی ساختیم منتقل می کنیم ، اینکار با دو دستور زیر انجام می شود :

cd zabbix-6.0.23/ui/
cp -a . /var/www/html/zabbix

آموزش نصب زبیکس


آموزش نصب زبیکس

برای اینکه همه چیز به خوبی کار کند ، باید به گروه و کاربر زبیکسی که ساختیم ، دسترسی لازم به پوشه ای که در وب سرور محتویات زبیکس در آن قرار گرفته است را باید بدهیم ، اینکار با دستور زیر انجام می شود :

chown -R apache:apache /var/www/html/zabbix

آموزش نصب زبیکس

کار ما دیگر با زبیکس تقریبا تمام شده است ، تنها کاری که باقی مانده است ، تغییر دادن مقادیر پیشفرض فایل php.ini است که این فایل را با استفاده از دستور زیر باید ویرایش کنیم :

edit php.ini in /etc/php.ini

آموزش نصب زبیکس

درون فایل php.ini مقادیر زیر را پیدا کنید و آنها را دقیقا به عددی که در پایین می بینید تغییر دهید :

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300


فایل را ذخیره کنید و خارج شوید ، یکبار بصورت کامل سرور CentOS را ری استارت کنید . و بعد از بوت شدن سیستم عامل ، شما می توانید از طریق آدرس IP سرور ب استفاده از آدرس زیر در مرورگر به زبیکس متصل شوید و رابط گرافیکی را مشاهده کنید :

آموزش نصب زبیکس

همه چیز درست است و شما زبیکس را براحتی با این روش از سورس نصب کردید. امیدوارم مورد توجه شما قرار گرفته باشد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات