लिनक्स: लॉगवॉच (8) बहुत शोर है। मैं शोर के स्तर को कैसे नियंत्रित कर सकता हूं?


30

हमारे लिनक्स सिस्टम डिफ़ॉल्ट रूप से लॉगवॉच (8) उपयोगिता चलाते हैं । RedHat / CentOS / SL सिस्टम पर, लॉगवॉच को क्रोनजॉब कहा जाता है /etc/cron.daily/, जो तब परिणामों के साथ एक दैनिक ईमेल भेजता है। इन ईमेल में एक विषय है:

Subject: Logwatch for $HOSTNAME

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

मैं लॉगवॉच द्वारा उत्पन्न शोर की मात्रा को कैसे कम कर सकता हूं, लेकिन फिर भी हमें महत्वपूर्ण समस्याओं को सूचित करने के लिए लॉगवॉच का उपयोग करें?

मैं नीचे अपना जवाब पोस्ट करूंगा, लेकिन मैं यह देखना चाहूंगा कि दूसरों ने क्या किया है।

नोट : मैं FreeBSD पर FreeBSD के बारे में एक समान प्रश्न रखता हूं : आवधिक (8) बहुत शोर है। मैं शोर के स्तर को कैसे नियंत्रित कर सकता हूं?

जवाबों:


39

कुल मिलाकर, लॉगवॉच के लिए उपलब्ध प्रलेखन में पर्याप्त स्पष्टीकरण का अभाव है और अक्सर बहुत अस्पष्ट है। मैंने कुछ उपयोगी उदाहरणों को एक साथ रखा है, और लॉगवॉच के शोर को 95% से कम कर दिया है।

यहाँ मैंने जो पाया है।

