پراکسی زبیکس نسخه ای کاربردی است که توسط شرکت زبیکس ارائه گردیده است. این نسخه را در zone ها یا منطقه های جغرافیایی دیگر پیاده سازی می کنند تا نیاز نباشد:

  • به تمام تجهیزات آن منطقه دسترسی داشته باشیم
  • در صورت قطعی ارتباط منطقه جغرافیایی داده های وضعیت zone گم نشود.
  • هزینه گواهینامه (ssl) و پهنای باند را کاهش میدهد.

چرا که:

  • فقط لازم است تا ارتباط زبیکس پراسی را با زبیکس سرور در دیواره آتش برقرار کنیم
  • زبیکس پراکسی هر یک ساعت (بصورت پیشفرض) داده ها را فشرده کرده و ارسال می کند. از این رو داده ها گم نمیشود
  • درصورتی که نیاز باشد تا ssl برای ارتباط بین منطقه جغرافیایی و زبیکس سرور خریداری شود یا نصب شود با نصب زبیکس پراکسی تنها به یک ssl یا گواهی نامه نیاز است.

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

پیشنیاز

ابتدا نیاز است تا یک سرور با سیستم عامل centos 7 تهیه نمایید.

میتوانید مانند ما ابزار  vim را با دستور زیر نصب کنید.

yum install vim
همچنین لازم است تا مخزن epel را هم اضافه کنید.
yum -y install epel-release

نصب

با دستور زیر مخزن زبیکس را به مخازن centos اضافه کنید:
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
با دستور زیر سیستم عامل لا بروز رسانی نمایید:
yum update -y
به خاطر داشته باشید که پس از بروز رسانی لازم است تا سیستم عامل را راه اندازی مجدد کنید تا سیستم عامل با هسته بروز رسانی شده اجرا گردد.

نصب Zabbix-proxy

با دستور زیر زبیکس پراکسی را نصب کنید.
yum install zabbix-proxy-mysql

نصب پایگاه داده mariadb

همچنین شما نیاز به یک پایگاه داده دارید دستور زیر برای شما پایگاه داده mariadb را نصب می کند.
sudo yum -y install mariadb-server
با دستور زیر پایگاه داده را راه اندازی نمایید
systemctl start mariadb
دستور زیر کمک می کند تا پس از راه اندازی مجدد سیستم عامل سرویس پایگاه داده نیز اجرا شود.
systemctl enable mariadb
دستور زیر تنظیمات اولیه پایگاه داده را انجام میدهد.
mysql_secure_installation
با دستور بالا سوالات زیر از ما پرسیده می گردد.
تغییر پسورد کاربر ریشه یا root
Change the root password? [Y/n] y
حذف کاربر anonymous که یک کاربر مهمان می باشد و  به جهت امنیت بیشتر نیازی به کاربر مهمان نداریم.
Remove anonymous users? [Y/n] y
عدم اجازه دسترسی به پایگاه داده از راه دور.
Disallow root login remotely? [Y/n] y
پایگاه داده test یک پایگاه داده اولیه و بدون کاربرد است (شاید کاربرد آموزشی داشته باشد)، از این رو میتوان آن را نیز حذف کرد.
Remove test database and access to it? [Y/n] y
دستور زیر جدول سطوه دسترسی را نیز بروز رسانی می کند.
Reload privilege tables now? [Y/n] y

ادامه نصب: ساخت پایگاه داده برای پراکسی زبیکس

با دستور زیر وارد محیط mysql می شویم.

mysql -uroot -p
با دستور زیر در محید mysql یک پایگاه داده جدید ایجاد می کنیم.
CREATE DATABASE zabbix_proxy CHARACTER SET utf8 collate utf8_bin;
نام این پایگاه داده zabbix_proxy است و از مجموعه کاراکتر های utf8_bin  نیز پشتیبانی میکند.
با دستور کاربری به نام zabbix_proxy ایجاد می کنیم که دسترسی کامل به پایگاه داده ما تنها از طریق localhost را دارد. به خاطر داشته باشید که به جای strong_password از یک پسور قوی استفاده کنید تا امکان نفوذ به سیستم شما کمتر گردد.
GRANT ALL ON zabbix_proxy.* TO ‘zabbix_proxy’@’localhost’ IDENTIFIED BY ‘strong_password’;
سپس جدول سطوه دسترسی را بروز رسانی کنید.
flush privileges;
هم اکنون میتوانید از محیط mysql خارج شوید.
EXIT;
حال که در محیط پوسته لینوکس هستنیم، می توانیم با دستور زیر فایل schema.sql.gz را که هنگام نصب zabbix_proxy در مسیر /usr/share/doc/zabbix-proxy-mysql-4.4.4/ قرار گرفته است را از حالت فشرده خارج (zcat) و با دستور mysql با پایگاه داده ایجاد شده (zabbix_proxy) وارد می کنیم.
zcat /usr/share/doc/zabbix-proxy-mysql-4.4.4/schema.sql.gz | mysql -uzabbix_proxy -p zabbix_proxy

بررسی دیوار آتش جهت باز کردن مسیر

