SSD Nodes Learn Hosting plans →
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-01

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

Ubuntu 24.04-এ Zabbix 7.0 LTS সেটআপের পূর্ণাঙ্গ নির্দেশিকা। রিপোজিটরি যোগ করা, MariaDB স্কিমা ইমপোর্ট এবং nginx কনফিগারেশনের জটিল ধাপগুলো এখানে সহজভাবে ব্যাখ্যা করা হয়েছে।

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

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

Zabbix একটি সাধারণ স্ট্যাটাস-পেজ টুলের চেয়ে অনেক বেশি শক্তিশালী: এটি টেমপ্লেট, ট্রিগার, এস্কেলেশন এবং হিস্ট্রি রিটেনশন সহ একটি প্রকৃত টাইম-সিরিজ সিস্টেম। বেশিরভাগ জটিলতা তিনটি ধাপে ঘটে যা মানুষ এড়িয়ে যায়: ডেটাবেস স্কিমা ইমপোর্ট করা, সার্ভার যে ডেটাবেস পাসওয়ার্ডটি পড়ে তা সঠিকভাবে সেট করা এবং nginx কনফিগারেশনে দুটি লাইন আনকমেন্ট করা। এই ধাপগুলো সঠিকভাবে সম্পন্ন করলে বাকি কাজগুলো খুব সহজ হয়ে যায়। আপনি যদি শুধুমাত্র আপ/ডাউন চেক এবং শেয়ারযোগ্য স্ট্যাটাস পেজ চান, তবে একটি হালকা ওজনের Uptime Kuma স্ট্যাটাস মনিটর একটি কন্টেইনারেই তা করতে পারে; Zabbix তখনই কার্যকর হয় যখন আপনার অনেকগুলো হোস্ট জুড়ে প্রতি-মেট্রিক থ্রেশহোল্ড এবং এস্কেলেশনের প্রয়োজন হয়।

7.0 LTS লাইনটি ব্যবহার করুন: এর সার্ভার, ফ্রন্টএন্ড, agent2 এবং স্কিমা একই ভার্সনের এবং এটি বছরের পর বছর নিরাপত্তা আপডেট পায়। নিচে রিপোজিটরির ফাইলের নাম কপি করার আগে, অফিসিয়াল Zabbix ডাউনলোড পেজটি একবার দেখে নিন। latest রিলিজ প্যাকেজটি সবসময় নতুন 7.0 পয়েন্ট রিলিজের সাথে যুক্ত থাকে, তবে আপনি যদি নির্দিষ্ট কোনো 7.0-N বিল্ড ব্যবহার করতে চান, তবে সেই পেজে ফাইলের নামটিও দেওয়া থাকে। এখানে দেওয়া বাকি প্রতিটি কমান্ড পুরো 7.0 লাইনের জন্য স্থিতিশীল।

সাইজিং, পোর্ট এবং পূর্বশর্তসমূহ

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

পোর্টসমূহ: ফ্রন্টএন্ডের জন্য 80 এবং 443 পোর্ট, যা পাবলিকলি অথবা শুধুমাত্র আপনার নিজস্ব IP-এর জন্য সীমাবদ্ধ রাখতে পারেন। সার্ভারটি TCP 10o51 পোর্টে লিসেন করে, যার মাধ্যমে অ্যাক্টিভ এজেন্টরা ডাটা পাঠায় এবং প্রতিটি এজেন্ট TCP 10o50 পোর্টে লিসেন করে, যার মাধ্যমে সার্ভার সেগুলোকে পোল (poll) করে। যদি সামনে কোনো ফায়ারওয়াল থাকে, তবে শুধুমাত্র প্রয়োজনীয় পোর্টগুলোই ওপেন রাখুন। ফ্রন্টএন্ডের জন্য একটি DNS A রেকর্ড থাকা ভালো, কারণ আপনি এতে একটি আসল সার্টিফিকেট ব্যবহার করতে চাইবেন। Zabbix আপনার চলমান প্রতিটি সার্ভিস মনিটর করে, তাই এটিকে 2026 সালে চালানোর মতো বৃহত্তর সেলফ-হোস্টিং স্ট্যাক-এর অংশ হিসেবে অন্তর্ভুক্ত করা উচিত, কোনো বাড়তি চিন্তা হিসেবে নয়।

