نصب و راه‌اندازی Zabbix بر روی CentOS 7

نصب و راه‌اندازی  Zabbix بر روی CentOS 7

مقدمه

زبیکس یکی از محبوب‌ترین نرم‌افزارهای مانیتورینگ منبع باز است. زبیکس پارامترهای دستگاه‌های شبکه، سیستم‌ها و برنامه‌های شما را جمع‌آوری کرده و از فعال بودن و عملکرد آنها اطمینان حاصل می‌کند. در صورت بروز هرگونه مشکل، زبیکس اعلان‌های هشدار را از روش‌های مختلف ارسال می‌کند. زبیکس را می‌توان برای مانیتورینگ با agent و بدون agent مستقر کرد. agent زبیکس می‌تواند بر روی سیستم عامل‌های مختلف اجرا شود، از جمله Linux, UNIX, macOS و Windows.
در این راهنما نحوه نصب و راه‌اندازی آخرین نسخه Zabbix 4.0 در سرور CentOS 7 با استفاده از MariaDB به عنوان پشتیبانی پایگاه‌داده ارائه شده است. همچنین نحوه نصب agent زبیکس را بر روی host از راه‌دور نشان می‌دهیم و host را به سرور زبیکس اضافه می‌کنیم.

پیش نیازها

قبل از ادامه‌ی کار مطمئن شوید به عنوان کاربر با دسترسی‌های sudo وارد سیستم شده‌اید.

ساخت پایگاه‌داده MySQL

زبیکس از MySQL/MariaDB وPostgreSQL به عنوان پایگاه‌داده پشتیبانی می‌کند. در این راهنما ما از MariaDB به عنوان پشتیبانی پایگاه‌داده استفاده می‌کنیم.
اگر MariaDB را روی سرور CentOS خود نصب ندارید می‌توانید آن را با استفاده از آموزش های موجود نصب کنید.
با دستور زیر وارد Shell MySQL شوید:

$ sudo mysql

از داخل Shell MySQL، دستور SQL زیر را اجرا کنید تا پایگاه‌داده جدیدی را به وجود آورید:

 Mysql> CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;

سپس یک حساب کاربرMySQL  بسازید و به آن اجازه دسترسی به پایگاه‌داده را بدهید:

Mysql> GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'change-with-strong-password';

به جای change-with-strong-password یک رمز عبور قوی قرار دهید.
پس از انجام از کنسول MySQL خارج شوید:

Mysql> EXIT;

نصب زبیکس روی CentOS

در زمان نوشته شدن این مقاله آخرین ورژن پایدار زبیکس، ورژن 4.0 است. پکیج‌های زبیکس موجود در منابع CentOS معمولا نسخه‌های قدیمی هستند، بنابراین ما از منابع رسمی زبیکس استفاده می‌کنیم.

1-نصب زبیکس

جدیدترین نسخه منبع زبیکس پکیجrpm را با دستور wget زیر دانلود کنید:

$ wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

هنگامی که فایل دانلود شد برای قرار دادن منبع زبیکس روی سیستم CentOS 7 خود دستور زیر را تایپ کنید:

$ sudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm

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

$ sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

دستور بالا Apache، PHP و تمام ماژول‌های مورد نیاز PHP را نیز نصب می‌کند.

2-پیکربندی PHP برای frontend Zabbix

در طول نصب یک فایل پیکربندی Apache درست می‌شود که شامل تمام تنظیمات مورد نیاز Apache و PHP است. فقط لازم است شما تغییرات کوچکی انجام دهید و منطقه‌ی زمانی مناسب را تنظیم کنید. (برای اطلاعات بیشتر در مورد منطقه زمانی در PHP بر روی کلمه لینک کلیک کنید.)


فایل راه‌اندازی را باز کنید خط موقعیت زمانی را تغییر داده و تبدیل به موقعیت زمانی خودتان بکنید.

/etc/httpd/conf.d/zabbix.conf
...
    <IfModule mod_php5.c>
        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
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
        php_value date.timezone Europe/Riga
    </IfModule>
...

پس از انجام کار، فایل راه‌اندازی را ذخیره کنید و سرویس Apache را restart کنید تا تغییرات اثر کنند:

$ sudo systemctl restart httpd

3-پیکربندی پایگاه‌داده MySQL برای سرور زبیکس

پکیج نصب زبیکس یک فایل dump که شامل یک ساختار اولیه و داده برای سرور زبیکس با MySQL است.
Dump فایل MySQLرا به صورت زیر وارد کنید:

$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

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

$ sudo nano /etc/zabbix/zabbix_server.conf

بخش زیر را جستجو کنید، بخش DBPassword را uncomment کنید و رمز عبور پایگاه داده را اضافه کنید.

/etc/zabbix/zabbix_server.conf
...
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=change-with-strong-password
...

