SSD Nodes Learn
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-07-24

Ubuntu 24.04 এ Zabbix 7.0 LTS ইন্সটল করার নিয়ম

Ubuntu 24.04 এ Zabbix 7.0 LTS সেটআপ করার সম্পূর্ণ গাইড। MySQL schema ইমপোর্ট থেকে nginx এবং agent2 কনফিগারেশন পর্যন্ত প্রতিটি ধাপ এখানে বিস্তারিত দেওয়া আছে।

আপনি যা তৈরি করছেন

একটি মাত্র Ubuntu 24.04 VPS যা সম্পূর্ণ Zabbix 7.0 LTS স্ট্যাক চালাবে: পোলিং এবং অ্যালার্ট দেওয়ার জন্য zabbix-server daemon, প্রতিটি মেট্রিক সংরক্ষণের জন্য MariaDB/MySQL database, nginx দ্বারা পরিচালিত PHP frontend, এবং সিস্টেম থেকে মেট্রিক সংগ্রহের জন্য zabbix-agent2। এটি চালু হয়ে গেলে আপনি এটিকে একটি দ্বিতীয় সার্ভারের সাথে যুক্ত করবেন, একটি template সেট করবেন, এবং ডিস্ক পূর্ণ হওয়া বা কোনো service বন্ধ হয়ে যাওয়ার সাথে সাথে ইমেল পাবেন।

Zabbix কোনো সাধারণ status-page টুলের চেয়ে অনেক বেশি শক্তিশালী: এটি template, trigger, escalation এবং history retention সমৃদ্ধ একটি real time-series system। বেশিরভাগ সমস্যা তিনটি ধাপ বাদ দেওয়ার কারণে ঘটে — database schema ইমপোর্ট করা, সার্ভার দ্বারা ব্যবহৃত database password সেট করা, এবং nginx config-এ দুটি লাইন uncomment করা। এই ধাপগুলো সঠিকভাবে সম্পন্ন করলে বাকি কাজগুলো খুব সহজ। আপনি যদি শুধুমাত্র up/down চেক এবং একটি shareable status page চান, তবে a lightweight Uptime Kuma status monitor একটি মাত্র container-এ তা করতে পারে; কিন্তু যখন আপনার অনেকগুলো host-এর জন্য per-metric thresholds এবং escalation প্রয়োজন হবে, তখন Zabbix সবচেয়ে কার্যকর।

7.0 LTS লাইনটি ব্যবহার করুন: এর server, frontend, agent2 এবং schema একসাথে ভার্সন করা থাকে এবং এটি বছরের পর বছর security fixes পাবে। নিচে দেওয়া repository filename কপি করার আগে, অফিসিয়াল Zabbix download page দেখে নিন — latest release package সবসময় সর্বশেষ 7.0 point release প্রদান করে, তবে আপনি যদি কোনো নির্দিষ্ট 7.0-N build ব্যবহার করতে চান, তবে সেই ফাইলনামটিও সেখানে দেওয়া আছে। এখানে দেওয়া অন্য সব command 7.0 লাইনের জন্য স্থিতিশীল।

Sizing, ports and prerequisites

ধরে নিন আপনার কাছে root বা sudo অ্যাক্সেসসহ একটি নতুন Ubuntu 24.04 KVM VPS আছে। রিসোর্স ব্যবহারের ক্ষেত্রে বাস্তবসম্মত হোন: মাত্র কিছু হোস্ট মনিটর করার জন্য একটি সিঙ্গেল সার্ভারে server, database, nginx এবং PHP চালানোর জন্য 2 GB RAM এবং দুটি vCPU হলো সর্বনিম্ন প্রয়োজনীয়তা। 1 GB RAM সম্পন্ন সার্ভার বুট হলেও ডাটাবেস পর্যাপ্ত রিসোর্স পাবে না কারণ হিস্টোরি বাড়ার সাথে সাথে চাপ বাড়বে; কয়েক ডজন হোস্টের ক্ষেত্রে 4 GB RAM পরিকল্পনা করুন, এবং ১০০টির বেশি হোস্টের ক্ষেত্রে ডাটাবেসটি আলাদা একটি সার্ভারে সরিয়ে নিন। আপনি কতগুলো আইটেম সংগ্রহ করছেন এবং কতদিন হিস্টোরি রাখছেন তার ওপর ভিত্তি করে ডিস্কের ব্যবহার বাড়বে; শুরুতে কয়েক গিগাবাইট জায়গা বরাদ্দ রাখুন, এবং housekeeper আপনার সেট করা retention windows অনুযায়ী পুরনো ডাটা মুছে ফেলবে।

