November 7, 2024
Linux

Managing Linux Logs with Logrotate and Rsyslogd

  • June 16, 2023
  • 2 min read
Managing Linux Logs with Logrotate and Rsyslogd

एक सिस्टम प्रशासक के रूप में, Linux सिस्टम के स्वास्थ्य और सुरक्षा को बनाए रखने के लिए लॉग्स का प्रबंधन एक आवश्यक कार्य है। लिनक्स ऑपरेटिंग सिस्टम सिस्टम इवेंट्स और एप्लिकेशन गतिविधियों को रिकॉर्ड करने के लिए विभिन्न लॉग फाइल उत्पन्न करता है। ये लॉग समस्या निवारण, सुरक्षा खतरों की पहचान करने और सिस्टम प्रदर्शन का विश्लेषण करने के लिए उपयोगी हो सकते हैं। हालाँकि, लॉग फ़ाइलें जल्दी से डिस्क स्थान का उपभोग कर सकती हैं और ठीक से प्रबंधित न होने पर बोझिल हो जाती हैं। यहीं पर logrotate और rsyslog जैसे उपकरण काम आते हैं। इस लेख में, हम पता लगाएंगे कि Linux लॉग को प्रभावी ढंग से प्रबंधित करने के लिए logrotate और rsyslog का उपयोग कैसे करें।

Logrotate

लॉगरोटेट एक उपयोगिता है जिसे लॉग फ़ाइलों को घुमाने, उन्हें संपीड़ित करने और पुराने को हटाने के द्वारा प्रबंधित करने के लिए डिज़ाइन किया गया है। यह आम तौर पर दैनिक क्रॉन जॉब के रूप में चलाया जाता है और आकार, समय या दोनों के आधार पर लॉग को घुमाने के लिए कॉन्फ़िगर किया जा सकता है। लॉगरोटेट लॉग फ़ाइलों को प्रबंधनीय रखने का एक तरीका प्रदान करता है, उन्हें बहुत अधिक डिस्क स्थान का उपभोग करने से रोकता है, और उन्हें प्रबंधित करना आसान बनाता है।

Rsyslogd

अधिकांश लिनक्स वितरणों पर लॉगरोटेट डिफ़ॉल्ट रूप से स्थापित होता है। यह जांचने के लिए कि क्या यह आपके सिस्टम पर स्थापित है, निम्नलिखित कमांड चलाएँ:

$ logrotate –version

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

$ sudo apt-get install logrotate

Configuration

लॉगरोटेट को /etc/logrotate.conf पर स्थित कॉन्फ़िगरेशन फ़ाइल का उपयोग करके कॉन्फ़िगर किया गया है। इस फ़ाइल में लॉग रोटेशन के लिए वैश्विक सेटिंग्स हैं। वैश्विक विन्यास फाइल के अलावा, लॉगरोटेट /etc/logrotate.d/ निर्देशिका में स्थित प्रति-लॉग विन्यास फाइल के लिए भी अनुमति देता है।

निम्नलिखित एक साधारण लॉगरोटेट कॉन्फ़िगरेशन फ़ाइल का एक उदाहरण है:

# rotate log files daily

daily

# keep 7 days worth of backlogs

rotate 7

# create new (empty) log files after rotating old ones

create

# compress rotated log files

compress

# don’t rotate the log if it’s empty

notifempty

# include all log files in /var/log directory