ধাপ 1, অফিসিয়াল Zabbix 7.0 রিপোজিটরি যোগ করুন

zabbix-release প্যাকেজটি একটি কাজ করে: এটি আপনার সিস্টেমে apt সোর্স লিস্ট এবং সাইনিং কি (signing key) যুক্ত করে। এটি ইনস্টল করুন, তারপর ইনডেক্স রিফ্রেশ করুন।

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 ডাউনলোড পেজটি খুলুন, Ubuntu 24.04 নির্বাচন করুন এবং সেখানে প্রদর্শিত সঠিক zabbix-release URL-টি কপি করুন। একটি সফল apt update কমান্ডে একটি repo.zabbix.com লাইন দেখা যাবে এবং কোনো কি (key) সংক্রান্ত সতর্কবার্তা থাকবে না; The following signatures couldn't be verified because the public key is not available এর অর্থ হলো রিলিজ প্যাকেজটি তার কি (key) ইনস্টল করতে পারেনি, তাই পুনরায় dpkg -i কমান্ডটি চালান এবং আপডেট করুন।

ধাপ 2, সার্ভার, ফ্রন্টএন্ড এবং এজেন্ট ইনস্টল করা

MySQL-এর সাথে বিল্ড করা সার্ভার, PHP ফ্রন্টএন্ড, nginx কনফিগারেশন, SQL স্কিমা ফাইল এবং agent2 একসাথে ইনস্টল করুন।

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

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

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

ধাপ 3, সঠিক ক্যারেক্টার সেট দিয়ে ডেটাবেস তৈরি করুন

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

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 লাইনটি ইমপোর্টের জন্য একটি সেফটি ভালভ হিসেবে কাজ করে। Zabbix স্কিমা কিছু স্টোর্ড ফাংশন তৈরি করে, এবং zabbix-এর মতো নন-SUPER অ্যাকাউন্টগুলো বাইনারি লগিং চালু থাকা অবস্থায় সেগুলো তৈরি করতে পারে না। MySQL 8-এ ডিফল্টভাবে বাইনারি লগিং চালু থাকে এবং কিছু ম্যানেজড MariaDB বিল্ডেও এটি থাকে (সাধারণ MariaDB-তে থাকে না)। বাইনারি লগিং চালু আছে এমন সার্ভারে এই ফ্ল্যাগটি বাদ দিলে ইমপোর্ট প্রক্রিয়া ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled ত্রুটির মাধ্যমে বন্ধ হয়ে যাবে। root হিসেবে এটি সেট করলে সেই সমস্যা দূর হয়; ইমপোর্ট শেষ হওয়ার পর আপনি এটি আবার বন্ধ করে দিতে পারেন। পাসওয়ার্ডটি সঠিকভাবে মনে রাখুন, সার্ভার কনফিগারেশনে ঠিক একই স্ট্রিং ব্যবহার করতে হবে।

ধাপ 4, স্কিমা ইমপোর্ট করা (যে ধাপটি সবাই এড়িয়ে যায়)

একটি নতুন ফ্রন্টএন্ড লোড হতে অস্বীকার করার এটিই সবচেয়ে সাধারণ কারণ: আপনার তৈরি করা ডাটাবেসটি খালি। zabbix-sql-scripts-এ থাকা স্কিমাটি এতে লোড করুন।

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

