কম্পিউটার টিউটোরিয়াল

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

Zabbix একটি এন্টারপ্রাইজ-লেভেল ওপেন-সোর্স মনিটরিং সিস্টেম। বর্তমানে Zabbix সবচেয়ে জনপ্রিয় এবং শক্তিশালী ফ্রি মনিটরিং সিস্টেমের একট। এর সহজ ইনস্টলেশন এবং কনফিগারেশনের কারণে Zabbix সাড়ে সैकরা হোস্ট সহ বড় ইনফ্রাস্ট্রাকচার থেকে ছোট কনফিগারেশন পর্যন্ত মনিটর করতে ব্যবহার করা যায়। এই আর্টিকেলে আমরা দেখাব কীভাবে Linux Ubuntu এবং CentOS-এ Zabbix Server 5.0 ওয়েব ইন্টারফেস সহ ইনস্টল ও বেসিক কনফিগারেশন করা যায়, এবং Windows বা Linux-এ Zabbix এজেন্ট ইনস্টল করে নতুন হোস্ট মনিটরিং-এর জন্য যোগ করা যায়।

নিচে Zabbix সার্ভার ড্যাশবোর্ড ইন্টারফেসের স্ক্রিনশট দেখানো হয়েছে।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

সিম্পল এবং ইজি-টু-কনফিগার Zabbix C ভাষায় লেখা (সার্ভার, প্রক্সি, এবং এজেন্ট) এবং PHP (ফ্রন্টএন্ড)। Zabbix Server এবং Zabbix Proxy শুধু Linux সিস্টেমে কাজ করে। Zabbix এজেন্টrů অană Mehrheitupported অপারেটিং সিস্টেম এবং প্ল্যাটফর্মে ইনস্টল করা যায়।

Zabbix সার্ভার ইনস্টলেশনে থাকে:

  • একটি zabbix_server বাইনারি (সাধারণত সার্ভিস হিসেবে কাজ করে);
  • MySQL/MariaDB/PostgreSQL ডেটাবেস;
  • Apache2/Nginx ওয়েব সার্ভার PHP হ্যান্ডলারের সাথে;
  • ফ্রন্টএন্ড সাইট ফাইল (.php, .js, .css, ইত্যাদি)।

সাধারণত অপারেটিং স্কিম এমন:

  • Zabbix এজেন্ট সার্ভারে ডেটা পাঠায়;
  • Zabbix সার্ভার ডেটা গ্রহণ ও প্রসেস করে;
  • প্রাপ্ত ডেটা নির্দিষ্ট শর্ত পূরণ করলে একটি ট্রিগার এক্টিভেট হয়;
  • এক্টিভেটেড ট্রিগার বোঝায় সমস্যা আছে। ফ্রন্টএন্ডে (সাইটে) নোটিফিকেশন আসে, এবং কনফিগারেশনের উপর নির্ভর করে ইমেইল নোটিফিকেশন পাঠানো হয় বা কিছু অ্যাকশন নেওয়া হয় (উদাহরণস্বরূপ, মনিটর করা সার্ভিস রিস্টার্ট করা)।

Zabbix সব পরিচিত প্রোটোকল সাপোর্ট করে। এক্সটার্নাল স্ক্রিপ্ট ব্যবহার করার ক্ষমতার কারণে Zabbix যেকোনো এক্সিকিউটেবল স্ক্রিপ্ট/বাইনারি থেকে ডেটা এক্সিকিউট ও রিসিভ করতে পারে।

Linux-এ (Ubuntu, CentOS) Zabbix Server কীভাবে ইনস্টল করবেন?

এই টিউটোরিয়ালে আমরা দেখাব কীভাবে প্যাকেজ ম্যানেজার ব্যবহার করে Linux-এ (Ubuntu Server 18.04 এবং CentOS 8) Zabbix Server ইনস্টল করতে হয়।

https://www.zabbix.com/download ডাউনলোড পেজে যান এবং আপনার Linux ডিস্ট্রিবিউশনের সাথে মেলে রিপোজিটরি সিলেক্ট করুন। সব পপুলার Linux ডিস্ট্রোর জন্য রেডি প্যাকেজ আছে।

উদাহরণস্বরূপ, Ubuntu 18.04-এ Zabbix ইনস্টল করতে ক héritage করুন:

Zabbix Version (5.0 LTS) → OS Distribution (Ubuntu) → OS Version (18.04 Bionic) → Database (MySQL) → Web server (Nginx or Apache)।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

রিপোজিটরি ডাউনলোড ও যোগ করুন:

# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
# dpkg -i zabbix-release_5.0-1+bionic_all.deb
# apt update

তারপর প্রয়োজনীয় প্যাকেজগুলো ইনস্টল করুন:

# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

