آموزش نصب Zabbix Server در Ubuntu 22.04 / 20.04



Zabbix چیست

Zabbix Server یک ابزار مانیتورینگ رایگان و منبع باز است که برای نظارت لحظه ای سرورها ، ماشین های مجازی ، شبکه ها و سرویس های ابری طراحی شده است. توسط الکسی ولادیشف و با حمایت فعالانه Zabbix SIA توسعه داده شد. این مبتنی بر مدل client-server است و قادر به نظارت بر میلیون ها معیار از قبیل Load CPU ،مدیریت شبکه و مصرف فضای دیسک، ده ها هزار سرور است.

Zabbix Server بر روی هر توزیع لینوکس قابل نصب است، اما در این آموزش، نحوه نصب و بهینه سازی آخرین نسخه استاندارد Zabbix 6 LTS یا 6.2 را در 22.04 LTS (Jammy Jellyfish) و Ubuntu 20.04 (Focal) و (Bionic) Ubuntu 18.04 به شما نشان خواهم داد. Zabbix یک نرم‌افزار 100% رایگان منبع باز و نهایی در سطح سازمانی است که برای نظارت بر در دسترس بودن و عملکرد اجزای زیرساخت فناوری اطلاعات طراحی شده است.

 

آموزش نصب Zabbix Server

در سایت خود zabbix هم مراحل نصب برای هر سیستم عاملی قرار داده شده :  Download and install Zabbix

 

ویژگی های Zabbix

مانیتور بر داده های سیستم مانند CPU، حافظه ، فضای دیسک، شبکه و process (نیاز به Agent Zabbix) دارد.

مانیتور VMware vCenter ،Hypervisor VMware و ماشین های مجازی.

با استفاده از low-level discovery، به طور خودکار Hypervisor و ماشین های مجازی VMware را کشف کنید.

سرورهای پایگاه داده را میتوانید مانیتور کنید – MySQL ، PostgreSQL ، Oracle و Microsoft SQL Server. همچنین Zabbix امکان مانیتور بر سرور برنامه های جاوا را دارد.

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

 

سرور Zabbix حداقل برای حافظه 128MB رم و 256MB فضای دیسک نیاز دارد. اما مقدار حافظه مورد نیاز و فضای دیسک به تعداد میزبان بستگی دارد و پارامترها تحت مانیتور قرار می گیرند. رم 2 گیگابایتی و 2 گیگابایت فضای دیسک برای مانیتور بر 500 میزبان کافی است

 

صفحات دیگر سایت :

 

نصب zabbix در ubuntu

 

مرحله اول :

نصب Zabbix server و frontend و agent

بسته Zabbix 6 .deb را روی سیستم عامل اوبونتو خود نصب کنید (22.04، 20.04، 18.04 و 16.04 پشتیبانی می شوند). دستورات زیر را بسته به نسخه ای که میخواهید در ترمینال وارد کنید.

Zabbix 6.0 LTS version (supported until February, 2027)
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-3+ubuntu$(lsb_release -rs)_all.deb
sudo dpkg -i zabbix-release_6.0-3+ubuntu$(lsb_release -rs)_all.deb
sudo apt update
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

OR

Zabbix 6.2 standard version (supported until January, 2023)
wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-1+ubuntu$(lsb_release -rs)_all.deb
sudo dpkg -i zabbix-release_6.2-1+ubuntu$(lsb_release -rs)_all.deb
sudo apt update
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

 

مرحله دوم :

پیکربندی پایگاه داده برای زبیکس

 

در این مرحله برای نصب دیتابیس، از رمز عبور rootDBpass به عنوان رمز عبور کاربر رووت و zabbixDBpass به عنوان رمز عبور Zabbix برای DB استفاده می کنم. به دلایل امنیتی رمز عبور خود را تغییر دهید.

 

a. Install MariaDB 10.6

sudo apt install software-properties-common -y

curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
sudo bash mariadb_repo_setup --mariadb-server-version=10.6

sudo apt update
sudo apt -y install mariadb-common mariadb-server-10.6 mariadb-client-10.6

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

sudo systemctl start mariadb
sudo systemctl enable mariadb

 

b. Reset root password for database

MySQL/MariaDB را با تغییر رمز عبور پیش‌فرض برای root MySQL ایمن کنید:

sudo mysql_secure_installation

 

 Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] y
New password: <Enter root DB password>
Re-enter new password: <Repeat root DB password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

 

 

c. Create database

