آموزش نصب 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 به عنوان رمز عبور پایگاه داده استفاده کردهام.
مرحله 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