এটি zabbix পাসওয়ার্ড চাইবে, একটি ছোট VPS-এ ত্রিশ থেকে ষাট সেকেন্ড সময় নেবে এবং সফল হলে কোনো কিছু প্রদর্শন করবে না; এখানে নীরব থাকা মানেই সফল হওয়া। zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory এর অর্থ হলো zabbix-sql-scripts প্যাকেজটি ইনস্টল করা নেই (ধাপ 2-এ ফিরে যান)। ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' এর অর্থ হলো ধাপ 3-এর পাসওয়ার্ড বা গ্র্যান্ট ভুল আছে। এটি শেষ হয়ে গেলে, সেফটি ফ্ল্যাগটি আবার বন্ধ করে দিন:

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

sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;" দিয়ে লোডটি নিশ্চিত করুন, একটি সংখ্যা আসা মানে স্কিমাটি লোড হয়েছে, কোনো doesn't exist এরর নয়।

ধাপ 5, zabbix_server.conf ফাইলে ডাটাবেস পাসওয়ার্ড সেট করা

সার্ভার তার ডাটাবেস ক্রেডেনশিয়ালগুলো /etc/zabbix/zabbix_server.conf ফাইল থেকে পড়ে। শুধুমাত্র পাসওয়ার্ডটি সেট করা প্রয়োজন, কারণ DBName এবং DBUser এর মান ডিফল্টভাবে zabbix সেট করা থাকে। # DBPassword= লাইনটির কমেন্ট চিহ্ন সরিয়ে দিন এবং এটি সেট করুন:

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

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

ধাপ 6, ফ্রন্টএন্ডের দিকে nginx নির্দেশ করা

zabbix-nginx-conf প্যাকেজটি /etc/zabbix/nginx.conf-এ একটি সার্ভার ব্লক ইনস্টল করে এবং এটিকে /etc/nginx/conf.d/zabbix.conf থেকে nginx-এ লিঙ্ক করে, কিন্তু এটি listen এবং server_name লাইনগুলো কমেন্ট করা অবস্থায় আসে। তাই আপনি এগুলো এডিট না করা পর্যন্ত nginx Zabbix-এর জন্য কিছুই সার্ভ করবে না:

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

আপনার ডোমেইন ব্যবহার করুন, অথবা যদি আপনার কাছে এখনো DNS না থাকে তবে সার্ভারের পাবলিক IP ব্যবহার করুন। দুটি বিষয় খেয়াল রাখবেন। Ubuntu-এর ডিফল্ট nginx ওয়েলকাম সাইটটিও পোর্ট 80-এ লিসেন করে এবং সেটিকে ডিফল্ট সার্ভার হিসেবে চিহ্নিত করা থাকে, তাই যে অনুরোধের নামের সাথে এটি মেলে না তার জন্য এটিই কাজ করে। এটিকে সরিয়ে ফেলুন, অন্যথায় ভুল পেজ লোড হবে: sudo rm -f /etc/nginx/sites-enabled/default। আর যদি /etc/nginx/conf.d/zabbix.conf কোনোভাবে অনুপস্থিত থাকে (এটি প্যাকেজিংয়ের একটি পরিচিত সমস্যা), তবে sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf দিয়ে ম্যানুয়ালি লিঙ্কটি তৈরি করুন। এরপর টেস্ট করুন এবং রিলোড দিন:

sudo nginx -t
sudo systemctl reload nginx

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

ধাপ 7, সার্ভিসগুলো চালু এবং সক্রিয় করা

সার্ভার, এজেন্ট, PHP-FPM এবং nginx চালু করুন এবং এগুলোকে সক্রিয় করুন যাতে রিবুটের পরেও এগুলো সচল থাকে।

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 প্যাকেজটি একই মাস্টারের অধীনে তার ফ্রন্টএন্ড চালায়। সার্ভারটি চালু হয়েছে এবং সচল আছে কিনা তা নিশ্চিত করুন:

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

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

ধাপ 8, ওয়েব সেটআপ উইজার্ড সম্পন্ন করা