Ports: frontend-এর জন্য 80 এবং 443 পোর্ট ব্যবহার করুন, যা পাবলিক বা আপনার নিজস্ব IP-তে সীমাবদ্ধ রাখা যেতে পারে। সার্ভার TCP 10051 পোর্টে ডেটা পাঠানোর জন্য active agents-এর জন্য অপেক্ষা করে, এবং প্রতিটি agent সার্ভারের polling-এর জন্য TCP 10050 পোর্টে অপেক্ষা করে। যদি সামনে কোনো firewall থাকে, তবে শুধুমাত্র প্রয়োজনীয় পোর্টগুলোই ওপেন রাখুন। Frontend-এর জন্য একটি DNS A record থাকা প্রয়োজন, কারণ আপনি এতে একটি রিয়েল সার্টিফিকেট ব্যবহার করতে চাইবেন — একটি Zabbix বক্স আপনার চালানো প্রতিটি সার্ভিস মনিটর করে, তাই এটিকে afterthought হিসেবে না দেখে 2026 সালে চালানোর মতো wider self-hosting stack-এর একটি অংশ হিসেবে বিবেচনা করা উচিত।

Step 1 — অফিসিয়াল Zabbix 7.0 repository যোগ করুন

zabbix-release প্যাকেজটি একটি কাজ করে: এটি আপনার সিস্টেমে apt source list এবং signing key যুক্ত করে। এটি install করুন, তারপর index refresh করুন।

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update

যদি wget এর আউটপুট 404 Not Found হয়, তবে ফাইলের নাম পরিবর্তন করা হয়েছে — Zabbix download page ওপেন করুন, Ubuntu 24.04 নির্বাচন করুন, এবং সেখানে দেওয়া সঠিক zabbix-release URL টি কপি করুন। একটি সঠিক apt updaterepo.zabbix.com লাইন দেখা যাবে এবং কোনো key warning থাকবে না; The following signatures couldn't be verified because the public key is not available মানে হলো release package টি তার key install করতে পারেনি, তাই পুনরায় dpkg -i চালান এবং আবার update করুন।

ধাপ ২ — server, frontend, এবং agent ইনস্টল করুন

MySQL-এর জন্য তৈরি server, PHP frontend, nginx config, SQL schema ফাইল এবং agent2 একসাথে ইনস্টল করুন।

sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

zabbix-server-mysql হলো MySQL/MariaDB-এর জন্য কম্পাইল করা server; PostgreSQL ব্যবহার করলে এর পরিবর্তে zabbix-server-pgsql ইনস্টল করুন এবং নিচের database ধাপগুলো পরিবর্তন করুন। zabbix-sql-scripts-এ সেই schema রয়েছে যা আপনাকে পরবর্তী ধাপে ইমপোর্ট করতে হবে — 7.0 ভার্সনে এটি একটি আলাদা প্যাকেজ, এবং এটি ইনস্টল না করার কারণেই পরে import path খুঁজে পাওয়া যায় না। এর মধ্যে কোনোটিই database engine ইনস্টল করে না, তাই আপনার সিস্টেমে ইতিমধ্যে কোনো database না থাকলে এখন MariaDB ইনস্টল করে নিন।

sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

Step 3 — সঠিক character set সহ database তৈরি করুন