ध्यान रखें कि आप कुछ लॉगवॉच प्रलेखन को पा सकते हैं /usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch, और इसमें कुछ उपयोगी उदाहरण हैं।

  1. आरएचईएल / सेंटोस / एसएल पर, डिफ़ॉल्ट लॉगवॉच कॉन्फ़िगरेशन के तहत है /usr/share/logwatch/default.conf/logwatch.conf

    ये सेटिंग्स आपके स्थानीय कॉन्फ़िगरेशन को नीचे रखकर ओवरराइड की जा सकती हैं /etc/logwatch/conf/logwatch.conf। लॉगवॉच को पूरी तरह से 'httpd' और दैनिक डिस्क उपयोग जांच जैसी सेवाओं को अनदेखा करने के लिए कहने के लिए उस फ़ाइल में निम्नलिखित रखें:

    # Don't spam about the following Services
    Service = "-http"
    Service = "-zz-disk_space"
    
  2. कभी-कभी मैं एक विशिष्ट सेवा के लिए लॉगवॉच को पूरी तरह से अक्षम नहीं करना चाहता, मैं बस उन्हें कम शोर करने के लिए परिणामों को ठीक करना चाहता हूं। /usr/share/logwatch/default.conf/services/*.confसेवाओं के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन शामिल है। इन मापदंडों को आपके स्थानीय कॉन्फ़िगरेशन के तहत रखकर ओवरराइड किया जा सकता है /etc/logwatch/conf/services/$SERVICE.conf। दुर्भाग्य से, यहां लॉगवॉच की क्षमता सीमित है, और लॉगवॉच निष्पादन के कई अविवादित पर्ल से भरे हुए हैं। आपकी पसंद निष्पादन योग्य को किसी अन्य चीज़ से बदलना है, या उपयोग करके कुछ सेटिंग्स को ओवरराइड करने का प्रयास करना है /etc/logwatch/conf/services

    उदाहरण के लिए, मेरे पास एक सुरक्षा स्कैनर है जो पूरे नेटवर्क में स्कैन चलाता है। जैसे ही परीक्षण चलता है, सुरक्षा स्कैनर एप्लिकेशन लॉग में कई त्रुटि संदेश उत्पन्न करता है। मैं अपने सुरक्षा स्कैनर से त्रुटियों को नज़रअंदाज़ करना चाहता हूँ, लेकिन फिर भी मुझे अन्य मेजबानों के हमलों की सूचना देनी चाहिए। यह लॉगवॉच में अधिक विस्तार से कवर किया गया है : SSH और PAM चेक के लिए कुछ IP पर ध्यान न दें? । ऐसा करने के लिए, मैं निम्नलिखित को यहाँ रखता हूँ /etc/logwatch/conf/services/sshd.conf:

    # Ignore these hosts
    *Remove = 192.168.100.1
    *Remove = X.Y.123.123
    # Ignore these usernames
    *Remove = testuser
    # Ignore other noise. Note that we need to escape the ()
    *Remove = "pam_succeed_if\(sshd:auth\): error retrieving information about user netscan.*
    

    "

  3. लॉगवॉच आपको नियमित अभिव्यक्तियों को रखकर लॉगवॉच ईमेल से आउटपुट को अलग करने की अनुमति देता है /etc/logwatch/conf/ignore.conf। HOWTO- कस्टमाइज़-लॉगवाच कहता है:

    ign.conf: यह फ़ाइल नियमित अभिव्यक्तियों को निर्दिष्ट करती है, जब लॉगवॉच के आउटपुट से मिलान किया जाता है, जो मिलान लाइन को दबा देगा, चाहे जिस भी सेवा को निष्पादित किया जा रहा हो।

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

  4. इसे स्रोत पर रिप करें (जैसा कि @ user48838 द्वारा सुझाया गया है)। इन संदेशों को कुछ एप्लिकेशन द्वारा उत्पन्न किया जा रहा है, और फिर लॉगवॉच खुशी से आपके लिए परिणाम बता रहा है। इन मामलों में, आप कम लॉग इन करने के लिए एप्लिकेशन को संशोधित कर सकते हैं।

    यह हमेशा वांछनीय नहीं है, क्योंकि कभी-कभी आप चाहते हैं कि पूर्ण लॉग कहीं भेजे जाएं (एक केंद्रीय syslog सर्वर, केंद्रीय आईडीएस सर्वर, स्प्लंक, नागियोस, आदि), लेकिन आप लॉग इन नहीं चाहते हैं कि आप इसके बारे में ईमेल करें। हर सर्वर, हर दिन।


यह वही है जो मैंने किया था, हालांकि अगर मैं सही ढंग से याद करता हूं, तो कुछ सेवाएं थीं (मुझे विश्वास है कि ईमेल अस्वीकार के साथ कुछ करना होगा) जो लॉग से सही ढंग से पार्स नहीं किया जा रहा था और इसलिए इसे किसी अन्य "श्रेणी" में सूचीबद्ध किया जा रहा था और लॉग से पूरी लाइनें ईमेल द्वारा भेजी जा रही थीं। यह बेहद शोर था। इसलिए मैंने केवल लॉगवॉच स्रोत कोड को संपादित किया और संबंधित फ़िल्टर को जोड़ा / बदल दिया और संभवतः प्रति ईमेल 20kb में कटौती की। यह कुछ साल पहले था, इसलिए मुझे यकीन है कि तब से लॉगवॉच में सुधार हुआ है, लेकिन मैंने ऐसा नहीं होने की स्थिति में अपना संस्करण अपडेट नहीं किया है।
माइक

5

हां - लॉगवॉच अक्सर शोर होता है। आपने पहले से ही अक्षम चेकों का उल्लेख किया है।

यदि आप ऐसा नहीं करना चाहते हैं तो आपको कुछ घटनाओं को दिखाई देने से रोकना होगा। उदाहरण के लिए - यह दिलचस्प नहीं है अगर nagios ssh के माध्यम से एक DMZ सिस्टम से जुड़ता है। लेकिन दिलचस्प है अगर ssh के माध्यम से अन्य लॉगिन हैं।

हम ksyslogd के बजाय rsyslog का उपयोग करते हैं (पहले rsyslog स्थापित करें, फिर ksyslogd निकालें)। Rsyslog के साथ आप ठीक-ठीक ट्यून कर सकते हैं कि लॉग में क्या जाता है और क्या नहीं (जैसे एक अभिव्यक्ति का निर्माण करें जो sshd के संदेशों को "nagios कनेक्टेड" से मेल खाता है)। इस तरह से लॉगवॉच केवल उपयोगी जानकारी की सूचना देगा।

एक और मामला xinetd हो सकता है - मैं सफल कनेक्ट के बारे में सूचित नहीं करना चाहता / चाहती हूं - इसे xinetd itelv में कॉन्फ़िगर किया जा सकता है - xinetd के लिए लॉगवॉच-चेक को अक्षम किए बिना।


3

रुचि के एक बिंदु के रूप में मैंने विकल्प 2 का पालन किया, स्टेफन लासिवस्की द्वारा उत्तर दिया गया था, लेकिन मेरे उद्देश्यों के लिए मैं केवल उन सभी शोरों को शामिल करना चाहता था, जो मैं नहीं चाहता था।

मैं vsftpd को कॉन्फ़िगर कर रहा था इसलिए मैंने बनाया /etc/logwatch/conf/services/vsftpd.confऔर इसके बजाय कुछ का उपयोग करने की तरह *Remove = testuserजो पंक्तियों को हटाता है जिसमें वह पाठ शामिल है जिसका testuserउपयोग मैंने उस पंक्ति में किया है *OnlyContains = "testuser"जो केवल उस पाठ सहित पंक्तियों को वापस करता है।

इन 2 लिपियों का उपयोग करके बहुत मूल रूप से काम करते हैं grepऔर grep -v

अंतर यह है कि आप *Removeजितनी चाहें उतनी बार उपयोग कर सकते हैं, लेकिन इसके साथ *OnlyContainsआपको इसे एक बार उपयोग करना होगा यदि आप कुछ और चाहते हैं या कुछ और। तो कई मूल्यों के लिए आप करते हैं*OnlyContains = "testuser|testuser2|testuser3"


1

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


मेरे पास है। हमने एक syslog- एकमात्र समाधान भी माना है, जहाँ हम कुछ शोर को फ़िल्टर करते हैं। हालांकि, सादगी के लिए हम यह देखना चाहते थे कि क्या स्रोत पर इस सामान को नियंत्रित करना संभव है।
स्टीफन लासिवस्की

1
यदि आप इसे स्रोत पर "निपिंग" कर रहे हैं और ऐसा करने में किसी भी दुर्घटना को कम कर रहे हैं, तो आप उपलब्ध होने पर लॉगिंग स्तरों को समायोजित करने के प्रयासों को सीमित करने पर विचार कर सकते हैं।
उपयोगकर्ता 48838

0

मुझे हाल ही में sshd सेवा से आउटपुट को शांत करने की आवश्यकता है। कुछ खंड काफी लंबे थे और विस्तार स्तर निर्धारित करके इसे नियंत्रित नहीं किया जा सकता था।

यह एक आदर्श समाधान नहीं है, लेकिन मैं इसे यहाँ से कॉपी करके sshd स्क्रिप्ट को ओवरराइड कर रहा हूं : /usr/share/logwatch/scripts/services/sshdयहां से:/etc/logwatch/scripts/services/sshd

बेशक, अब आपको उस स्क्रिप्ट फ़ाइल में किसी भी अपडेट को रखना होगा, लेकिन यह आपको आउटपुट पर बहुत अच्छा नियंत्रण देता है। वैकल्पिक रूप से, मुझे लगता है कि आप पाइप सकता है के उत्पादन logwatchकी तरह एक उपकरण के माध्यम से awkया sedबाहर पट्टी आप नहीं करते क्या चाहते हैं, लेकिन वह मेरे लिए कठिन लग रहा था।


0

मेरे पास UNIX & Linux Stackexchange पर एक ही प्रश्न था और यहाँ उत्तर है कि मैंने इसे मेरे लिए निर्धारित किया है:

आप अपने में रेंज पैरामीटर को बदलकर 1 दिन के बजाय 7 दिन देखने के लिए लॉगवाच बता सकते हैं logwatch.conf:

Range = between -7 days and -1 days

आप logwatchइसे साप्ताहिक क्रोन निर्देशिका से दैनिक cronनिर्देशिका में स्थानांतरित करके दैनिक के बजाय साप्ताहिक चलाने के लिए कह सकते हैं :

mv /etc/cron.daily/00logwatch /etc/cron.weekly/

@JeffSchaller को धन्यवाद

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.