এই আর্টিকেলটি বর্ণনা করে কীভাবে Windows মেশিনের "প্রাইভেট" সার্ভিস যেমন CPU লোড, ডিস্ক ব্যবহার, মেমরি ব্যবহার, সার্ভিস, ইত্যাদি মনিটর করতে হয়। এর জন্য, আমাদের Windows মেশিনে NSClient++ অ্যাড-অন ইনস্টল করতে হবে। অ্যাড-অনটি Windows মেশিন এবং Nagios-এর মধ্যে একটি প্রক্সি হিসেবে কাজ করে এবং check_nt প্লাগইন-এর সাথে যোগাযোগ করে একচুটি সার্ভিস মনিটর করে। check_nt প্লাগইন ইতিমধ্যে Nagios মনিটরিং সার্ভার-এ ইনস্টল করা থাকা উচিত, যদি আপনি আমাদের Nagios ইনস্টলেশন গাইড অনুসরণ করেছেন।
আমরা অনুমান করি আপনি ইতিমধ্যে Nagios সার্ভার ইনস্টল ও কনফিগার করেছেন আমাদের নিচের গাইড অনুযায়ী।
- RHEL/CentOS 6.x/5.x এবং Fedora 19/18/17-এ Nagios 4.0.1 ইনস্টল করার পদ্ধতি
- Nagios মনিটরিং সার্ভারে Linux হোস্ট যোগ করা
Windows মেশিন মনিটর করতে আপনাকে কিছু ধাপ অনুসরণ করতে হবে এবং সেগুলো হলো:
- Windows মেশিনে NSClient++ অ্যাড-অন ইনস্টল করুন।
- Windows মেশিন মনিটর করার জন্য Nagios সার্ভার কনফিগার করুন।
- Windows মেশিন মনিটরিং-এর জন্য নতুন হোস্ট এবং সার্ভিস ডেফিনিশন যোগ করুন।
- Nagios সার্ভিস রিস্টার্ট করুন।
এই গাইডকে সিম্পল এবং সহজ করার জন্য, Nagios ইনস্টলেশনে ইতিমধ্যে কয়েকটি কনফিগারেশন করা থাকছে।
- একটি check_nt কমান্ড ডেফিনিশন ইতিমধ্যে command.cfg ফাইলে যোগ করা আছে। এই ডেফিনিশন কমান্ডটি check_nt প্লাগইন দ্বারা Windows সার্ভিস মনিটর করতে ব্যবহৃত হয়।
- একটি windows-server হোস্ট টেমপ্লেট ইতিমধ্যে templates.cfg ফাইলে তৈরি করা আছে। এই টেমপ্লেট আপনাকে নতুন Windows হোস্ট ডেফিনিশন যোগ করতে দেয়।
উপরের দুটি ফাইল "command.cfg" এবং "templates.cfg" /usr/local/nagios/etc/objects/ ডিরেক্টরিতে পাওয়া যায়। আপনি আপনার রিকোয়ারমেন্ট অনুযায়ী সেগুলো মডিফাই এবং নিজস্ব ডেফিনিশন যোগ করতে পারেন। কিন্তু, আমি আপনাকে এই আর্টিকেলে বর্ণিত ইনস্ট্রাকশন ফলো করার পরামর্শ দিই এবং আপনি ২০ মিনিটের কম সময়ে সফলভাবে আপনার উইন্ডোজ হোস্ট মনিটর করতে পারবেন।
স্টেপ ১: Windows মেশিনে NSClient++ এজেন্ট ইনস্টলেশন
রিমোট উইন্ডোজ হোস্ট-এ NSClient++ এজেন্ট ইনস্টল করতে নিচের ইনস্ট্রাকশন ফলো করুন। প্রথমে লেটেস্ট স্টেবল ভার্সন NSClient++ 0.3.1 অ্যাড-অন সোর্স ফাইল ডাউনলোড করুন, যা নিচের লিংকে পাওয়া যাবে।
- https://sourceforge.net/projects/nscplus/
লেটেস্ট স্টেবল ভার্সন ডাউনলোড হলে, NSClient++ ফাইলগুলো আনজিপ করুন একটি নতুন C:\NSClient++ ডিরেক্টরিতে।
এখন Start Screen –> Run –> 'cmd' টাইপ করে এন্টার চাপিয়ে একটি MS-DOS কমান্ড প্রম্পট খুলুন এবং C:\NSClient++ ডিরেক্টরিতে চেঞ্জ করুন।
C:\NSClient++
এরপর, সিস্টেমে NSClient++ সার্ভিস রেজিস্টার করুন নিচের কমান্ড দিয়ে।
nsclient++ /install
শেষে, NSClient++ systray ইনস্টল করুন নিচের কমান্ড দিয়ে।
nsclient++ SysTray
Windows Services Manager খুলুন এবং NSClient-এ রাইট ক্লিক করুন, Properties-এ যান এবং 'Log On' ট্যাবে ক্লিক করুন এবং যেই চেকবক্সে লেখা আছে "Allow service to interact with the desktop" সেটি চেক করুন। যদি ইতিমধ্যে অ্যালাউড না থাকে, দয়া করে বক্সটি চেক করুন যাতে এটি অ্যালাউড হয়।
NSClient++ ইনস্টল করুন
NSC.INI ফাইল খুলুন যা অবস্থিত C:\NSClient++ ডিরেক্টরিতে এবং "modules" সেকশনে ডিফাইন করা সকল মডিউল আনকমেন্ট করুন, CheckWMI.dll এবং RemoteConfiguration.dll ছাড়া।
[modules] ;# NSCLIENT++ MODULES ;# A list with DLLs to load at startup. ; You will need to enable some of these for NSClient++ to work. ; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ; * * ; * N O T I C E ! ! ! - Y O U H A V E T O E D I T T H I S * ; * * ; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! FileLogger.dll CheckSystem.dll CheckDisk.dll NSClientListener.dll NRPEListener.dll SysTray.dll CheckEventLog.dll CheckHelpers.dll ;CheckWMI.dll ; ; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS! ;RemoteConfiguration.dll ; NSCA Agent is a new beta module use with care! ;NSCAAgent.dll ; LUA script module used to write your own "check deamon" (sort of) early beta. ;LUAScript.dll ; Script to check external scripts and/or internal aliases, early beta. ;CheckExternalScripts.dll ; Check other hosts through NRPE extreme beta and probably a bit dangerous! :) ;NRPEClient.dll
"Settings" সেকশনে "allowed_hosts" আনকমেন্ট করুন এবং আপনার Nagios মনিটরিং সার্ভার-এর IP অ্যাড্রেস ডিফাইন করুন বা ব্ল্যাঙ্ক রেখে দিন যেকোনো হোস্ট কানেক্ট করার জন্য।
[Settings] ;# ALLOWED HOST ADDRESSES ; This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons. ; If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password). ; The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access allowed_hosts=172.16.27.41
"NSClient" সেকশনে "port" আনকমেন্ট করুন এবং ডিফল্ট পোর্ট '12489'-এ সেট করুন। Windows Firewall-এ '12489' পোর্ট খোলা আছে কিনা নিশ্চিত করুন।
[NSClient] ;# NSCLIENT PORT NUMBER ; This is the port the NSClientListener.dll will listen to. port=12489
শেষে, NSClient++ সার্ভিস স্টার্ট করুন নিচের কমান্ড দিয়ে।
nsclient++ /start
যদি সঠিকভাবে ইনস্টল ও কনফিগার করা থাকে, আপনি সিস্টেম ট্রে-এ একটি নতুন আইকন দেখবেন হলুদ গোলাকারে যার ভেতরে কালো 'M' আছে।
স্টেপ ২: Nagios সার্ভার কনফিগার করা এবং Windows হোস্ট যোগ করা
এখন Nagios সার্ভার-এ লগইন করুন এবং Nagios কনফিগারেশন ফাইলে কিছু অবজেক্ট ডেফিনিশন যোগ করুন নতুন Windows মেশিন মনিটর করার জন্য। windows.cfg ফাইল Vi এডিটর দিয়ে এডিট করার জন্য খুলুন।
[root@tecmint]# vi /usr/local/nagios/etc/objects/windows.cfg
Windows মেশিনের জন্য একটি স্যাম্পল হোস্ট ডেফিনিশন ইতিমধ্যে ডিফাইন করা আছে, আপনি সিম্পলি হোস্ট ডেফিনিশন পরিবর্তন করতে পারেন host_name, alias, এবং address ফিল্ড আপনার Windows মেশিনের উপযুক্ত মান দিয়ে।
###############################################################################
###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################
###############################################################################
# Define a host for the Windows machine we'll be monitoring
# Change the host_name, alias, and address to fit your situation
define host{
use windows-server ; Inherit default values from a template
host_name winserver ; The name we're giving to this host
alias My Windows Server ; A longer name associated with the host
address 172.31.41.53 ; IP address of the host
}
নিচের সার্ভিসগুলো ইতিমধ্যে windows.cfg ফাইলে যোগ ও এনেবল করা আছে। আপনি যদি আরও কিছু সার্ভিস ডেফিনিশন যোগ করতে চান যা মনিটর করা দরকার, আপনি সাবলেই সেগুলো একই কনফিগারেশন ফাইলে যোগ করতে পারেন। host_name উপরের স্টেপে ডিফাইন করা host_name-এর সাথে সব সার্ভিসের জন্য পরিবর্তন করতে ভুলবেন না।
define service{
use generic-service
host_name winserver
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
Add the following service definition to monitor the uptime of the Windows server.
define service{
use generic-service
host_name winserver
service_description Uptime
check_command check_nt!UPTIME
}
Add the following service definition to monitor the CPU utilization on the Windows server and generate a CRITICAL alert if the 5-minute CPU load is 90% or more or a WARNING alert if the 5-minute load is 80% or greater.
define service{
use generic-service
host_name winserver
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
Add the following service definition to monitor memory usage on the Windows server and generate a CRITICAL alert if memory usage is 90% or more or a WARNING alert if memory usage is 80% or greater.
define service{
use generic-service
host_name winserver
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
Add the following service definition to monitor usage of the C:\ drive on the Windows server and generate a CRITICAL alert if disk usage is 90% or more or a WARNING alert if disk usage is 80% or greater.
define service{
use generic-service
host_name winserver
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
Add the following service definition to monitor the W3SVC service state on the Windows machine and generate a CRITICAL alert if the service is stopped.
define service{
use generic-service
host_name winserver
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
Add the following service definition to monitor the Explorer.exe process on the Windows machine and generate a CRITICAL alert if the process is not running.
define service{
use generic-service
host_name winserver
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
শেষে, windows.cfg ফাইল আনকমেন্ট করুন /usr/local/nagios/etc/nagios.cfg-এ।
[root@tecmint]# vi /usr/local/nagios/etc/nagios.cfg
# Definitions for monitoring a Windows machine cfg_file=/usr/local/nagios/etc/objects/windows.cfg
শেষে, Nagios কনফিগারেশন ফাইল যাচাই করুন যেকোনো এরর জন্য।
[root@tecmint]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
যদি ভেরিফিকেশন প্রসেস যেকোনো এরর মেসেজ থ্রো করে, সেই এররগুলো ফিক্স করুন যতক্ষণ না ভেরিফিকেশন প্রসেস কোনো এরর মেসেজ ছাড়া কমপ্লিট হয়। একবার আপনি সেই এররগুলো ফিক্স করলে, Nagios সার্ভিস রিস্টার্ট করুন।
[root@tecmint]# service nagios restart Running configuration check...done. Stopping nagios: done. Starting nagios: done.
এখন Nagios মনিটরিং ওয়েব ইন্টারফেসে যান "https://Your-server-IP-address/nagios" বা "https://FQDN/nagios" এবং ইউজারনেম "nagiosadmin" এবং পাসওয়ার্ড দিন। চেক করুন যে রিমোট উইন্ডোজ হোস্ট যোগ হয়েছে এবং মনিটর করা হচ্ছে।
Nagios মনিটর উইন্ডোজ হোস্ট
এখন পর্যন্ত এতটুকু, আমার আগামী আর্টিকেলে আমি দেখাব কীভাবে Printer এবং Switches Nagios মনিটরিং সার্ভার-এ যোগ করতে হয়। আপনি যদি Windows হোস্ট Nagios-এ যোগ করার সময় কোনো সমস্যা মুখোমুখি হন। দয়া করে কমেন্ট সেকশনে আপনার কোয়েরি কমেন্ট করুন, তখন পর্যন্ত Tecmint.com-এর সাথে টিউন্ড থাকুন আরও এমনকী মূল্যবান আর্টিকেলের জন্য।