port (درگاه) 10053 را ما درهنگام نصب برای براکسی قرار خواهیم داد حال آنکه این پورت بصورت پیشفرض همان 10051 است(یعنی هم درگاه سرور زبیکس)

sudo firewall-cmd –zone=public –add-port=10053/tcp –permanent
sudo firewall-cmd –reload
اگر تنظیمات بالا را انجام نمیدهید می توانید با دستورات زیر پورت پراکسی را ببندید.
systemctl stop firewalld
systemctl disable firewalld
systemctl disable firewalld
از طرف دیگر سرور زبیکس هم سرور پراکسی را با پورت 10051 خواهد دید آن سرور هم لازم است تا دسترسی این درگاه را آزاد گذاشته باشد.

فکری بحال selinux کنید

سرویس امنیتی دیگری که (بخصوص) بر روی سیستم عامل های redhat وجود دارد سرویس selinux است که لازم است تا تنظیم شود. ما در اینجا این سرویس را غیرفعال می کنیم.

دستور زیر وضعیت selinux را نشان میدهد:

sestatus
وارد فایل زیر می شویم.
vim /etc/sysconfig/selinux
تنظیمات selinux را به disabled تغییر می دهیم و درنهایت فایل مورد نظر را می بندیم.

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

وارد فایل زیر می شویم.

vim /etc/zabbix/zabbix_proxy.conf
پارامتر Server را برابر آدرس IP سرور زبیکس قرار می دهیم.
پارامتر Hostname را برای سرور زبیکس قرار دهید.این پارامتر هم نام hostname واقعی سیستم عامل می باشد. پس لازم است تا آن را یکتا درنظر بگیریم.
پارامتر های زیر بترتیب نام پایگاه داده، نام کاربر پایگاده داده و رمز عبور کاربر مورد نظر را دریافت میکند.
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=strong_password
پارامتر زیر درگاه سرور زبیکس را مشخص می کند.
ServerPort=10051
همچنین پارامترزیر درگاه مورد استفاده توسط پراکسی زبیکس را مشخص می کند.
ListenPort=10053
پارامتر زیر هم که بصورت اختیاری است زمانی را (به ثانیه) مشخص می کند که پس از آن پراکسی داده ها را ارسال می کند. پراکسی زبیکس به محض اجرا شدن سرویس شروع به جمع آوری داده می کند و به این که به مقدار پارارمتر ConfigFrequency رسید (یک ساعت – پیشفرض) داده ها را به سرور زبیکس ارسال کرده و در صورت دریافت کامل توسط سرور زبیکس داده ها را از پایگاه داده خود حذف می کند.
ConfigFrequency=3600

تعریف پراکسی زبیکس در سرور زبیکس

به مسیر Administration | Proxies رفته و دکمه Create Proxy را انتخاب کنید.

  • آدرس IP پراکسی را نیز وارد نمایید و در نهایت دکمه Add را فشار دهید.
در مسیر Administration | Proxies منتظر بمانید تا Compression تبدیل به ON شده و مقدار Last seen (age) برابر یک عدد به ثانیه شود. این نشانه ارتباط شما با سیستم است.

تکمیل سناریو با نصب یک agent زبیکس بر روی یک ماشین در منطقه جغرانیایی پراکسی

با دستور زیر agent زبیکس را نصب کنید.

systemctl install zabbix-agent

وارد فایل تنظیمات شده و پارامتر های مورد نظر را مقدار دهی نمایید.

vim /etc/zabbix/zabbix_agentd.conf
پارامتر ها:
Server: آدرس سرور زبیکس و آدرس سرور پراکسی را جلوی این پارامتر وارد کنید. این آدرس ها را با کاما جدا کنید.
Server=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx
ServerActive: آدرس سرور زبیکس و آدرس سرور پراکسی را جلوی این پارامتر وارد کنید. این آدرس ها را با کاما جدا کنید.
ServerActive=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx
Hostname: یک نام یکتا که هم نام hostname سیستم عامل باشد. این نام را باید زمانی که میخواهیم هاست زبیکس را بسازیم به عنوان نام وارد کنیم درغیر این صورت داده ها به هاست زبیکس ارسال نخواهند شد.
Hostname=xxxxxx
سرویس پراکسی را restart کنید.
systemctl restart zabbix-proxy
با دستور زیر وضعیت سرویس را مشاهده نماید. تا مطمئن شوید که سرویس درحال اجرا است.
systemctl status zabbix-proxy
همچنین می توانید از دستورات زیر برای اجر و فعال کردن سرویس های لینوکسی استفاده کنید.
systemctl restart zabbix-agent
systemctl status zabbix-agent
systemctl enable zabbix-agent
systemctl enable zabbix-proxy
در صورتی که تغییری در هاست خود داده اید ممکن است تغییر یک ساعتی طول بکشد تا اعمال گردد. از این رو میتوانید از دستور زیر استفاده کنید تا حافظه cache زبیکس پراکسی را پاک کرده و تغییرات را اعمال کند.
sudo zabbix_proxy -R config_cache_reload
تبریک میگم، شما اولین پراکسی زبیکس خود را نصب کردید.