CentOS 8/RHEL 8-এ Zabbix ইনস্টল করতে লেটেস্ট Zabbix ভার্সনের রিপোজিটরি কানেক্ট করুন (Zabbix 4.0/5.0 LTS ব্রাঞ্চ বা লেটেস্ট Zabbix 5.2 থেকে ইনস্টল করা যায়):

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all

মান লেন যে nginx, MySQL/MariaDB, php এবং php-fpm ইতিমধ্যে সার্ভারে ইনস্টল করা আছে। dnf (yum) প্যাকেজ ম্যানেজার দিয়ে Zabbix Server এবং এজেন্ট ইনস্টল করুন:

# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent

তারপর MySQL-এ Zabbix-এর জন্য ডেটাবেস তৈরি করুন (MySQL-এর বদলে PostgreSQL ব্যবহার করতে চাইলে আগের কমান্ডগুলোতে 'mysql'-এর বদলে 'pgsql' বসান)।

ডেটাবেস তৈরি করুন এবং Zabbix যেই ইউজার অ্যাকাউন্ট দিয়ে DB এক্সেস করবে সেটির পারমিশন দিন:

mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ZabbixP@$$w0rd';
mysql> quit;

Zabbix ডেটাবেস ইম্পোর্ট করুন। ইউজার তৈরি করার সময় দেওয়া পাসওয়ার্ড দিন।

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix

/etc/zabbix/zabbix_server.conf এডিট করুন, তৈরি করা ইউজারের পাসওয়ার্ড স্পেসিফাই করুন:

DBPassword=Zabbix_User_Password

আমার কেসে nginx ব্যবহার করা হয়েছে ওয়েব সার্ভার হিসেবে, তাই nginx.conf এডিট করুন নিচের লাইনগুলো আনকমেন্ট করে:

# listen 80;
# server_name example.com;

# সরিয়ে example.com-এর জায়গায় Zabbix সার্ভার হোস্টনেম দিন। আমার কেসে এটি test.zabbix.local।

Apache-এর জন্য /etc/httpd/conf.d/zabbix.conf এডিট করুন।

PHP-তে টাইম জোন সেট করুন। /etc/zabbix/php-fpm.conf-এ নিচের লাইন আনকমেন্ট করুন:

php_value[date.timezone] = Canada/Pacific

নিশ্চিত করুন যে আপনার Zabbix সার্ভারের টাইম একটি विश्वস্ত NTP সোর্সের সাথে সিঙ্ক্রোনাইজড।

/etc/php.ini-এও এই PHP প্যারামিটারগুলো সেট করা যায়:

memory_limit 128M
upload_max_filesize 8M
post_max_size 16M
max_execution_time 300
max_input_time 300
max_input_vars 10000

zabbix-server সার্ভিসকে স্টার্টআপে যোগ করুন এবং চালু করুন:

# systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm
# systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm

Zabbix Web Interface কনফিগারেশন

এখন Zabbix ফ্রন্টএন্ড (ওয়েব ইন্টারফেস) কনফিগার করতে হবে। ব্রাউজারে আগে নির্দিষ্ট করা Zabbix সার্ভার URL খুলুন। আমার কেসে এটি test.zabbix.local (বা আপনি যে ডোমেন স্পেসিফাই করেছেন। মনে রাখবেন হোস্ট ফাইল বা DNS সার্ভারে রেজিস্টার করতে হবে)। ইনস্টলার রিকোয়ারমেন্টগুলোর পাশে OK দেখাচ্ছে কিনা নিশ্চিত করুন।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

ডেটাবেস কানেকশন প্যারামিটার এবং DB-তে কানেক্ট করার ইউজার ক্রেডেনশিয়াল দিন। আগে তৈরি করা ইউজারনেম এবং পাসওয়ার্ড ব্যবহার করুন।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

আপনার Zabbix সার্ভারের নাম দিন। ডিফল্ট পোর্ট – TCP 10051 রেখে দেওয়া ভালো।

ডিফল্টভাবে Zabbix দুটি নেটওয়ার্ক পোর্ট ব্যবহার করে:

  • TCP 10050 — প্যাসিভ এজেন্ট পোর্ট, যা Zabbix সার্ভার ক্লায়েন্টদের পোল করতে ব্যবহার করে;
  • TCP 10051 — পোর্ট যেটি দিয়ে Zabbix সার্ভার ক্লায়েন্টদের (এ্যাক্টিভ এজেন্ট) থেকে ডেটা গ্রহণ করে।

ফায়ারওয়ালে এই পোর্টগুলো খোলা রাখতে ভুলবেন না। উদাহরণস্বরূপ, CentOS-এ চলমান Zabbix সার্ভারে firewalld-এ পোর্ট খোলা:

# firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} –permanent