http://your-domain-or-ip ব্রাউজ করুন। Zabbix সেটআপ উইজার্ডটি খুলবে। নিচের ধাপগুলো অনুসরণ করুন:

  1. Welcome, একটি ভাষা নির্বাচন করুন।
  2. Check of pre-requisites, প্রতিটি সারিতে OK লেখা থাকা উচিত; প্যাকেজ করা /etc/zabbix/php-fpm.conf পুলটি Zabbix-এর প্রয়োজনীয় PHP লিমিটগুলো আগেই বাড়িয়ে দেয়।
  3. Configure DB connection, ডাটাবেস টাইপ MySQL, হোস্ট localhost, পোর্ট 0 (এর অর্থ ডিফল্ট পোর্ট বা সকেট), ডাটাবেস নাম zabbix, ইউজার zabbix এবং ধাপ 3-এ সেট করা পাসওয়ার্ড দিন। ভুল ক্রেডেনশিয়াল বা অনুপস্থিত স্কিমা থাকলে এখানেই ত্রুটি দেখা দেবে।
  4. Settings, Zabbix সার্ভার হোস্ট localhost, পোর্ট 10051 অপরিবর্তিত রাখুন এবং ইনস্টলেশনটির একটি নাম দিন।
  5. Pre-installation summary, এরপর Install-এ ক্লিক করুন, উইজার্ডটি /etc/zabbix/web/zabbix.conf.php ফাইলটি লিখবে।
  6. Finish, Admin (বড় হাতের A) ইউজারনেম এবং zabbix পাসওয়ার্ড দিয়ে লগ ইন করুন এবং Users সেকশনে গিয়ে অবিলম্বে পাসওয়ার্ডটি পরিবর্তন করুন।

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

ধাপ 9, লোকাল হোস্ট যোগ করা এবং একটি টেমপ্লেট সংযুক্ত করা

Zabbix নিজে থেকে নিজেকে মনিটর করে না। Data collection → Hosts → Create host-এ যান, হোস্টের নাম zabbix-server হিসেবে সেট করুন, এটিকে Linux servers গ্রুপে যোগ করুন এবং 127.0.0.1 IP ও 10050 পোর্ট দিয়ে একটি Agent ইন্টারফেস যোগ করুন। Templates-এর অধীনে, Linux by Zabbix agent লিঙ্ক করুন (এটি প্যাসিভ-পোল ভেরিয়েন্ট; Linux by Zabbix agent active ব্যবহার করলে এজেন্ট নিজেই ডেটা পুশ করে)। সেভ করুন।

এক মিনিটের মধ্যে হোস্টের সারিতে একটি সবুজ ZBX লেবেল দেখা যাবে এবং Monitoring → Latest data-এর অধীনে মেট্রিক্স আসতে শুরু করবে। একটি লাল ZBX লেবেলের অর্থ হলো সার্ভার এজেন্টের সাথে যোগাযোগ করতে পারছে না; এটি একটি ফেইলিয়র মোড যা নিচে আলোচনা করা হয়েছে, এটি এই ধাপের কোনো ভুল নয়।

ধাপ 10, একটি দরকারি ট্রিগার এবং ইমেইল অ্যালার্ট

Linux by Zabbix agent টেমপ্লেটটিতে উচ্চ CPU, কম মেমরি এবং পূর্ণ ডিস্কের জন্য আগে থেকেই ট্রিগার থাকে, তাই এটি লিঙ্ক করার সাথে সাথেই আপনি অ্যালার্ট পাবেন। একটি ট্রিগার কীভাবে তৈরি করতে হয় তা দেখতে, নিজের একটি ট্রিগার যোগ করুন: হোস্টটি খুলুন, Triggers → Create trigger-এ যান, সেটির নাম দিন Root filesystem over 90% full on {HOST.NAME}, গুরুত্ব (severity) High সেট করুন এবং এই এক্সপ্রেশনটি ব্যবহার করুন:

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

vfs.fs.dependent.size[/,pused] হলো সেই পার্সেন্ট-ইউজড আইটেম যা টেমপ্লেটের ফাইলসিস্টেম ডিসকভারি রুট ফাইলসিস্টেমের জন্য তৈরি করে (7.0-এর Linux টেমপ্লেট vfs.fs.get একবার সংগ্রহ করে এবং প্রতিটি মাউন্টের জন্য নির্ভরশীল আইটেমগুলো বের করে), তাই কোনো বাড়তি ডেটা সংগ্রহ ছাড়াই ট্রিগারটি সক্রিয় হয়। এটি সেভ করুন।

