نصب و راه اندازی Zabbix بر روی Ubuntu 18.04

مقدمه

زبیکس یکی از محبوب ترین نرم افزارهای منبع-باز مانیتورینگ است. زبیکس پارامترهای دستگاه‌های شبکه، سیستم ها و برنامه های شما را جمع آوری‌کرده و از فعال بودن و عملکرد آنها اطمینان حاصل می‌کند. در صورت بروز هرگونه مشکل، زبیکس اعلان‌های هشدار را از روش‌های مختلف ارسال می‌کند. زبیکس را می‌توان برای مانیتورینگ با agent و بدون agent  مستقر کرد. agent زبیکس می‌تواند بر روی سیستم عامل‌های مختلف اجرا شود، از جمله Linux, UNIX, macOS و Windows.

در این راهنما نحوه نصب و پیکربندی آخرین نسخه Zabbix 4.0 در سرور اوبونتو ۱۸٫۰۴ با استفاده از MySQL به عنوان پشتیبانی پایگاه‌داده ارائه شده‌‌است. همچنین نحوه نصب Zabbix agent را بر روی host از راه‌دور نشان می‌دهیم و host را به سرور زبیکس اضافه می‌کنیم.

پیش نیازها

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

ایجاد پایگاه‌داده MySQL

زبیکس MySQL/MariaDB و هم  PostgreSQL را ساپورت می‌کند. در این راهنما، از MySQL به عنوان پشتیبانی  پایگاه‌داده استفاده می‌کنیم.

اگر از قبلMySQL  را روی سرور Ubuntu نصب‌شده ندارید با استفاده از دستورالعمل‌های موجود آن را نصب کنید.

با تایپ دستور زیر وارد MySQL shell شوید:

$ sudo mysql

از داخل MySQL shell  با اجرای دستور زیر یک پایگاه داده جدید ایجاد کنید.

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;

نصب زبیکس بر روی اوبونتو

در زمان نوشته شدن این مقاله جدیدترین نسخه‌ی موجود زبیکس نسخه ی ۴٫۰ است. پکیج‌های زبیکس موجود درمنابع اوبونتو معمولا نسخه‌های قدیمی هستند، بنابراین ما از منابع رسمی زبیکس استفاده می‌کنیم.

۱-نصب زبیکس

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

$ wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb

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

$  sudo apt install ./zabbix-release_4.0-2+bionic_all.deb

فهرست پکیج را آپدیت و Zabbix server،Web frontened  با پشتیبانی پایگاه‌داده، Zabbix agent را نصب کنید:

$ sudo apt update
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

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

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

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

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

/etc/apache2/conf-enabled/zabbix.conf
...
    <IfModule mod_php7.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 Iran/Tehran
    </IfModule>
...

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

۳-پیکربندی پایگاه‌داده 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

خروجی مشابه زیر را خواهید دید:

zabbix-server.service - Zabbix Server
   Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-11-29 03:30:44 PST; 43s ago
 Main PID: 14293 (zabbix_server)
    Tasks: 34 (limit: 2319)
   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 کلیک کنید.

تصویری از نیازمندی های سیستم - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

تصویری از تنطیمات کانکشن - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

برای ادامه روی Next step بزنید .

سرور مورد نظر برای مانیتورینگ زبیکس انتخاب کنبد- سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

خلاصه اطلاعات پیش از نصب نمایش داده می‌شود - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

تصویری از صفحه تکمیل نصب زبیکس نمایان می‌شود - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

تصویری از صفحه ورود به سرور زبیکس- - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

هنگامی که وارد سیستم می‌شوید به داشبورد مدیریت می‌روید.

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

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

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

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

نصب agent  زبیکس

$ wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb
$ sudo apt install ./zabbix-release_4.0-2+bionic_all.deb

پکیج را update  کنید و agent  زبیکس را نصب کنید.

$ sudo apt update
$ sudo apt install zabbix-agent

همانند نصب سرور زبیکس، دستورهای زیر را برای فعال کردن Zabbix repository  اجرا کنید :

زبیکس دو روش را برای رمزگذاری ارتباط 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.
#       '۰٫۰٫۰٫۰/۰' 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: TLSConnect
#       How the agent should connect to server or proxy. Used for active checks.
#       Only one value can be specified:
#               unencrypted - connect without encryption
#               psk         - connect using TLS and a pre-shared key
#               cert        - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSConnect=psk
...

گزینه‌ی  TLSAccept  را پیدا کنید،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  زبیکس را start کنید و تنظیم کنید که در زمان boot  آغاز شود:

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

سپس باید قانون فایروالی تعیین کنید که ترافیک را از سرور زبیکس شما بر روی پورت۱۰۰۵۰  TCP   فعال کند.

با فرض اینکه ازUFW برای مدیریت فایروال خود استفاده می‌کنید و می‌خواهید اجازه‌ی دسترسی از آدرس IP  192.168.121.70  را بدهید باید دستور زیر را اجرا کنید:

$ sudo ufw allow proto tcp from 192.168.121.70 to any port 10050

ثبت host جدید

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

در رابط شبکه‌ی سرور زبیکس به عنوان کاربر admin وارد سیستم شوید:

http(s)://your_domain_or_ip_address/zabbix

پس از ورود، در نوار منوی بالایی روی Configuration و  سپس Hosts کلیک کنید.

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

تصویری از صفحه راه اندازی هاست در زبیکس - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

 نام host  و آدرس IP ماشین HOST وارد کنید - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

سپس روی نوار Encryption کلیک کنید. برای Connections to host  و Connections from host PSK را انتخاب کنید.

مقدارPSK identity را به PSK ۰۰۱ تنظیم کنید، مقدار گزینه‌ی  TLSPSKIdentity agent زبیکس که در مرحله‌ی قبل راه‌اندازی کردید..

در PSK value  ثبت شده کلید ساخته شده برای agent زبیکس که در فایل /etc/zabbix/zabbix_agentd.psk   دخیره شده را وارد کنید.

تصویری از کلید ساخته شده برای agent زبیکس - سدیدآفرین - نمایندگی زبیکس در خاورمیانه

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

نتیجه گیری

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

حال باید Zabbix Documentation را چک کنید و درباره‌ی پیکربندی و استفاده از زبیکس بیشتر بیاموزید.