এজেন্টে শুধু পোর্ট 10050 খোলা দিলে চলবে:

# firewall-cmd --permanent --add-port=10050/tcp

Firewalld রিস্টার্ট করুন:

# firewall-cmd –reload

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

তারপর Next Step এবং Finish ক্লিক করুন। ইনস্টলেশনের পর লগ-ইন প্রম্পট আসবে। ডিফল্ট লগ-ইন Admin, ডিফল্ট পাসওয়ার্ড zabbix (এটা পরিবর্তন করুন)।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

Zabbix Server ইনস্টলেশন সম্পন্ন।

অন্য OS-এ Zabbix Server ইনস্টলেশনের ধাপে ধাপে ইনস্ট্রাকশন, সোর্স কোড থেকে zabbix-server বিল্ড করার গাইড বা ডকার কন্টেইনারে চালানোর গাইড পাবেন https://www.zabbix.com/download-এ।

Zabbix কনফিগার করা যায় Active Directory LDAP ব্যবহার করে ইউজার অথেন্টিকেশন এর জন্য।

Windows-এ Zabbix Agent কীভাবে ইনস্টল করবেন?

চলুন Windows-এ চলমান একটি সার্ভারে Zabbix এজেন্ট ইনস্টল করি এবং আমাদের Zabbix মনিটরিং সার্ভারে যোগ করি। Windows-এ Zabbix এজেন্ট ডাউনলোড করতে: https://www.zabbix.com/download_agents. Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

আপনার প্রয়োজনীয় এজেন্ট ভার্সন সিলেক্ট করুন। আমি msi (amd64) বেছে নিচ্ছি (OpenSSL ছাড়া)। যদি GPO বা SCCM দিয়ে ডোমেন সার্ভার/কম্পিউটারে Zabbix Agent ইনস্টল করতে চান, তবে বাইনারি এবং কনফিগারেশন ফাইলসহ ZIP আর্কাইভ ডাউনলোড করতে পারেন।

ইনস্টলার চালু করুন, লাইসেন্স অগ্রিমেন্ট এক্সেপ্ট করুন এবং Zabbix সার্ভারের সাথে কানেকশনের সেটিংস দিন। লক্ষ্য করুন "Server or Proxy for active checks" ফিল্ডে আমি IP ঠিকানা IP:PORT ফরম্যাটে দিয়েছি। যেহেতু ডিফল্ট পোর্ট রেখেছি, আমি দিয়েছি 192.168.20.30:10051।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

কয়েকবার Next ক্লিক করুন, তারপর Install ক্লিক করুন।

নিশ্চিত করুন যে এজেন্ট ইনস্টল হয়েছে। সার্ভিস তালিকাতে Zabbix Agent দেখতে পাবেন।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

আপনার Zabbix সার্ভারের IP ঠিকানা থেকে ইনবাউন্ড কানেকশন Windows Firewall-এ আপনার Windows হোস্টে অনুমতি দিন:

New-NetFirewallRule -DisplayName "ZabbixMonitoring" –RemoteAddress 192.168.20.30 -Direction Inbound -Protocol TCP –LocalPort 10050 -Action Allow

Zabbix Server-এ নতুন হোস্ট কীভাবে যোগ করবেন?

এজেন্টটি কাজ করছে কিনা নিশ্চিত করতে testnode2 হোস্ট আপনার Zabbix সার্ভারে যোগ করুন এবং কিছু চেক (টেমপ্লেট) অ্যাসাইন করুন।

নোট: Zabbix-এ দুটি টাইপের চেক থাকে:

  • Passive — Zabbix সার্ভার এজেন্ট থেকে কিছু ডেটা রিকোয়েস্ট করে;
  • Active — এজেন্ট সার্ভারে ডেটা পাঠায়।

এজেন্ট ইনস্টলেশনের সময় আমরা সার্ভারকে IP:PORT ফরম্যাটে এক্টিভ চেকের জন্য স্পেসিফাই করেছিলাম।

Zabbix ওয়েব ইন্টারফেস দিয়ে নতুন মনিটরিং হোস্ট যোগ করা যায়। Configuration → Hosts-এ যান।

Create host ক্লিক করুন এবং ডিটেইলস ফিল-আপ করুন। লক্ষ্য করুন Host name অবশ্যই ডিভাইস হোস্টনেম বা এজেন্ট কনফিগারেশন ফাইলের Hostname প্যারামিটারের মানযে মিলতে হবে।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

Templates ট্যাবে বিল্ট-ইন Windows টেমপ্লেটগুলো যোগ করুন। Zabbix-এ টেমপ্লেট হলো ভ্যালু, ট্রিগার, গ্রাফ এবং ডিসকভেরি রুলের সেট যা এক বা একাধিক হোস্টে অ্যাসাইন করা যায়।