একটি ট্রিগার ড্যাশবোর্ডে কেবল একটি সারির রঙ পরিবর্তন করে যতক্ষণ না কোনো action কাউকে নোটিফাই করে। Alerts → Media types → Email-এর অধীনে, SMTP সার্ভার, পোর্ট, প্রেরকের ঠিকানা, কানেকশন সিকিউরিটি (সাধারণত STARTTLS) এবং যেকোনো রিলে ক্রেডেনশিয়াল সেট করুন। এরপর Test ব্যবহার করুন; এখানে ব্যর্থ হওয়ার অর্থ হলো কোনো প্রকৃত অ্যালার্টের ওপর নির্ভর করার আগেই SMTP পাথটি ভুল আছে। Users → Users → Admin → Media → Add-এর অধীনে Admin ইউজারকে একটি ইমেইল ঠিকানা দিন এবং কোন গুরুত্বের অ্যালার্টগুলো পাঠানো হবে তা নির্বাচন করুন। এরপর Alerts → Actions → Trigger actions → Create action-এর অধীনে এটি কনফিগার করুন: Trigger severity >= Warning-এর মতো একটি কন্ডিশন যোগ করুন এবং Operations-এর অধীনে ইমেইলের মাধ্যমে Admin-কে পাঠানোর ব্যবস্থা করুন। এটি সেভ করে সক্রিয় করুন। চ্যাট পছন্দ করেন? Zabbix 7.0-এ Slack, Discord এবং Telegram-এর জন্য ওয়েবহুক মিডিয়া টাইপ থাকে; ইমেইলের মতোই যেকোনো একটি কনফিগার করুন এবং তা একজন ইউজারের সাথে অ্যাসাইন করুন।

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

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

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 ফাইলটি এডিট করুন। প্যাসিভ পোলিংয়ের জন্য Server-এ Zabbix সার্ভারের IP সেট করুন। অ্যাক্টিভ চেকের জন্য ServerActive এবং একটি ইউনিক Hostname সেট করুন, যা ফ্রন্টএন্ডে তৈরি করা হোস্টের নামের সাথে মিল থাকতে হবে:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

sudo systemctl enable --now zabbix-agent2 কমান্ডটি চালান এবং Zabbix সার্ভার থেকে এই মেশিনের TCP 10050 পোর্টটি ওপেন করুন। এরপর ফ্রন্টএন্ডে ফিরে গিয়ে একটি হোস্ট তৈরি করুন যার Agent ইন্টারফেস ওই মেশিনের IP-কে নির্দেশ করবে। Linux টেমপ্লেটটি লিঙ্ক করুন, এটি 1 মিনিটের মধ্যে রিপোর্ট করা শুরু করবে।

ব্যর্থতার ধরন এবং যে স্ট্রিংগুলো আপনি দেখতে পাবেন

ফ্রন্টএন্ডে Error connecting to database অথবা ডাটাবেস এরর দেখায়। উইজার্ডের DB ধাপে, Access denied for user 'zabbix'@'localhost' (using password: YES) এর অর্থ হলো পাসওয়ার্ডটি 3 নম্বর ধাপের সাথে মিলছে না অথবা GRANT কখনোই রান করেনি। যদি ডাটাবেস কানেক্ট হয় কিন্তু ফ্রন্টএন্ড The frontend does not match Zabbix database অথবা Table 'zabbix.users' doesn't exist রিপোর্ট করে, তবে 4 নম্বর ধাপের স্কিমা ইমপোর্টটি বাদ পড়েছে বা ব্যর্থ হয়েছে; নতুন তৈরি করা ডাটাবেসে এটি পুনরায় রান করুন।

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