Zabbix collation নিয়ে অত্যন্ত কঠোর: database অবশ্যই utf8mb4_bin সহ utf8mb4 হতে হবে, অন্যথায় import করার সময় foreign-key error দেখা দেবে এবং প্রক্রিয়াটি মাঝপথে থেমে যাবে। sudo mysql দিয়ে একটি root shell খুলুন এবং নিচের কমান্ডটি চালান:

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'choose-a-strong-password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;

SET GLOBAL লাইনটি import করার সময় একটি safety valve হিসেবে কাজ করে। Zabbix schema কিছু stored function তৈরি করে, এবং binary logging চালু থাকলে zabbix এর মতো non-SUPER account এগুলো তৈরি করতে পারে না — MySQL 8 ডিফল্টভাবে binary logging চালু রাখে, এবং কিছু managed MariaDB build-এও এটি চালু থাকে (stock MariaDB-তে এটি থাকে না)। যদি server-এ binary logging চালু থাকে এবং আপনি এই flag টি বাদ দেন, তবে import ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled error দিয়ে থেমে যাবে। root হিসেবে এটি সেট করলে সমস্যাটি সমাধান হয়ে যাবে; import শেষ হওয়ার পর আপনি এটি আবার বন্ধ করে দিতে পারেন। password টি হুবহু মনে রাখুন — server config-এ byte by byte একই string প্রয়োজন হবে।

Step 4 — Schema import (the step people skip)

নতুন frontend লোড না হওয়ার সবচেয়ে সাধারণ কারণ হলো: আপনার তৈরি করা database টি খালি। zabbix-sql-scripts এ থাকা schema টি এতে load করুন।

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
  mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

এটি zabbix password চাইবে। ছোট VPS-এ এটি চলতে ৩০ থেকে ৬০ সেকেন্ড সময় নিতে পারে। সফলভাবে সম্পন্ন হলে কোনো output দেখাবে না — কোনো output না আসা মানে প্রক্রিয়াটি সঠিক হয়েছে। zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory মানে হলো zabbix-sql-scripts package টি installed নেই (আবার Step 2 এ ফিরে যান)। ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' মানে হলো Step 3 এর password অথবা grant ভুল। প্রক্রিয়াটি শেষ হলে, safety flag টি আবার বন্ধ করে দিন:

sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"

sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;" দিয়ে নিশ্চিত করুন — যদি একটি number দেখায়, তবে schema টি সঠিকভাবে load হয়েছে; doesn't exist error দেখালে বুঝবেন হয়নি।

Step 5 — zabbix_server.conf ফাইলে database password সেট করুন

Server এর database credentials /etc/zabbix/zabbix_server.conf থেকে পড়া হয়। শুধুমাত্র password সেট করা প্রয়োজন — DBName এবং DBUser এর ডিফল্ট মান হলো zabbix# DBPassword= লাইনটি uncomment করুন এবং এটি সেট করুন:

DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-password

Password টি অবশ্যই Step 3 এর পাসওয়ার্ডের হুবহু বাইট-বাইটের মিল থাকতে হবে। খালি বা ভুল DBPassword থাকার কারণে পরবর্তীতে "Zabbix server is not running" এররটি দেখা দেয়: daemonটি স্টার্ট হয়, লগ-ইন করতে ব্যর্থ হয় এবং বন্ধ হয়ে যায়। স্ক্রিনে এর কোনো সংকেত পাওয়া যায় না — শুধুমাত্র log ফাইলে এটি দেখা যায়।

Step 6 — nginx-কে frontend-এর দিকে নির্দেশ করুন

zabbix-nginx-conf package-টি /etc/zabbix/nginx.conf-এ একটি server block ইনস্টল করে এবং /etc/nginx/conf.d/zabbix.conf থেকে nginx-এর সাথে এটি লিঙ্ক করে। তবে এতে listen এবং server_name লাইন দুটি comment করা থাকে। এই লাইনগুলো এডিট না করা পর্যন্ত nginx Zabbix-এর জন্য কোনো সার্ভিস প্রদান করবে না:

server {
    listen          80;
    server_name     zabbix.example.com;
    ...
}

আপনার domain ব্যবহার করুন, অথবা DNS না থাকলে সার্ভারের public IP ব্যবহার করুন। দুটি বিষয় খেয়াল রাখুন। Ubuntu-এর default nginx welcome site-টিও port 80-এ listen করে এবং এটিকে default server হিসেবে চিহ্নিত করা হয়েছে। ফলে যে request-এর name মিলে যায় না, সেটির জন্য এটিই কাজ করে — ভুল page লোড হওয়া এড়াতে এটি রিমুভ করুন: sudo rm -f /etc/nginx/sites-enabled/default। আর যদি কোনো কারণে /etc/nginx/conf.d/zabbix.conf না থাকে (এটি একটি পরিচিত packaging quirk), তবে sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf দিয়ে ম্যানুয়ালি লিঙ্কটি তৈরি করুন। এরপর test এবং reload করুন:

sudo nginx -t
sudo systemctl reload nginx

nginx -t চালালে test is successful দেখাবে। যদি nginx: [emerg] a duplicate default server for 0.0.0.0:80 দেখায়, তবে default site এবং Zabbix block উভয়ই default_server দাবি করছে — default site রিমুভ করে পুনরায় test করুন। বেশিরভাগ ক্ষেত্রে শুধুমাত্র একটি conflicting server name warning সহ test সফল হয়, কিন্তু ব্রাউজারে তবুও সাধারণ welcome page দেখায়: এর মানে হলো unmatched name-এর জন্য default site কাজ করছে, এটি রিমুভ করলেই সমস্যার সমাধান হবে।

Step 7 — সার্ভিসগুলো চালু এবং enable করুন

server, agent, PHP-FPM এবং nginx চালু করুন। সিস্টেম রিবুট হওয়ার পরেও এগুলো যেন নিজে নিজে চালু হয় সেজন্য সেগুলোকে enable করুন।

sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable  zabbix-server zabbix-agent2 nginx php8.3-fpm

Ubuntu 24.04-এ PHP 8.3 থাকে, তাই FPM সার্ভিসটি হলো php8.3-fpm; zabbix-nginx-conf প্যাকেজটি একই মাস্টার প্রসেসের অধীনে এর frontend চালায়। সার্ভারটি সঠিকভাবে চালু হয়েছে কিনা তা নিশ্চিত করতে নিচের কমান্ডটি দিন:

sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.log