sudo mysql -uroot -p'rootDBpass' -e "create database zabbix character set utf8mb4 collate utf8mb4_bin;"
sudo mysql -uroot -p'rootDBpass' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixDBpass';"

 

d. Import initial schema and data

وارد کردن schema پایگاه داده برای سرور Zabbix (می تواند تا 5 دقیقه طول بکشد):

sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p'zabbixDBpass' zabbix

 

e. Enter database password in Zabbix configuration file

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

sudo nano /etc/zabbix/zabbix_server.conf

 

و پسورد پایگاه داده را  هر جایی از فایل میتوانید اضافه کنید:

DBPassword=zabbixDBpass

فایل را ذخیره کرده و از آن خارج شوید (ctrl+x و سپس y و وارد کنید).

 

 

مرحله 3

فایروال را برای zabbix پیکربندی کنید

اگر فایروال UFW روی اوبونتو نصب کرده اید، از این دستورات برای باز کردن پورت های TCP استفاده کنید: 10050 (عامل)، 10051 (سرور) و 80 (فرانت اند):

ufw allow 10050/tcp
ufw allow 10051/tcp
ufw allow 80/tcp
ufw reload

 

مرحله 4

پروسس های Zabbix server و agent را فعال کنید

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

 

مرحله 5

Zabbix frontend را پیکربندی کنید

a. Configure PHP for Zabbix frontend

فایل /etc/zabbix/apache.conf را ویرایش کنید.

sudo nano /etc/zabbix/apache.conf

 

2 خط را در apache.conf که با “# php_value date.timezone Europe/Riga” شروع می‌شود، با حذف نماد # لغو کنید و منطقه زمانی مناسب را برای کشور خود تنظیم کنید، برای مثال:

php_value date.timezone Asia/Tehran

فایل را ذخیره و خارج کنید (ctrl+x و سپس y و وارد کنید)

 

b. Restart Apache web server and make it start at system boot

sudo systemctl restart apache2
sudo systemctl enable apache2

 

c. Configure web frontend

با استفاده از URL “http://server_ip_or_dns_name/zabbix” برای راه اندازی ویزارد (wizard) Zabbix frontend، تازه نصب شده خود متصل شوید.

مثلا در سیستم من، آدرس URL “http://192.168.1.161/zabbix” خواهد بود، زیرا من Zabbix را روی سرور با آدرس IP 192.168.1.161 نصب کرده ام (شما می توانید آدرس IP سرور خود را با تایپ دستور در ترمینال “ip a” پیدا کنید)

اساساً، در اینحالت نصب wizard فقط باید یک رمز عبور برای کاربر Zabbix DB وارد کنید و فقط روی «مرحله بعدی» برای بقیه موارد کلیک کنید. در این راهنما، من از zabbixDBpass به عنوان رمز عبور پایگاه داده استفاده کرده‌ام.

 

آموزش نصب zabbix

 

مرحله 7

بهینه سازی Zabbix Server (اختیاری)

اگر تعداد کمی از دستگاه ها را مانیتور میکنید، این بهینه سازی را نیاز ندارید، اما اگر قصد دارید تعداد زیادی دستگاه را نظارت کنید، این مرحله را ادامه دهید. فایل “zabbix_server.conf” را با دستور: “sudo nano /etc/zabbix/zabbix_server.conf” باز کنید و این پیکربندی را در هر جایی از فایل اضافه کنید:

 

StartPollers=100
StartPollersUnreachable=50
StartPingers=50
StartTrappers=10
StartDiscoverers=15
StartPreprocessors=15
StartHTTPPollers=5
StartAlerters=5
StartTimers=2
StartEscalators=2
CacheSize=128M
HistoryCacheSize=64M
HistoryIndexCacheSize=32M
TrendCacheSize=32M
ValueCacheSize=256M

 

فایل را ذخیره کرده و از آن خارج شوید (ctrl+x و سپس y و وارد کنید).

این یک پیکربندی کامل نیست، به خاطر داشته باشید که می توانید آن را حتی بیشتر بهینه کنید. فرض کنید اگر از ICMP برای پینگ استفاده نمی‌کنید، پارامتر StartPingers را روی ۱ قرار دهید یا اگر از عوامل فعال استفاده نمی‌کنید، StartTrappers را روی ۱ و غیره تنظیم کنید.