হোস্ট একটি লাল ZBX লেবেল দেখায়; আইটেম এরর Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused এজেন্টটি চলছে না অথবা লিসেন করছে না। systemctl status zabbix-agent2 চেক করুন এবং ListenPort=10050 নিশ্চিত করুন। "connection refused"-এর পরিবর্তে টাইমআউট হওয়ার অর্থ হলো ফায়ারওয়াল 10050 পোর্টটি ড্রপ করছে। সম্পর্কিত Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. এর অর্থ হলো এজেন্টটি রিচেবল কিন্তু এর Server= লাইনে Zabbix সার্ভারের IP তালিকাভুক্ত নেই, এটি যোগ করুন এবং এজেন্টটি রিস্টার্ট করুন।

সাধারণ nginx ওয়েলকাম পেজ, অথবা 502 Bad Gateway ওয়েলকাম পেজের অর্থ হলো ডিফল্ট সাইটটি এখনো এনাবল করা আছে অথবা Zabbix ব্লকটি লিঙ্ক করা হয়নি, /etc/nginx/sites-enabled/default সরিয়ে ফেলুন এবং 6 নম্বর ধাপের মতো /etc/nginx/conf.d/zabbix.conf বিদ্যমান আছে কিনা তা নিশ্চিত করুন। 502 এর অর্থ হলো nginx PHP-তে পৌঁছেছে কিন্তু PHP-FPM বন্ধ আছে অথবা ভিন্ন সকেটে লিসেন করছে, php8.3-fpm চালু করুন এবং Zabbix ব্লকের fastcgi_pass সকেটটি রানিং পুলের সাথে মিলছে কিনা তা চেক করুন।

ব্যাকআপ, আপগ্রেড এবং TLS

ডেটাবেস হলো সম্পূর্ণ ইতিহাস, তাই mysqldump ব্যবহার করে নিয়মিত সময়সূচী অনুযায়ী এর ব্যাকআপ নিন এবং ডাম্প ফাইলটি সার্ভারের বাইরে সংরক্ষণ করুন:

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

/etc/zabbix কনফিগারেশন ফাইলগুলো ছোট এবং সেগুলো সংরক্ষণ করা ভালো, তবে সেগুলো পুনরায় তৈরি করা সম্ভব; কিন্তু ডেটা পুনরায় তৈরি করা যায় না। রিস্টোর করার প্রক্রিয়াটি হলো উল্টো; প্রথমে ডেটাবেস তৈরি করুন, ডাম্প ফাইল ইমপোর্ট করুন এবং কনফিগারেশন ফাইলটিকে ডেটাবেসের দিকে নির্দেশ করুন।

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

ফ্রন্টএন্ডকে প্লেইন HTTP-তে রাখবেন না। একবার DNS সার্ভারের দিকে নির্দেশ করলে, Ubuntu 24.04-এ nginx-এর জন্য Certbot এবং Let's Encrypt ব্যবহার করে এতে একটি সার্টিফিকেট যুক্ত করুন, যা সার্ভার ব্লকটিকে 443 পোর্টে লিসেন করার জন্য এবং 80 পোর্ট থেকে রিডাইরেক্ট করার জন্য পুনরায় লিখে দেবে। আপনি যখন এমন একটি সার্ভারকে হার্ডেন করছেন যা আপনার পরিচালিত অন্য সব সার্ভার পর্যবেক্ষণ করে, তখন fail2ban ব্যবহার করে SSH ব্রুট-ফোর্স আক্রমণ ঠেকানো-এর মাধ্যমে এর SSH-কেও সুরক্ষিত করুন। একটি মনিটরিং লগইন কখনোই প্লেইন টেক্সটে আদান-প্রদান হওয়া উচিত নয় এবং এর প্রবেশদ্বারটি পাসওয়ার্ড অনুমানকারীদের জন্য খোলা রাখা উচিত নয়।

FAQ

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