একটি সঠিক log-এর শেষে server started এবং এর housekeeper, poller এবং trapper প্রসেসগুলো running হিসেবে দেখাবে। যদি আপনি [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' দেখেন, তবে এর মানে হলো Step 5-এর DBPassword সঠিক নয় — এটি ঠিক করুন এবং পুনরায় restart করুন। যদি [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist লাইন দেখেন, তবে এর মানে হলো আপনি Step 4-এর schema import ধাপটি বাদ দিয়েছেন, যার ফলে সার্ভারের কাছে পড়ার মতো কোনো ডেটা নেই।

Step 8 — Web setup wizard সম্পন্ন করুন

http://your-domain-or-ip লিঙ্কে যান। Zabbix setup wizard ওপেন হবে। নিচের ধাপগুলো অনুসরণ করুন:

  1. Welcome — একটি ভাষা নির্বাচন করুন।
  2. Check of pre-requisites — প্রতিটি সারি ডিফল্টভাবে OK দেখাবে; প্যাকেজ করা /etc/zabbix/php-fpm.conf pool Zabbix-এর প্রয়োজনীয় PHP limits আগে থেকেই সেট করে দেয়।
  3. Configure DB connection — database type MySQL, host localhost, port 0 (এর অর্থ হলো default port বা socket), database name zabbix, user zabbix, এবং Step 3 থেকে নেওয়া password দিন। ভুল credentials বা missing schema থাকলে এই ধাপে তা ধরা পড়বে।
  4. Settings — Zabbix server host localhost, port 10051 অপরিবর্তিত রাখুন এবং installation-এর একটি নাম দিন।
  5. Pre-installation summary, তারপর Install — wizardটি /etc/zabbix/web/zabbix.conf.php ফাইলটি লিখে ফেলবে।
  6. FinishAdmin (capital A) হিসেবে log in করুন এবং password হিসেবে zabbix ব্যবহার করুন। লগ ইন করার সাথে সাথে Users মেনু থেকে password পরিবর্তন করে নিন।

যদি wizard Cannot create the configuration file এর error দেখায়, তবে এর অর্থ web user /etc/zabbix/web/ লিখতে পারছে না — wizard যে zabbix.conf.php ফাইলটি দেবে সেটি ডাউনলোড করুন, sudo ব্যবহার করে ম্যানুয়ালি সেই ফোল্ডারে রাখুন, এবং তারপর Finish ক্লিক করুন।

Step 9 — Local host যোগ করা এবং একটি template সংযুক্ত করা

Zabbix স্বয়ংক্রিয়ভাবে নিজেকে monitor করে না। Data collection → Hosts → Create host-এ যান, host name হিসেবে zabbix-server সেট করুন, এটিকে Linux servers গ্রুপে যোগ করুন, এবং IP 127.0.0.1 ও port 10050 সহ একটি Agent interface যোগ করুন। Templates এর অধীনে, Linux by Zabbix agent লিঙ্ক করুন (এটি passive-poll variant; Linux by Zabbix agent active এ agent push পদ্ধতি ব্যবহৃত হয়)। Save করুন।

এক মিনিটের মধ্যে host row-এ একটি সবুজ ZBX label দেখা যাবে এবং Monitoring → Latest data-এর অধীনে metrics আসতে শুরু করবে। লাল ZBX label মানে হলো server থেকে agent-এ যোগাযোগ করা যাচ্ছে না — এটি একটি failure mode যা নিচে আলোচনা করা হয়েছে, এই step-এর কোনো ভুল নয়।

Step 10 — একটি দরকারী trigger এবং একটি email alert

Linux by Zabbix agent template-এ ইতিমধ্যে high CPU, low memory এবং full disk-এর জন্য trigger দেওয়া আছে, তাই এটি link করার সাথে সাথেই আপনি alert পাবেন। একটি trigger কীভাবে তৈরি করতে হয় তা দেখতে নিচের ধাপগুলো অনুসরণ করুন: host-টি ওপেন করুন, Triggers → Create trigger-এ যান, এর নাম দিন Root filesystem over 90% full on {HOST.NAME}, severity সেট করুন High, এবং এই expression-টি ব্যবহার করুন:

last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90

root filesystem-এর জন্য template-এর filesystem discovery যে percent-used item তৈরি করে সেটি হলো vfs.fs.dependent.size[/,pused] (7.0-এর Linux template একবার vfs.fs.get সংগ্রহ করে এবং প্রতিটি mount-এর জন্য প্রয়োজনীয় item তৈরি করে), তাই কোনো অতিরিক্ত data collection ছাড়াই এই trigger-টি কাজ করবে। এটি save করুন।

একটি trigger শুধুমাত্র dashboard-এ row-এর রঙ পরিবর্তন করে, যতক্ষণ না কোনো action কাউকে notify করছে। Alerts → Media types → Email-এ গিয়ে SMTP server, port, sender address, connection security (সাধারণত STARTTLS) এবং relay credentials সেট করুন। এরপর Test বাটনে ক্লিক করুন — যদি এখানে failure দেখায়, তার মানে আপনার SMTP path ভুল আছে। Users → Users → Admin → Media → Add-এ গিয়ে Admin user-এর জন্য একটি address দিন এবং কোন severity-তে notification পাঠাতে হবে তা নির্বাচন করুন। এরপর Alerts → Actions → Trigger actions → Create action-এর অধীনে এটি সেটআপ করুন: Trigger severity >= Warning-এর মতো একটি condition যোগ করুন, এবং Operations-এর অধীনে Admin-কে Email-এর মাধ্যমে পাঠান। এটি save এবং enable করুন। আপনি যদি chat ব্যবহার করতে চান? Zabbix 7.0-এ Slack, Discord এবং Telegram-এর জন্য webhook media types দেওয়া আছে — Email-এর মতোই এগুলো configure করুন এবং কোনো user-কে assign করুন।

Agent ব্যবহার করে দ্বিতীয় সার্ভার মনিটর করা

অন্য একটি সার্ভার পর্যবেক্ষণ করতে, সেখানেও Zabbix repository যোগ করুন — Ubuntu 24.04-এ নিজস্ব কোনো Zabbix package থাকে না — তারপর শুধুমাত্র agent ইনস্টল করুন:

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update
sudo apt install -y zabbix-agent2

/etc/zabbix/zabbix_agent2.conf এডিট করুন, passive polling-এর জন্য Server-এ Zabbix server-এর IP সেট করুন এবং active checks-এর জন্য ServerActive এবং frontend-এ তৈরি করা host-এর সাথে মিল থাকা একটি অনন্য Hostname সেট করুন:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

sudo systemctl enable --now zabbix-agent2 চালান এবং Zabbix server থেকে এই machine-এর জন্য TCP 10050 পোর্টটি ওপেন করুন। Frontend-এ ফিরে যান, একটি host তৈরি করুন যার Agent interface ওই machine-এর IP নির্দেশ করে, Linux template লিঙ্ক করুন, এবং এক মিনিটের মধ্যে এটি রিপোর্ট প্রদান করবে।

Failure modes, সাথে আপনি যে string গুলো দেখতে পাবেন

Frontend-এ Error connecting to database অথবা database error দেখাচ্ছে। wizard-এর DB step-এ, Access denied for user 'zabbix'@'localhost' (using password: YES) মানে হলো passwordটি Step 3-এর সাথে মিলছে না অথবা GRANT কখনো run করা হয়নি। যদি database কানেক্ট হয় কিন্তু frontend-এ The frontend does not match Zabbix database অথবা Table 'zabbix.users' doesn't exist দেখায়, তবে এর মানে হলো Step 4-এর schema import স্কিপ করা হয়েছে অথবা fail করেছে — একটি নতুন তৈরি করা database-এ এটি পুনরায় run করুন।

Orange banner: Zabbix server is not running: the information displayed may not be current Frontend চালু আছে কিন্তু লাইভ সার্ভারের সাথে কানেক্ট করতে পারছে না। এর তিনটি কারণ থাকতে পারে, যার মধ্যে প্রথমটি হওয়ার সম্ভাবনা সবচেয়ে বেশি। service-টি বন্ধ আছে — systemctl status zabbix-server চেক করুন এবং এটি start করুন। service-টি চলছে কিন্তু database-এর সাথে কানেক্ট করতে পারছে না — log-এ [Z3001] connection to database 'zabbix' failed: [1045] Access denied দেখাচ্ছে, যার মানে হলো password ভুল অথবা blank DBPassword। অথবা frontend ভুল সার্ভারকে নির্দেশ করছে, যা /etc/zabbix/web/zabbix.conf.php ফাইলে host localhost port 10051 হিসেবে সংরক্ষিত আছে। Ubuntu-তে ডিফল্টভাবে SELinux থাকে না, তাই RHEL গাইডগুলোতে উল্লিখিত SELinux-socket সমস্যাটি এখানে প্রযোজ্য নয়; এখানে সমস্যাটি প্রায় সব সময় database password অথবা একটি বন্ধ service-এর কারণে হয়।

Host-এ একটি red ZBX label দেখাচ্ছে; item error Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused agent-টি চলছে না অথবা listening মোডে নেই। systemctl status zabbix-agent2 চেক করুন এবং ListenPort=10050 নিশ্চিত করুন। "connection refused"-এর পরিবর্তে timeout আসা মানে হলো firewall port 10050 ব্লক করছে। সংশ্লিষ্ট Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. মানে হলো agent-টি reachable কিন্তু এর Server= লাইনে Zabbix server-এর IP নেই — এটি যোগ করুন এবং agent-টি restart করুন।

Plain nginx welcome page, অথবা 502 Bad Gateway welcome page দেখাচ্ছে মানে হলো default site এখনো enabled আছে অথবা Zabbix block লিঙ্ক করা নেই — /etc/nginx/sites-enabled/default রিমুভ করুন এবং নিশ্চিত করুন যে Step 6-এর মতো /etc/nginx/conf.d/zabbix.conf বিদ্যমান আছে। 502 মানে হলো nginx, PHP-তে পৌঁছেছে কিন্তু PHP-FPM বন্ধ আছে অথবা অন্য কোনো socket-এ listening করছে — php8.3-fpm start করুন এবং নিশ্চিত করুন যে Zabbix block-এর fastcgi_pass socket-টি running pool-এর সাথে মিলছে।

Backups, upgrades, and TLS

Database-এ সমস্ত ইতিহাস থাকে, তাই একটি নির্দিষ্ট সময়সূচী অনুযায়ী mysqldump ব্যবহার করে ব্যাকআপ নিন এবং dump ফাইলটি সার্ভারের বাইরে রাখুন:

mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz

/etc/zabbix config ফাইলগুলো ছোট এবং এগুলোও সংরক্ষণ করা উচিত, তবে এগুলো পুনরায় তৈরি করা সম্ভব; কিন্তু data পুনরায় তৈরি করা সম্ভব নয়। Restore করার প্রক্রিয়া হলো এর উল্টো — প্রথমে database তৈরি করুন, তারপর dump ফাইলটি import করুন, এবং config ফাইলটিকে সেই database-এর দিকে নির্দেশ করুন।

7.0 line-এর মধ্যে upgrade করা সাধারণ apt update && apt upgrade রান; সার্ভার পরবর্তী start-এ সমস্ত schema migration প্রয়োগ করে, তাই প্যাকেজগুলো upgrade করুন এবং zabbix-server restart করুন। ভবিষ্যতে কোনো major line-এ যাওয়া একটি পরিকল্পিত পদক্ষেপ — এর upgrade notes পড়ুন, প্রথমে database dump করুন, এবং মনে রাখবেন যে schema পরিবর্তনটি একমুখী (one-way) হবে। এই একমুখী পরিবর্তনের কারণেই আপনাকে একটি LTS line-এ সীমাবদ্ধ থাকতে হয় এবং সেখানেই থাকা উচিত।

Frontend-কে সাধারণ HTTP-তে রাখবেন না। DNS যখন সার্ভারের দিকে নির্দেশ করবে, তখন Certbot and Let's Encrypt on nginx for Ubuntu 24.04 ব্যবহার করে একটি certificate যুক্ত করুন; এটি server block-টি পরিবর্তন করে 443 পোর্টে listen করবে এবং 80 পোর্টে redirect করবে। আপনি যখন এমন একটি সার্ভার harden করছেন যা আপনার অন্যান্য সার্ভারগুলো পর্যবেক্ষণ করার জন্য লগ-ইন করে, তখন fail2ban banning brute-force SSH attempts ব্যবহার করে এর SSH-ও সুরক্ষিত করুন। একটি monitoring login কখনোই cleartext-এ পাঠানো উচিত নয় এবং এর প্রবেশদ্বার পাসওয়ার্ড অনুমানকারী (password-guessers) দের জন্য খোলা রাখা উচিত নয়।

FAQ

আমার কি Zabbix agent প্রয়োজন, নাকি এটি ছাড়াই মনিটর করা সম্ভব?

উভয় পদ্ধতিই কাজ করে। agent (agent2) প্রতিটি host থেকে বিস্তারিত metrics প্রদান করে — যেমন CPU, memory, disks, processes, services, এবং log files। আপনি যদি সার্ভারটি নিয়ন্ত্রণ করতে পারেন, তবে এটিই সাধারণ পছন্দ। Agentless monitoring সেই ডিভাইসগুলোর জন্য প্রযোজ্য যেখানে আপনি কোনো software ইনস্টল করতে পারবেন না: যেমন switches এবং printers-এর জন্য SNMP, reachability চেক করার জন্য ICMP ping, endpoints-এর জন্য HTTP checks, এবং hardware health-এর জন্য IPMI। বেশিরভাগ বাস্তব ক্ষেত্রে এই দুটি পদ্ধতির সমন্বয় করা হয়।

frontend কেন বলছে যে Zabbix server চলছে না?

Frontend কাজ করছে কিন্তু এটি কোনো সচল zabbix-server process-এর সাথে যোগাযোগ করতে পারছে না। সাধারণত সার্ভারটি চালু হয়, কিন্তু zabbix_server.conf-এ থাকা DBPassword ভুল বা খালি থাকার কারণে লগ-ইন করতে ব্যর্থ হয় এবং বন্ধ হয়ে যায়। systemctl status zabbix-server চালান এবং /var/log/zabbix/zabbix_server.log পড়ুন; একটি [Z3001] connection to database ... failed লাইন এটি নিশ্চিত করবে। পাসওয়ার্ড ঠিক করুন এবং restart দিন, এক মিনিটের মধ্যেই banner চলে যাবে।

আমাকে কি অবশ্যই MySQL ব্যবহার করতে হবে, নাকি PostgreSQL ব্যবহার করা যাবে?

উভয়ই সম্পূর্ণভাবে সমর্থিত: এই গাইডের মতো MariaDB বা MySQL সহ zabbix-server-mysql, অথবা PostgreSQL সহ zabbix-server-pgsql। ছোট ইনস্টলেশনের ক্ষেত্রে এই পছন্দের গুরুত্ব খুব কম। বড় ইনস্টলেশনের ক্ষেত্রে, TimescaleDB extension সহ PostgreSQL history tables গুলোকে partition করে এবং housekeeping অনেক সহজ করে দেয়, তাই বড় সাইটগুলো এটি ব্যবহার করতে পছন্দ করে। যেকোনো একটি বেছে নিন এবং সেটিই ব্যবহার করুন — পরে পরিবর্তন করতে চাইলে আপনাকে সম্পূর্ণ export এবং re-import করতে হবে, শুধুমাত্র config পরিবর্তন করে হবে না।

একটি Zabbix all-in-one সার্ভারের কতটুকু RAM প্রয়োজন?

অল্প কিছু host মনিটর করার জন্য একটি বক্সের জন্য 2 GB একটি বাস্তবসম্মত সর্বনিম্ন সীমা এবং কয়েক ডজন host-এর জন্য 4 GB যথেষ্ট; মেমরি মূলত database cache এবং সার্ভারের pollers-এর জন্য ব্যবহৃত হয়। 1 GB VPS-এ এটি চলবে, কিন্তু history বাড়ার সাথে সাথে database-এর জন্য মেমরি কম পড়বে। একশোর বেশি host থাকলে, একটি মেশিনে অতিরিক্ত RAM না বাড়িয়ে database-টিকে আলাদা সার্ভারে নিয়ে যান এবং এর buffer pool টিউন করুন।

মাত্র কয়েকটি সার্ভারের জন্য কি Zabbix অতিরিক্ত জটিল?

হতে পারে। আপনার যদি শুধু "it is up?" চেক করার এবং একটি শেয়ারযোগ্য পেজ প্রয়োজন হয়, তবে Uptime Kuma for uptime and status monitoring এর মতো হালকা টুল দ্রুত সেটআপ করা যায় এবং এক নজরে পড়া সহজ। যখন আপনার প্রতিটি metric-এর জন্য threshold, historical graphs, templated hosts এবং escalation rules প্রয়োজন হবে — যা একটি সাধারণ pinger অনেকগুলো সার্ভারের ক্ষেত্রে দিতে পারে না — তখন Zabbix বেছে নিন।