نصب و راهاندازی Zabbix بر روی Debian 9 Linux
چگونه Zabbix را بر روی Debian 9 Linux نصب و راهاندازی کنیم؟
زبیکس یکی از محبوب ترین نرمافزارهای مانیتورینگ منبع باز است. زبیکس پارامترهای دستگاههای شبکه، سیستمها و برنامههای شما را جمعآوری کرده و از فعال بودن و عملکرد آنها اطمینان حاصل میکند.
در صورت بروز هرگونه مشکل، زبیکس اعلانهای هشدار را از روشهای مختلف ارسال میکند. زبیکس را میتوان برای مانیتورینگ با agent و بدون agent مستقر کرد. agent زبیکس میتواند بر روی سیستم عاملهای مختلف اجرا شود، از جمله Linux, UNIX, macOS و Windows.
در این راهنما نحوه نصب و راهاندازی آخرین نسخه Zabbix 4.0 بر روی سرور Debian 9 Linux با استفاده از MySQL به عنوان پشتیبانی پایگاهداده ارائه شدهاست. همچنین نحوه نصب agent زبیکس را بر روی host از راهدور نشان میدهیم و host را به سرور زبیکس اضافه میکنیم.
پیش نیازها
قبل از ادامهی کار مطمئن شوید به عنوان کاربر با دسترسیهای sudo وارد سیستم شدهاید.
ایجاد پایگاهداده MySQL
زبیکس از MySQL/MariaDB وPostgreSQL به عنوان پایگاهداده پشتیبانی میکند. در این راهنما ما از MariaDB به عنوان پشتیبانی پایگاهداده استفاده میکنیم.
اگر از قبل MariaDB را روی سرور Debian خود نصب شده ندارید با استفاده از دستورالعملهای موجود، آن را نصب کنید.
با تایپ دستور زیر وارد کنسول MySQL شوید:
$ sudo 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;
نصب زبیکس بر روی Debian
در زمان نوشته شدن این مقاله جدیدترین نسخهی موجود زبیکس نسخهی 4.0 است. پکیجهای زبیکس موجود در منابع Debian معمولا نسخههای قدیمی هستند، بنابراین ما از منابع رسمی زبیکس استفاده میکنیم.
1-نصب زبیکس
جدیدترین نسخه منبع پکیج .deb زبیکس را با دستور wget زیر دانلود کنید:
$ wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
هنگامی که فایل دانلود شد آن را نصب کنید:
$ sudo apt install ./zabbix-release_4.0-2+stretch_all.deb
پکیجها را آپدیت کنید و سرور زبیکس،web fronted همراه با پشتیبانی پایگاهداده MySQL و agent زبیکس را نصب کنید:
$ sudo apt update
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
فرمان بالا Apache، PHP و تمام ماژول های مورد نیاز PHP را نیز نصب میکند.
2-پیکربندی PHP برای frontend Zabbix
در طول نصب یک فایل پیکربندی Apache درست میشود که شامل تمام تنظیمات مورد نیاز Apache و PHP است.
فایل پیکربندی را باز کنید خط موقعیت زمانی را uncomment کرده و تبدیل به موقعیت زمانی خودتان کنید. (برای اطلاعات بیشتر در مورد موقعیت زمانی در 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 America/Denver
</IfModule>
...
پس از انجام کار، فایل را ذخیره کنید و سرویس Apache را restart کنید تا تغییرات اثر کنند.
$ sudo systemctl restart apache2
3-پیکربندی پایگاهداده MySQL برای سرور زبیکس
فایل dump که شامل ساختار و دادههای اولیه برای سرور زبیکس با MySQL است را وارد کنید:
$ gunzip < /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 (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-01-28 15:37:21 CST; 35s ago
Main PID: 27632 (zabbix_server)
CGroup: /system.slice/zabbix-server.service
...
نصب و پیکربندی frontend زبیکس
رابط شبکه زبیکس با PHP نوشته شده و به ما اجازه میدهد سرور را پیکربندی کرده، دادهی جمع آوری شده را مشاهده کنیم و host هایی که قصد مانیتورینگ آنها را داریم اضافه کنیم.
برای شروع نصب مرورگر مورد استفادهی خود را باز کنید و نام domain سرور یا آدرس public IP آن را با /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 زبیکس
این راهنما فرض میکند ماشینهای host نیز از Debian 9استفاده میکنند.
همانند نصب سرور زبیکس، دستورهای زیر را برای فعال کردن Zabbix repository اجرا کنید :
$ wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
$ sudo apt install ./zabbix-release_4.0-2+stretch_all.deb
لیست پکیجها را آپدیت کنید و پکیج agent زبیکس را نصب کنید:
$ sudo apt update
$ sudo apt 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: 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 زبیکس را شروع کنید و تنظیم کنید که در زمان boot آغاز شود:
$ sudo systemctl start zabbix-agent
$ sudo systemctl enable zabbix-agent
سپس باید قانون فایروالی تعیین کنید که ترافیک را از سرور زبیکس شما بر روی پورت 10050 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 انتخاب خوبی است.
پس از انجام این کار، روی نوار 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 دخیره شده را وارد کنید.
در نهایت برای افزودن host روی گزینهی آبی رنگ Add کلیک کنید.
نتیجه گیری
شما با موافقیت نصب و راهاندازی Zabbix بر روی Debian 9 Linux را انجام داده و یادگرفتهاید که چگونه host های جدید که قصد مانیتورینگ آنها را دارید اضافه کنید.
حال باید https://www.zabbix.com/documentation/current/ را چک کنید و دربارهی پیکربندی و استفاده از زبیکس بیشتر بیاموزید.