উভয় পদ্ধতিই কাজ করে। Zabbix agent (agent2) প্রতিটি হোস্টের বিস্তারিত মেট্রিক্স যেমন CPU, মেমরি, ডিস্ক, প্রসেস, সার্ভিস এবং লগ ফাইল প্রদান করে, যা আপনার নিয়ন্ত্রণে থাকা সার্ভারগুলোর জন্য আদর্শ। Agentless মনিটরিং এমন ডিভাইসের ক্ষেত্রে ব্যবহৃত হয় যেখানে সফটওয়্যার ইনস্টল করা সম্ভব নয়: যেমন সুইচ ও প্রিন্টারের জন্য SNMP, রিচেবিলিটি পরীক্ষার জন্য ICMP ping, এন্ডপয়েন্টের জন্য HTTP চেক এবং হার্ডওয়্যার স্বাস্থ্যের জন্য IPMI। বেশিরভাগ বাস্তব ডিপ্লয়মেন্টে এই দুই পদ্ধতির সংমিশ্রণ ব্যবহার করা হয়।

ফ্রন্টএন্ড কেন বলছে যে Zabbix server চলছে না?

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

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

উভয়ই সম্পূর্ণভাবে সমর্থিত: এই গাইডের মতো MariaDB বা MySQL-এর সাথে zabbix-server-mysql, অথবা PostgreSQL-এর সাথে zabbix-server-pgsql। ছোট ইনস্টলেশনের ক্ষেত্রে কোনটি ব্যবহার করছেন তা খুব একটা গুরুত্বপূর্ণ নয়। বড় ইনস্টলেশনের ক্ষেত্রে, TimescaleDB এক্সটেনশনসহ PostgreSQL হিস্ট্রি টেবিলগুলোকে পার্টিশন করে এবং রক্ষণাবেক্ষণকে অনেক সাশ্রয়ী করে তোলে, যে কারণে বড় সাইটগুলো এটি বেছে নেয়। যেকোনো একটি বেছে নিন এবং সেটিই ব্যবহার করুন, কারণ পরবর্তীতে মাইগ্রেট করতে চাইলে পুরো ডেটা এক্সপোর্ট এবং রি-ইমপোর্ট করতে হবে, শুধু কনফিগারেশন পরিবর্তন করলেই হবে না।

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

কয়েকটি হোস্ট মনিটর করার জন্য একটি সার্ভারে 2 GB RAM একটি বাস্তবসম্মত সর্বনিম্ন সীমা এবং কয়েক ডজন হোস্টের জন্য 4 GB RAM বেশ আরামদায়ক; মেমরির বেশিরভাগ অংশ ডেটাবেস ক্যাশ এবং সার্ভারের পোলার (pollers) ব্যবহার করে। 1 GB RAM-এর VPS-এ এটি চলতে পারে, কিন্তু হিস্ট্রি বৃদ্ধির সাথে সাথে ডেটাবেস মেমরির অভাবে ধীর হয়ে যায়। একশটির বেশি হোস্টের ক্ষেত্রে, ডেটাবেসটিকে আলাদা সার্ভারে সরিয়ে নিন এবং একটি মেশিনে অতিরিক্ত RAM যোগ করার পরিবর্তে এর বাফার পুল টিউন করুন।

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

এটি হতে পারে। যদি আপনার শুধু "সার্ভারটি কি সচল আছে?" তা জানা এবং শেয়ার করার মতো একটি পেজ প্রয়োজন হয়, তবে আপটাইম এবং স্ট্যাটাস মনিটরিংয়ের জন্য Uptime Kuma-এর মতো হালকা টুল দ্রুত সেটআপ করা যায় এবং এক নজরে দেখা সহজ। Zabbix তখনই বেছে নিন যখন আপনার প্রতি-মেট্রিক থ্রেশহোল্ড, ঐতিহাসিক গ্রাফ, টেমপ্লেটেড হোস্ট এবং এসকেলেশন রুলস প্রয়োজন হয়, যা একটি সাধারণ পিঙ্গার (pinger) পুরো ফ্লিটের জন্য দিতে পারে না।