/var/log/* {

# rotate logs when they reach 10MB in size

size 10M

# use the gzip compression algorithm

compresscmd /usr/bin/gzip

uncompresscmd /usr/bin/gunzip

compressoptions -9

# don’t rotate the log if it’s less than 1 day old

minage 1

}

उपरोक्त कॉन्फ़िगरेशन फ़ाइल /var/log निर्देशिका में सभी लॉग फ़ाइलों को घुमाएगी जो 10MB से बड़ी हैं या एक दिन से अधिक पुरानी हैं। यह पिछले 7 दिनों की लॉग फ़ाइलों को कंप्रेस करके रखेगा और पुरानी को घुमाने के बाद एक नई (खाली) लॉग फ़ाइल बनाएगा।

Testing

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

$ sudo logrotate -d /etc/logrotate.conf

यह आदेश आपको उन लॉग फ़ाइलों को दिखाएगा जो आपकी कॉन्फ़िगरेशन फ़ाइल के आधार पर घुमाई, संपीड़ित या हटाई जाएंगी।

क्रॉन जॉब के रूप में चल रहा है

एक बार जब आपने लॉगरोटेट कॉन्फ़िगरेशन फ़ाइल का परीक्षण कर लिया है और परिणामों से संतुष्ट हैं, तो आप लॉग रोटेशन प्रक्रिया को स्वचालित करने के लिए लॉग्रोटेट को क्रॉन जॉब के रूप में चला सकते हैं। डिफ़ॉल्ट रूप से, लॉगरोटेट को क्रोन जॉब के रूप में दैनिक चलाने के लिए कॉन्फ़िगर किया गया है। हालाँकि, आप /etc/cron.daily/logrotate फ़ाइल को संशोधित करके आवृत्ति को बदल सकते हैं।

Rsyslog

Rsyslog एक आधुनिक, उच्च-प्रदर्शन लॉगिंग सिस्टम है जो वास्तविक समय में लॉग को संसाधित और अग्रेषित कर सकता है। यह पुराने syslogd डेमॉन के लिए एक प्रतिस्थापन है और फ़िल्टरिंग, दर सीमित करने और टीसीपी/यूडीपी समर्थन जैसी उन्नत सुविधाएं प्रदान करता है। Rsyslog को कई स्रोतों से लॉग एकत्र करने और उन्हें एक केंद्रीकृत स्थान पर संग्रहीत करने या विश्लेषण के लिए किसी अन्य सिस्टम पर अग्रेषित करने के लिए कॉन्फ़िगर किया जा सकता है।

Installation

अधिकांश Linux वितरणों पर डिफ़ॉल्ट रूप से Rsyslog भी स्थापित किया गया है। यह जांचने के लिए कि क्या यह आपके सिस्टम पर स्थापित है, निम्नलिखित कमांड चलाएँ:

$ rsyslogd -v

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

$ sudo apt-get install rsyslog

Configuration

Rsyslog को /etc/rsyslog.conf पर अवस्थित विन्यास फाइल के प्रयोग से विन्यस्त किया गया है। इस फ़ाइल में rsyslog के लिए वैश्विक सेटिंग्स हैं। वैश्विक विन्यास फाइल के अतिरिक्त, rsyslog /etc/rsyslog.d/ निर्देशिका में स्थित प्रति-सेवा विन्यास फाइल के लिए भी अनुमति देता है।

निम्नलिखित सरल rsyslog विन्यास फाइल का एक उदाहरण है:

# Load modules

$ModLoad imuxsock

$ModLoad imjournal

# Set global options

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$FileOwner root

$FileGroup adm

$FileCreateMode 0640

$DirCreateMode 0755

$Umask 0022

# Define log rules

auth,authpriv.* /var/log/auth.log

*.* /var/log/syslog

उपरोक्त कॉन्फ़िगरेशन फ़ाइल प्रमाणीकरण और आधिकारिक सुविधाओं से सभी संदेशों को /var/log/auth.log पर और अन्य सभी संदेशों को /var/log/syslog में लॉग करेगी। यह कुछ वैश्विक विकल्प भी सेट करता है जैसे फ़ाइल स्वामित्व और अनुमतियाँ।

Testing

लॉगरोटेट के समान, सेवा के रूप में चलाने से पहले rsyslog कॉन्फ़िगरेशन फ़ाइल का परीक्षण करना एक अच्छा विचार है। कॉन्फ़िगरेशन फ़ाइल के सिंटैक्स की जांच करने के लिए आप -N1 फ्लैग के साथ rsyslogd कमांड का उपयोग कर सकते हैं। उदाहरण के लिए:

$ sudo rsyslogd -N1

यह कमांड कॉन्फ़िगरेशन फ़ाइल के सिंटैक्स की जाँच करेगा और कंसोल में किसी भी त्रुटि या चेतावनी को प्रिंट करेगा।

सेवा के रूप में चल रहा है

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

$ sudo systemctl start rsyslog

यह कमांड rsyslog सर्विस शुरू करेगा। आप चलाकर सेवा की स्थिति देख सकते हैं:

$ sudo systemctl status rsyslog

यह आदेश आपको दिखाएगा कि सेवा चल रही है या नहीं और कोई त्रुटि या चेतावनी।

निष्कर्ष

अंत में, लिनक्स लॉग का प्रबंधन सिस्टम प्रशासकों के लिए एक आवश्यक कार्य है। लॉग फ़ाइलें जल्दी से डिस्क स्थान का उपभोग कर सकती हैं और ठीक से प्रबंधित न होने पर बोझिल हो सकती हैं। लॉगरोटेट और rsyslog जैसे उपकरण लॉग फ़ाइलों को घुमाकर, उन्हें संपीड़ित करके, और उन्हें एक केंद्रीकृत स्थान पर संग्रहीत करके प्रबंधित करने में मदद कर सकते हैं।

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

Leave a Reply

Your email address will not be published. Required fields are marked *