اگر بخواهید Zabbix server را راه اندازی کنید، ممکن است خطای “[Z3001] connection to database ‘Zabbix’ failed: [1040] Too many connections” در گزارش «/var/log/zabbix/zabbix_server.log» دریافت کنید زیرا ما از پردازش های سرور Zabbix بیشتر از توان MySQL داریم استفاده میکنیم. ما باید حداکثر تعداد مجاز اتصالات کلاینت همزمان را افزایش دهیم و MySQL را بهینه کنیم – بنابراین به مرحله بعدی بروید.

 

مرحله 8: بهینه سازی پایگاه داده MySQL / MariaDB (اختیاری)

a. Create custom MySQL configuration file

فایل “10_my_tweaks.cnf” را با “sudo nano /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf” ایجاد کنید و این پیکربندی را جایگذاری کنید:

[mysqld]
max_connections = 404
innodb_buffer_pool_size = 800M

innodb-log-file-size = 128M
innodb-log-buffer-size = 128M
innodb-file-per-table = 1
innodb_buffer_pool_instances = 8
innodb_old_blocks_time = 1000
innodb_stats_on_metadata = off
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-flush-log-at-trx-commit = 2

tmp-table-size = 96M
max-heap-table-size = 96M
open_files_limit = 65535
max_connect_errors = 1000000
connect_timeout = 60
wait_timeout = 28800

فایل را ذخیره کرده و از آن خارج شوید (ctrl+x و سپس y و enter) و مجوز صحیح فایل را تنظیم کنید:

sudo chown mysql:mysql /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf
sudo chmod 644 /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf

 

دو چیز را به یاد داشته باشید

پارامتر پیکربندی max_connections باید بزرگتر از تعداد کل پروسس های پرا-کسی Zabbix به اضافه 150 باشد. می‌توانید از دستور زیر برای بررسی خودکار تعداد پردازش‌های Zabbix و اضافه کردن 150 به آن تعداد استفاده کنید:

root@ubuntu:~ $ egrep "^Start.+=[0-9]" /etc/zabbix/zabbix_server.conf | awk -F "=" '{s+=$2} END {print s+150}'
404

 

دومین پارامتر مهم، innodb_buffer_pool_size است که تعیین می‌کند MySQL چه مقدار حافظه برای ذخیره جداول InnoDB و index data دریافت می‌کند. اگر فقط پایگاه داده روی سرور نصب شده باشد، باید آن پارامتر را روی 70 درصد حافظه سیستم تنظیم کنید.

با این حال، در این مورد، ما سروری را با پردازش های Zabbix و Apache به اشتراک می گذاریم، بنابراین شما باید innodb_buffer_pool_size را روی 40٪ از کل حافظه سیستم تنظیم کنید. این می تواند 800 مگابایت باشد زیرا سرور اوبونتو من 2 گیگابایت رم دارد.

من هیچ مشکلی با حافظه نداشتم، اما اگر پرو-کسی Zabbix شما به دلیل کمبود حافظه خراب شد، “innodb_buffer_pool_size” را کاهش دهید و سرور MySQL را مجددا راه اندازی کنید.

توجه داشته باشید که اگر از این پیکربندی پیروی کنید، به دلیل پیکربندی جدید Zabbix، زنگ هشدار «Oo many processes on the Zabbix server» را در قسمت Zabbix frontend دریافت خواهید کرد. افزایش trigger threshold یا خاموش کردن آن هشدار بی خطر است

(select “Problems” tab → left click on the alarm → select “Configuration” → remove the check from “Enabled” → hit the “Update” button)

 

b. Restart Zabbix Server and MySQL service

توقف و شروع خدمات به همان ترتیب زیر:

sudo systemctl stop zabbix-server
sudo systemctl stop mysql
sudo systemctl start mysql
sudo systemctl start zabbix-server

 

مرحله 9

نحوه مدیریت سرویس Zabbix / MySQL / Apache

گاهی اوقات باید سرویس Zabbix، MySQL یا Apache را بررسی یا راه اندازی مجدد کنید – برای انجام این کار از دستورات زیر استفاده کنید.

Zabbix Server
sudo systemctl <status/restart/start/stop> zabbix-server

MySQL Server
sudo systemctl <status/restart/start/stop> mysql

Apache Server
sudo systemctl <status/restart/start/stop> apache2

Zabbix Agent
sudo systemctl <status/restart/start/stop> zabbix-agent

 

مشخصات ورود بعد از نصب zabbix
USERNAME:Admin
PASSWORD:zabbix

 

 

اطر