स्वैचडॉग - लिनक्स में रियल-टाइम में सिंपल लॉग फाइल वॉचर


स्वैचडॉग (" सिंपल वॉच डॉग ") यूनिक्स जैसी प्रणालियों जैसे लिनक्स पर सक्रिय लॉग फाइल की निगरानी के लिए एक सरल पर्ल स्क्रिप्ट है। यह आपके लॉग को नियमित अभिव्यक्ति के आधार पर देखता है जिसे आप कॉन्फ़िगरेशन फ़ाइल में परिभाषित कर सकते हैं। आप इसे कमांड लाइन से या पृष्ठभूमि में चला सकते हैं, डेमॉन मोड विकल्प का उपयोग करके किसी भी टर्मिनल से अलग कर सकते हैं।

ध्यान दें कि कार्यक्रम को मूल रूप से स्वैच (" सिंपल वॉचर ") कहा जाता था, लेकिन नाम बदलने के लिए पुरानी स्विस घड़ी कंपनी के एक अनुरोध ने डेवलपर को इसका नाम बदलकर swatchdog

महत्वपूर्ण रूप से, स्वैचडॉग यूनिक्स के syslog सुविधा द्वारा निर्मित लॉग देखने के लिए एक स्क्रिप्ट से विकसित हुआ है, और यह किसी भी प्रकार के लॉग के बारे में निगरानी रख सकता है।

लिनक्स में स्वैच कैसे स्थापित करें

पैकेज स्वैचडॉग पैकेज के माध्यम से मुख्यधारा लिनक्स वितरण के आधिकारिक रिपॉजिटरी से एक पैकेज के रूप में स्थापित करने के लिए उपलब्ध है "दिखाया swatch "।

$ sudo apt install swatch	[On Ubuntu/Debian]
$ sudo yum install epel-release && sudo yum install swatch	[On RHEL/CentOS]
$ sudo dnf install swatch	[On Fedora 22+]

स्वैचडॉग का सबसे नवीनतम संस्करण स्थापित करने के लिए, आपको किसी भी लिनक्स वितरण में निम्न आदेशों का उपयोग करके इसे स्रोत से संकलित करने की आवश्यकता है।

$ git clone https://github.com/ToddAtkins/swatchdog.git
$ cd swatchdog/
$ perl Makefile.PL
$ make
$ sudo make install
$ sudo make realclean

एक बार जब आप स्वैच इंस्टॉल कर लेते हैं, तो आपको इसकी कॉन्फ़िगरेशन फ़ाइल (डिफ़ॉल्ट स्थान /home/mial/.swatchdogrc या .swatchrc ) बनाने की आवश्यकता होती है। , यह निर्धारित करने के लिए कि पैटर्न के मिलान के लिए किस प्रकार के अभिव्यक्ति पैटर्न देखने चाहिए और किस प्रकार की कार्रवाई की जानी चाहिए।

$ touch /home/tecmint/.swatchdogrc
OR
$ touch /home/tecmint/.swatchrc

इस फ़ाइल में अपनी नियमित अभिव्यक्ति जोड़ें और प्रत्येक पंक्ति में एक कीवर्ड और मान होना चाहिए (कभी-कभी वैकल्पिक), जिसे स्थान या एक समान <कोड> (=) चिह्न द्वारा अलग किया जाता है। आपको एक पैटर्न निर्दिष्ट करना होगा और एक पैटर्न के मिलान होने पर एक कार्रवाई (एस) करनी होगी।

हम एक सरल कॉन्फ़िगरेशन फ़ाइल का उपयोग करेंगे, आप उदाहरण के लिए, स्वैचडॉग मैन पेज में अधिक विकल्प पा सकते हैं।