فایل را ذخیره کرده و ببنید.
سرور زبیکس و سرویس‌های agents را restart کنید و به آنها دستور دهید که در هنگام system boot شدن شروع به کار کردن کنند:

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

برای چک کردن فعال بودن سرور زبیکس دستور زیر را تایپ کنید:

$ sudo systemctl status zabbix-server

خروجی باید وضعیت active (running) را نشان دهد:

output
● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2018-12-30 21:18:01 UTC; 51s ago
 Main PID: 5558 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service
   ...

نصب و پیکربندی frontend زبیکس

رابط شبکه زبیکس با PHP نوشته شده و به ما اجازه می‌دهد سرور را پیکربندی کرده، داده‌ی جمع‌آوری شده را مشاهده کنیم و host هایی که قصد مانیتورینگ آن‌ها را داریم اضافه کنیم.
قبل از شروع استفاده از رابط شبکه باید آن را نصب کنیم.
مرورگر مورد استفاده‌ی خود را باز کنید و نام domain سرور یا Public IP Address آن را با /zabbix
در ادامه‌ی آن تایپ کنید:

http(s)://your_domain_or_ip_address/zabbix

در صفحه‌ی اول با یک پیغام خوش آمدگویی مواجه می‌شوید. روی Next step کلیک کرده و ادامه دهید.

صفحه‌ی اول با یک پیغام خوش آمدگویی از طرف زبیکس

سپس صفحه‌ی اطلاعات زیر را می بینید که تمام پیش نیازهای PHP که برای اجرای frontend زبیکس لازم است را لیست می‌کند.
تمام مقادیر این جدول باید OK شوند، پایین بروید تا تنظیم بودن همه چیز را تایید کنید. پس از تایید برای ادامه روی Next step کلیک کنید.

لیست پیش نیاز‌های php که برای اجرای frontend  زبیکس لازم است

در صفحه‌ی بعد setup wizard از شما خواهان وارد کردن اطلاعات اتصال پایگاه‌داده خود می‌باشد. اطلاعات پایگاه‌داده و کاربر MySQL را که قبلا ایجاد کردید را وارد نمایید.

صفحه وارد کردن اطلاعات اتصال پایگاه‌داده

انتخاب نام برای سرور انتخابی است. اگر بیش از یک سرور مانیتورینگ زبیکس دارید نام سرور زبیکس مورد نظر را انتخاب کنید. در صورت تعیین در نوار منو و عناوین صفحه ها نمایش داده می‌شود.
برای ادامه روی Next step بزنید.

وارد کردن نام سرور زبیکس مورد نظر

در صفحه‌ی بعد خلاصه اطلاعات پیش-نصب به شما نمایش داه می‌شود.

نمایش خلاصه اطلاعات پیش نصب

روی Next step را کلیک کرده پس از تکمیل نصب به صفحه‌ای که به شما اطلاع می‌دهد رابط شبکه‌ی زبیکس نصب شده برده می شوید. برای اینکه به صفحه‌ی login زبیکس خود دسترسی پیدا کنید روی گزینه‌ی Finish کلیک کنید.

صفحه تکمیل نصب

کاربر به طور پیش فرض “Admin” و رمز عبور “zabbix”است.username و password را وارد کنید و Sign in را بزنید.

صفحه Sign in

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

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

پروسه‌ی افزودن host جدید برای نظارت به سرور زبیکس شامل دو مرحله است.
نخست شما باید agent زبیکس را روی host از راه‌دور نصب کنید و سپس host را از طریق رابط شبکه وارد سرور زبیکس کنید.

نصب agent زبیکس

این راهنما فرض می‌کند ماشین‌های host نیز از CentOS 7استفاده می‌کنند.
همانند نصب سرور زبیکس، دستورهای زیر را برای فعال کردن Zabbix repository اجرا کنید :

$ wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
$ sudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm

پکیج agent زبیکس را نصب کنید:

$ sudo yum install zabbix-agent

زبیکس دو روش را برای رمزگزاری ارتباط server-client پشتیبانی می‌کند. Preshared Key (PSK)و certificate-based encryption.

در این راهنما ما از Preshared Key (PSK) برای امنیت ارتباط بین سرور و agentاستفاده می‌کنیم.
از دستور زیر برای ایجاد یک Preshared Key استفاده کنید و آن را در فایلی ذخیره کنید:

$ openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk

کلید PSK چیزی همانند زیر خواهد بود:

output
fc3077ed3db8589ec920ac98a7ddea96aca205eb63bbd29c66ae91743a7ecbb6

فایل راه‌اندازی agent زبیکس را باز کنید:

$ sudo nano /etc/zabbix/zabbix_agentd.conf

آدرس آی پی سرور را بیابید و از مقدار پیش فرض به آی پی سرور زبیکس خود تغییر دهید:

