এই লেখায় আমরা দেখাব কিভাবে Zabbix-এ ping ব্যবহার করে ICMP-ভিত্তিক নেটওয়ার্ক ডিভাইস মনিটরিং কনফিগার করা যায়। এটি এজেন্টলেস মনিটরিং-এর সবচেয়ে সহজ এবং জনপ্রিয় টাস্ক, যখন আপনি আপনার মনিটরিং সার্ভার থেকে একটি রিমোট সার্ভার, ওয়েবসাইট বা নেটওয়ার্ক ডিভাইসের উপলব্ধতা চেক করতে চান। Zabbix হোস্টে ICMP রিকোয়েস্ট পাঠাতে পারে, এবং কোনো রেসপন্স না পেলে, রেসপন্স টাইম অনেক বেশি হলে বা বড় পার্সেন্টেজ প্যাকেট লস হলে, এটি ড্যাশবোর্ডে একটি সতর্কতা দেখায়। ICMP প্রোটোকল মূলত নেটওয়ার্ক হোস্টের উপলব্ধতা চেক করতে ব্যবহৃত হয়। Ping এবং traceroute/tracert টুলসও ICMP প্রোটোকলের ওপর কাজ করে।
উইন্ডোজ সার্ভার এবং লিনাক্সে ICMP পিং-এর জন্য পোর্ট খোলা
ডিফল্টভাবে, উইন্ডোজ সার্ভারে ICMP পিং অনুমোদিত থাকে, কিন্তু যদি যেকোনো কারণে এটি ডিজেবল হয়ে থাকে, তবে আপনি netsh বা পাওয়ারশেল ব্যবহার করে এটিকে ইনএবল করতে পারেন। অ্যাডমিনিস্ট্রেটর হিসেবে কমান্ড প্রম্পট চালান এবং নিচের কমান্ড দিন:
netsh advfirewall firewall add rule name="ICMP Allow" protocol=icmpv4:8,any dir=in action=allow
এখানে একই পাওয়ারশেল কমান্ড (বিল্ট-ইন NetSecurity মডিউল ব্যবহার করা হয়েছে):
Set-NetFirewallRule -Name FPS-ICMP-ERQ-In -Enabled True -Profile Any -Action Allow
এই কমান্ডগুলো ইনবাউন্ড ICMP ইকো রিকোয়েস্ট অনুমোদন করার একটি ফায়ারওয়াল নিয়ম তৈরি করবে।
আধুনিক লিনাক্স ডিস্ট্রোতে ইনবাউন্ড ICMP ট্রাফিকও অনুমোদিত থাকে। যদি যেকোনো কারণে এটি ডিজেবল থাকে, তবে iptables-এ এই নিয়মগুলো যোগ করুন। রুট/সুডো অধীনে নিচের কমান্ডগুলো চালান:
# iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
# iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
এইভাবে, আপনি iptables নিয়ম চেইনের শুরুতে ICMP রিকোয়েস্ট অনুমোদন করার নিয়ম যোগ করবেন।
আপনি যদি firewalld ব্যবহার করেন ফায়ারওয়াল নিয়ম ম্যানেজ করতে, তবে ICMP পিং রিপ্লাই নিচেরভাবে অনুমোদন করতে পারেন:
# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
Fping ইনস্টল করা এবং Zabbix-এ পাথ সেট করা
Fping Zabbix-এ ICMP চেক করার জন্য ব্যবহৃত হয়। অধিকাংশ লিনাক্স ডিস্ট্রোতে, ইউটিলিটিটি প্রি-ইনস্টলড থাকে, তাই প্রথমে অপারেটিং সিস্টেমে এটি আছে কিনা চেক করুন। আপনার Zabbix সার্ভারে যান এবং এই কমান্ড চালান:
fping -v
যদি এই টুল না থাকে, তবে প্যাকেজ ম্যানেজার ব্যবহার করে ইনস্টল করুন:
- Ubuntu-তে:
apt install fping - CentOS-এ, আপনাকে প্রথমে EPEL রিপোজিটরি কানেক্ট করতে হবে এবং তারপর টুলটি ইনস্টল করতে হবে:
yum install fping
ডিফল্টভাবে, টুলটি /usr/bin/fping-এ ইনস্টল হয়। যদি fping-এ কোনো সমস্যা হয়, তবে নিশ্চিত করুন যে এটি /usr/bin/fping-এ অবস্থিত। যদি এটি অন্য ডিরেক্টরিতে থাকে, তবে zabbix_server.conf-এ নিচের লাইনগুলো পরিবর্তন করে fping-এর সঠিক পাথ নির্দিষ্ট করুন।
FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6
Zabbix-এ ICMP পিং টেমপ্লেট
ডিফল্টভাবে, Zabbix-এ Template Module ICMP Ping থাকে। (Zabbix ভার্সনের উপর ভিত্তি করে এর নাম ভিন্ন হতে পারে।) আমরা নেটওয়ার্ক হোস্ট মনিটর করতে ICMP পিং ব্যবহার করার জন্য এই টেমপ্লেটটি ব্যবহার করব। টেমপ্লেটে ৩টি চেক থাকে:
- ICMP ping — ICMP-এর মাধ্যমে নোড উপলব্ধতা;
- ICMP loss — হারানো প্যাকেটের পার্সেন্টেজ;
- ICMP response time — ICMP পিং রেসপন্স টাইম মিলিসেকেন্ডে।
Key কলামে নজর দিন: icmpping, icmppngloss এবং icmppingse, এগুলো Zabbix-এ বিল্ট-ইন কী। এগুলো Simple checks, অর্থাৎ এগুলো wykon করতে Zabbix Agent ব্যবহার করা হয় না।
Zabbix Agent ইনস্টলেশন ছাড়া Simple checks-এর পূর্ণ তালিকা দেখুন: https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/simple_checks
টেমপ্লেটে উপরের কীগুলো এবং তাদের মান ট্র্যাক করে ৩টি ট্রিগার রয়েছে।
কিছু ট্রিগার, যেমন High ICMP ping response time, টেমপ্লেট ম্যাক্রোস ব্যবহার করে। আপনি Macros ট্যাবে ম্যাক্রো মানগুলো পরিবর্তন করতে পারেন।
যে মানগুলো ট্রিগার সক্রিয় করবে:
- গত ৫ মিনিটের ICMP Ping Loss-এর প্যাকেট লস পার্সেন্টেজ ($ICMP_LOSS_WARN) ২০-এর বেশি হলে।
- গত ৫ মিনিটের Response Time মান ($ICMP_RESPONSE_TIME_WARN) ১৫০ মিলিসেকেন্ডের বেশি হলে।
Zabbix-এ হোস্ট তৈরি করা এবং ICMP পিং টেমপ্লেট সংযুক্ত করা
এই লেখায় আমি উইন্ডোজ সার্ভার চলে একটি হোস্ট মনিটর কনফিগার করব। আসুন এই হোস্টকে Zabbix-এ যোগ করি। Configuration -> Hosts -> Create Host-এ যান।
একটি হোস্ট নাম দিন, একটি গ্রুপ সিলেক্ট করুন এবং Agent interfaces-এ আপনার হোস্টের IP ঠিকানা দিন।
দ্রষ্টব্য. Zabbix গ্রুপ হোস্ট সর্ট করতে সাহায্য করে। গ্রুপের নাম মনিটরিং-কে প্রভাবিত করে না।
Templates ট্যাব খুলুন, Select ক্লিক করুন এবং Template Module ICMP Ping বেছে নিন।
টেমপ্লেট সিলেকশন ফর্মে Add ক্লিক করুন এবং হোস্ট তৈরি শেষ করতে Add ক্লিক করুন।
হোস্টের সাথে সংযুক্ত সকল টেমপ্লেট Templates কলামে দেখানো হয়।
তারপর মনিটরিং কীভাবে কাজ করছে তা চেক করুন। Monitoring -> Latest data-এ যান, Hosts-এর পাশে Select ক্লিক করুন এবং আপনার তৈরি করা হোস্টটি সিলেক্ট করুন।
হোস্ট থেকে প্রাপ্ত লেটেস্ট ডেটা Last Value কলামে দেখানো হয়।
এছাড়া, আপনি কোনো স্পেসিফিক ভ্যালুর জন্য গ্রাফ দেখতে পারেন, যেমন ICMP Response time. Graph ক্লিক করুন।
কোনো সমস্যা থাকলে, আপনি Zabbix ড্যাশবোর্ডে একটি নোটিফিকেশন দেখবেন।
ICMP পিং আপনার নেটওয়ার্ক ডিভাইসের উপলব্ধতা চেক করার সবচেয়ে সহজ বেসিক চেক। আপনি যদি আপনার ডিভাইসের більше ডেটা পেতে চান, তবে Zabbix Agent, SNMP বা অন্যান্য প্রোটোকল ব্যবহার করে ডিভাইস মনিটরিং কনফিগার করতে পারেন।