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

Nagios-এ Windows হোস্ট যোগ করা: একটি ধাপে ধাপে গাইড

এই আর্টিকেলটি বর্ণনা করে কীভাবে Windows মেশিনের "প্রাইভেট" সার্ভিস যেমন CPU লোড, ডিস্ক ব্যবহার, মেমরি ব্যবহার, সার্ভিস, ইত্যাদি মনিটর করতে হয়। এর জন্য, আমাদের Windows মেশিনে NSClient++ অ্যাড-অন ইনস্টল করতে হবে। অ্যাড-অনটি Windows মেশিন এবং Nagios-এর মধ্যে একটি প্রক্সি হিসেবে কাজ করে এবং check_nt প্লাগইন-এর সাথে যোগাযোগ করে একচুটি সার্ভিস মনিটর করে। check_nt প্লাগইন ইতিমধ্যে Nagios মনিটরিং সার্ভার-এ ইনস্টল করা থাকা উচিত, যদি আপনি আমাদের Nagios ইনস্টলেশন গাইড অনুসরণ করেছেন।

আমরা অনুমান করি আপনি ইতিমধ্যে Nagios সার্ভার ইনস্টল ও কনফিগার করেছেন আমাদের নিচের গাইড অনুযায়ী।

  1. RHEL/CentOS 6.x/5.x এবং Fedora 19/18/17-এ Nagios 4.0.1 ইনস্টল করার পদ্ধতি
  2. Nagios মনিটরিং সার্ভারে Linux হোস্ট যোগ করা

Windows মেশিন মনিটর করতে আপনাকে কিছু ধাপ অনুসরণ করতে হবে এবং সেগুলো হলো:

  1. Windows মেশিনে NSClient++ অ্যাড-অন ইনস্টল করুন।
  2. Windows মেশিন মনিটর করার জন্য Nagios সার্ভার কনফিগার করুন।
  3. Windows মেশিন মনিটরিং-এর জন্য নতুন হোস্ট এবং সার্ভিস ডেফিনিশন যোগ করুন।
  4. Nagios সার্ভিস রিস্টার্ট করুন।

এই গাইডকে সিম্পল এবং সহজ করার জন্য, Nagios ইনস্টলেশনে ইতিমধ্যে কয়েকটি কনফিগারেশন করা থাকছে।

  1. একটি check_nt কমান্ড ডেফিনিশন ইতিমধ্যে command.cfg ফাইলে যোগ করা আছে। এই ডেফিনিশন কমান্ডটি check_nt প্লাগইন দ্বারা Windows সার্ভিস মনিটর করতে ব্যবহৃত হয়।
  2. একটি windows-server হোস্ট টেমপ্লেট ইতিমধ্যে templates.cfg ফাইলে তৈরি করা আছে। এই টেমপ্লেট আপনাকে নতুন Windows হোস্ট ডেফিনিশন যোগ করতে দেয়।

উপরের দুটি ফাইল "command.cfg" এবং "templates.cfg" /usr/local/nagios/etc/objects/ ডিরেক্টরিতে পাওয়া যায়। আপনি আপনার রিকোয়ারমেন্ট অনুযায়ী সেগুলো মডিফাই এবং নিজস্ব ডেফিনিশন যোগ করতে পারেন। কিন্তু, আমি আপনাকে এই আর্টিকেলে বর্ণিত ইনস্ট্রাকশন ফলো করার পরামর্শ দিই এবং আপনি ২০ মিনিটের কম সময়ে সফলভাবে আপনার উইন্ডোজ হোস্ট মনিটর করতে পারবেন।

স্টেপ ১: Windows মেশিনে NSClient++ এজেন্ট ইনস্টলেশন

রিমোট উইন্ডোজ হোস্ট-এ NSClient++ এজেন্ট ইনস্টল করতে নিচের ইনস্ট্রাকশন ফলো করুন। প্রথমে লেটেস্ট স্টেবল ভার্সন NSClient++ 0.3.1 অ্যাড-অন সোর্স ফাইল ডাউনলোড করুন, যা নিচের লিংকে পাওয়া যাবে।

  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" সেটি চেক করুন। যদি ইতিমধ্যে অ্যালাউড না থাকে, দয়া করে বক্সটি চেক করুন যাতে এটি অ্যালাউড হয়।

Nagios-এ Windows হোস্ট যোগ করা: একটি ধাপে ধাপে গাইড

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-এ Windows হোস্ট যোগ করা: একটি ধাপে ধাপে গাইড

Nagios মনিটর উইন্ডোজ হোস্ট

এখন পর্যন্ত এতটুকু, আমার আগামী আর্টিকেলে আমি দেখাব কীভাবে Printer এবং Switches Nagios মনিটরিং সার্ভার-এ যোগ করতে হয়। আপনি যদি Windows হোস্ট Nagios-এ যোগ করার সময় কোনো সমস্যা মুখোমুখি হন। দয়া করে কমেন্ট সেকশনে আপনার কোয়েরি কমেন্ট করুন, তখন পর্যন্ত Tecmint.com-এর সাথে টিউন্ড থাকুন আরও এমনকী মূল্যবান আর্টিকেলের জন্য।

  1. Xcode-এ এক্সেপশন ব্রেকপয়েন্ট যোগ করা

  2. HTML DOM Table deleteTHead() মেথড: টেবিল হেডার মুছে ফেলা

  3. HTML DOM compareDocumentPosition() মেথড

  4. C++-এ আইসোমরফিক ট্রি (Isomorphic Tree) চেক করা