watchfor  /sudo/
	echo red
	[email , subject="Sudo Command"

यहां, हमारी नियमित अभिव्यक्ति शाब्दिक स्ट्रिंग है - "sudo" , का अर्थ है किसी भी समय स्ट्रिंग sudo लॉग फ़ाइल में दिखाई दिया, लाल पाठ में टर्मिनल पर मुद्रित होगा और मेल लिया जाने वाला कार्य निर्दिष्ट करें, जो टर्मिनल पर मिलान किए गए पैटर्न को प्रतिध्वनित करना है और ग्रहणशील रूप से निर्दिष्ट पते पर एक ई-मेल भेजना है।

आपके द्वारा इसे कॉन्फ़िगर किए जाने के बाद, स्वैचडॉग डिफ़ॉल्ट रूप से /var/log/syslog लॉग फ़ाइल को पढ़ता है, यदि यह फ़ाइल मौजूद नहीं है, तो यह /var/log/संदेश पढ़ता है।

$ swatch     [On RHEL/CentOS & Fedora]
$ swatchdog  [On Ubuntu/Debian]

आप निम्न उदाहरण में दिखाए गए -c ध्वज का उपयोग करके एक अलग कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट कर सकते हैं।

सबसे पहले एक स्वैच कॉन्फ़िगरेशन डायरेक्टरी और एक फाइल बनाएं।

$ mkdir swatch
$ touch swatch/secure.conf

अगला, विफल लॉगिन प्रयासों की निगरानी के लिए फ़ाइल में निम्नलिखित कॉन्फ़िगरेशन जोड़ें, SSH लॉगिन प्रयास विफल, /var/लॉग/सुरक्षित लॉग फ़ाइल से SSH लॉगिन सफल।

watchfor /FAILED/
echo red
[email , subject="Failed Login Attempt"

watchfor /ROOT LOGIN/
echo red
[email , subject="Successful Root Login"

watchfor /ssh.*: Failed password/
echo red
[email , subject="Failed SSH Login Attempt"

watchfor /ssh.*: session opened for user root/ 
echo red
[email , subject="Successful SSH Root Login"

अब -c और लॉग फ़ाइल का उपयोग करके कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करके स्वैच चलाएं जैसा कि दिखाया गया है -t ध्वज का उपयोग करके।

$ swatchdog -c ~/swatch/secure.conf -t /var/log/secure

इसे पृष्ठभूमि में चलाने के लिए, - daemon ध्वज का उपयोग करें; इस मोड में, इसे किसी भी टर्मिनल से अलग किया जाता है।

$ swatchdog ~/swatch/secure.conf -t /var/log/secure --daemon  

अब स्वैच कॉन्फ़िगरेशन का परीक्षण करने के लिए, विभिन्न टर्मिनल से सर्वर में लॉगिन करने का प्रयास करें, आप निम्न आउटपुट को टर्मिनल पर प्रिंट करते हुए देखते हैं, जहां स्वैचडॉग चल रहा है।

*** swatch version 3.2.3 (pid:16531) started at Thu Jul 12 12:45:10 BST 2018

Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)

आप विभिन्न लॉग फ़ाइलों की निगरानी के लिए कई स्वैच प्रक्रियाएं भी चला सकते हैं।

$ swatchdog -c ~/site1_watch_config -t /var/log/nginx/site1/access_log --daemon  
$ swatchdog -c ~/messages_watch_config -t /var/log/messages --daemon
$ swatchdog -c ~/auth_watch_config -t /var/log/auth.log --daemon

अधिक जानकारी के लिए, स्वैचडॉग मैन पेज देखें।

$ man swatchdog

Swatchdog SourceForge रिपोजिटरी: https://sourceforge.net/projects/swatch/

निम्नलिखित कुछ अतिरिक्त लॉग मॉनिटरिंग गाइड हैं जो आपको उपयोगी लगेंगे:

  1. 4 Ways to Watch or Monitor Log Files in Real Time
  2. How to Create a Centralized Log Server with Rsyslog
  3. Monitor Server Logs in Real-Time with “Log.io” Tool
  4. lnav – Watch and Analyze Apache Logs from a Linux Terminal
  5. ngxtop – Monitor Nginx Log Files in Real Time in Linux

स्वैचडॉग यूनिक्स-जैसे सिस्टम जैसे लिनक्स के लिए एक सरल सक्रिय लॉग फ़ाइल निगरानी उपकरण है। इसे आज़माएं और अपने विचार साझा करें या टिप्पणी अनुभाग में कोई भी प्रश्न पूछें।