/etc/zabbix/zabbix_agentd.conf
...
### Option: Server
#       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
#       Incoming connections will be accepted only from the hosts listed here.
#       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
#       and '::/0' will allow any IPv4 or IPv6 address.
#       '0.0.0.0/0' can be used to allow any IPv4 address.
#       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes, if StartAgents is not explicitly set to 0
# Default:
# Server=

Server=127.0.0.1
...

سپس گزینه‌ی TSLConnect را پیدا کنید ،uncomment کنید و روی psk تنظیم کنید:

/etc/zabbix/zabbix_agentd.conf
...
### Option: TLSAccept
#       What incoming connections to accept.
#       Multiple values can be specified, separated by comma:
#               unencrypted - accept connections without encryption
#               psk         - accept connections secured with TLS and a pre-shared key
#               cert        - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSAccept=psk
...

حال گزینه‌ی TLSPSKIdentity را پیدا کنید،uncomment کنید و رویPSK 001 تنظیم کنید. مقدار آن باید string منحصر به فردی باشد:

/etc/zabbix/zabbix_agentd.conf
...
### Option: TLSPSKIdentity
#       Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKIdentity=PSK 001
...

در نهایت، گزینه‌ی TLSPSKFile را بیابید، uncomment کنید و آن را بر فایل pre-shared key که در مراحل قبل ایجاد کردید، تنظیم کنید:

/etc/zabbix/zabbix_agentd.conf
...
### Option: TLSPSKFile
#       Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk 
...

سپس فایل را ذخیره کرده و ببندید.
سرویس agent زبیکس را شروع کنید و تنظیم کنید که در زمانboot آغاز شود:

$ sudo systemctl start zabbix-agent
$ sudo systemctl enable zabbix-agent

سپس باید قانون فایروالی تعیین کنید که ترافیک را از سرور زبیکس شما بر روی پورت10050 TCP فعال کند.
با فرض اینکه از FirewallDبرای مدیریت فایروال خود استفاده می‌کنید و می‌خواهید اجازه‌ی دسترسی از آدرس IP 192.168.121.70 را بدهید، باید دستور زیر را اجرا کنید:

$ sudo firewall-cmd --new-zone=zabbix –permanent
$ sudo firewall-cmd --zone=special --add-source=192.168.121.70/32
$ sudo firewall-cmd --zone=special --add-port=10050/tcp

ثبت host جدید

حال که agent بر روی host از راه‌دور که قصد مانیتورینگ آن را دارید نصب و پیکربندی شده، مرحله‌ی بعدی ثبت host در سرور زبیکس است.
در رابط شبکه‌ی سرور زبیکس به عنوان کاربر admin وارد سیستم شوید:

http(s)://your_domain_or_ip_address/zabbix

پس از ورود، در نوار منوی بالایی روی Configuration و سپس روی Hosts کلیک کنید.
سپس روی گزینه‌ی Create host آبی رنگ در گوشه بالا سمت راست کلیک کنید تا صفحه‌ی راه‌اندازیhost باز شود:

ثبت host در سرور زبیکس

نام host و آدرس IP ماشینHOST از راه‌دوری که قرار است مانیتورینگ کنید را وارد کنید. host را در یک یا چند گروه با انتخاب گروه‌ها از لیست اضافه کنید، و یا یک گروه جدید با وارد کردن یک نام ایجاد کنید. گروه Linux Servers انتخاب خوبی است.

وارد کردن نام host  و آدرس IP

پس از انجام این کار، روی نوار Templatesکلیک کنید. Template OS Linux را انتخاب کنید و روی Add کلیک کنید تا template را به host اضافه کنید.
سپس روی نوار Encryption کلیک کنید. برای Connections to host و Connections from host ، PSK را انتخاب کنید.

مقدارPSK identity را به PSK 001 تنظیم کنید، مقدار گزینه‌ی TLSPSKIdentity agent زبیکس که در مرحله‌ی قبل راه‌اندازی کردید.
در PSK value ثبت شده کلید ساخته شده برای agent زبیکس که درفایل /etc/zabbix/zabbix_agentd.psk دخیره شده را وارد کنید.

اعمال تنظیمات  روی نوار   Templates

در نهایت برای افزودن host روی گزینه‌ی آبی رنگ Add کلیک کنید.

نتیجه گیری

شما با موفقیت آخرین نسخه‌ی زبیکس را روی سیستم CentOS خود نصب کرده‌اید و یادگرفته‌اید چگونه host های جدید که قصد مانیتورینگ آنها را دارید اضافه کنید.
حال باید Zabbix Documentationرا چک کنید و درباره‌ی پیکربندی و استفاده از زبیکس بیشتر بیاموزید.

منبع: سایت زبیکس