বিল্ট-ইন টেমপ্লেটগুলোর লেবেলে "active" থাকে, মানে এক্টিভ চেক ব্যবহার হবে।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

Add ক্লিক করুন। সার্ভার এবং এজেন্ট একে অপরকে দেখতে কয়েক মিনিট লাগতে পারে, তাই 기다 না করে Zabbix Agent সার্ভিস testnode2-এ রিস্টার্ট করুন এবং এজেন্ট লগ দেখুন (C:\Program Files\Zabbix Agent\zabbix_agentd.txt)।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

"started [active checks #1]" মেসেজ বোঝায় হোস্টের জন্য কিছু এক্টিভ চেক সার্ভারে পাওয়া গেছে। তারপর আপনার Zabbix সার্ভার এজেন্ট থেকে যে ডেটা পেল তা দেখুন। Monitoring → Latest Data-এ যান এবং Hosts ফিল্ডে হোস্ট সিলেক্ট করুন।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

এই সেকশনে সিলেক্ট করা হোস্ট বা হোস্ট গ্রুপের লেটেস্ট ডেটা দেখানো হয় যা Zabbix সার্ভার পেয়েছে।

লক্ষ্য করুন আমার কেসে Zabbix ড্যাশবোর্ডে একটি নোটিফিকেশন আছে যে BITS সার্ভিস চলছে না। এই নোটিফিকেশন এসেছে কারণ আমরা বিল্ট-ইন টেমপ্লেটগুলো হোস্টে অ্যাসাইন করেছি। টেমপ্লেটের একটিতে BITS চেক আছে, এবং করেসপন্ডিং ট্রিগার এক্টিভেট হয়েছে কারণ BITS সার্ভিস Running স্টেটে নেই।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

Windows-এ Agent কনফিগারেশন সম্পন্ন।

Linux-এ Zabbix Agent ইনস্টল করা

Linux-এ Zabbix Agent ইনস্টল করা যাক। Ubuntu Server 18.04-এ প্যাকেজ ম্যানেজার দিয়ে Zabbix Agent ইনস্টল করতে Zabbix repo ডাউনলোড ও ইনস্টল করুন। তারপর রিপোজিটরি থেকে Zabbix Agent ইনস্টল করুন:

# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo apt update
# sudo apt -y install zabbix-agent

CentOS-এ রিপোজিটরি যোগ করে Zabbix Agent ইনস্টল করতে এই কমান্ডগুলো ব্যবহার করুন:

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
# dnf install zabbix-agent

Zabbix এজেন্ট শুরু করার আগে কনফিগারেশন ফাইল /etc/zabbix/zabbix_agentd.conf এডিট করুন। এক্টিভ চেকের জন্য আপনার Zabbix সার্ভারের IP ঠিকানা দিন।

Server=IP
ServerActive=192.168.20.30:10051
Hostname=testagent

তারপর এজেন্ট সার্ভিস শুরু করুন:

# service zabbix-agent start

নিশ্চিত করুন যে এজेंट সফলভাবে শুরু হয়েছে।

# cat /var/log/zabbix/zabbix_agentd.log

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

"cannot parse list of active checks" লাইনটি বোঝায় সার্ভারে হোস্টের জন্য কোনো এক্টিভ চেক নেই।

Windows এজেন্টের মতো আপনার Linux হোস্ট Zabbix-এ যোগ করুন। আপনার Zabbix সার্ভারের হোস্ট সেটিংসের Host name প্যারামিটার লক্ষ্য করুন: এটা অবশ্যই Zabbix Agent কনফিগারেশন ফাইলে স্পেসিফাই করা Hostname প্যারামিটারের সাথে মিলতে হবে। উপরের কনফিগ ফাইলে আমি হোস্ট নাম দিয়েছিলাম testagent।

Zabbix ইনস্টলেশন এবং বেসিক কনফিগারেশন গাইড

আপনার Zabbix এজেন্ট রিস্টার্ট করুন এবং লগ চেক করুন। নিশ্চিত করুন যে এজেন্ট থেকে ডেটা আপনার Zabbix সার্ভারে এসেছে। Linux-এ Zabbix Agent কনফিগারেশন সম্পন্ন।
পরবর্তী আর্টিকেলে আমরা Zabbix-এ ICMP Ping দিয়ে এজেন্টলেস হোস্ট অভেইলেবিলিটি মনিটরিং দেখব।

  1. MariaDB: ইনস্টলেশন এবং পারফরম্যান্স অপ্টিমাইজেশন

  2. CentOS/RHEL-এ PostgreSQL ইনস্টল ও কনফিগারেশন

  3. সেরা গাইড: ম্যাক OS X-এ Page Up এবং Page Down

  4. 4K বনাম Ultra HD: পার্থক্য বুঝতে কমপ্লিট গাইড