2010-03-03 48 views
23

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

मुद्दे हैं:

  • यह केवल पता चलता अंतिम प्रविष्टि
  • वहाँ गंभीर समस्या के स्वीकार करने के लिए एक तरीका हो प्रतीत नहीं होता है और एक अच्छी स्थिति
को मॉनिटर वापसी

क्या नागोस गलत उपकरण है, या हम सिर्फ सेवा निगरानी की स्थापना नहीं कर रहे हैं?

यहाँ मेरी प्रविष्टियों अपने config में

# log file 
define command{ 
     command_name check_log 
     command_line $USER1$/check_log -F /var/log/applications/appcrit.log -O /tmp/appcrit.log -q ? 
} 


# Define the log monitering service 
define service{ 
     name       logfile-check   ; 
     use        generic-service   ; 
     check_period     24x7     ; 
     max_check_attempts    1      ; 
     normal_check_interval   5      ; 
     retry_check_interval   1      ; 
     contact_groups     admins     ; 
     notification_options   w,u,c,r     ; 
     notification_period    24x7     ; 
     register      0      ; 
     } 

define service{ 
     use        logfile-check 
     host_name      localhost 
     service_description    CritLogFile 
     check_command     check_log 
} 
+0

क्या आप अपनी सेवा जांच और अपनी चेक कमांड की एक प्रति पोस्ट कर सकते हैं? –

उत्तर

3

के रूप में वहाँ एक लक्ष्य को प्राप्त करने के कई तरीके हैं, वहाँ भी Consol से एक अच्छा प्लगइन उपलब्ध है: https://labs.consol.de/lang/en/nagios/check_logfiles/

  • regex
  • लॉग रोटेशन का समर्थन करता है

इसका इस्तेमाल करने के लिए समर्थन करता है, आपको एक सीएफजी फ़ाइल की आवश्यकता है, यह ऑरैकल डेटाबेस के लिए एक उदाहरण है

@searches = ({ 
    tag => 'oraalerts', 
options => 'sticky=28800', 
    logfile => '/u01/app/oracle/diag/rdbms/davmdkp/DAVMDKP1/trace/alert_DAVMDKP1.log', 
    criticalpatterns => [ 
     'ORA\-0*204[^\d]',  # error in reading control file 
     'ORA\-0*206[^\d]',  # error in writing control file 
     'ORA\-0*210[^\d]',  # cannot open control file 
     'ORA\-0*257[^\d]',  # archiver is stuck 
     'ORA\-0*333[^\d]',  # redo log read error 
     'ORA\-0*345[^\d]',  # redo log write error 
     'ORA\-0*4[4-7][0-9][^\d]',# ORA-0440 - ORA-0485 background process failure 
     'ORA\-0*48[0-5][^\d]', 
     'ORA\-0*6[0-3][0-9][^\d]',# ORA-6000 - ORA-0639 internal errors 
     'ORA\-0*1114[^\d]',  # datafile I/O write error 
     'ORA\-0*1115[^\d]',  # datafile I/O read error 
     'ORA\-0*1116[^\d]',  # cannot open datafile 
     'ORA\-0*1118[^\d]',  # cannot add a data file 
     'ORA\-0*1122[^\d]',  # database file 16 failed verification check 
     'ORA\-0*1171[^\d]',  # datafile 16 going offline due to error advancing checkpoint 
     'ORA\-0*1201[^\d]',  # file 16 header failed to write correctly 
     'ORA\-0*1208[^\d]',  # data file is an old version - not accessing current version 
     'ORA\-0*1578[^\d]',  # data block corruption 
     'ORA\-0*1135[^\d]',  # file accessed for query is offline 
     'ORA\-0*1547[^\d]',  # tablespace is full 
     'ORA\-0*1555[^\d]',  # snapshot too old 
     'ORA\-0*1562[^\d]',  # failed to extend rollback segment 
     'ORA\-0*162[89][^\d]',  # ORA-1628 - ORA-1632 maximum extents exceeded 
     'ORA\-0*163[0-2][^\d]', 
     'ORA\-0*165[0-6][^\d]', # ORA-1650 - ORA-1656 tablespace is full 
     'ORA\-16014[^\d]',  # log cannot be archived, no available destinations 
     'ORA\-16038[^\d]',  # log cannot be archived 
     'ORA\-19502[^\d]',  # write error on datafile 
     'ORA\-27063[^\d]',   # number of bytes read/written is incorrect 
     'ORA\-0*4031[^\d]',  # out of shared memory. 
     'No space left on device', 
     'Archival Error', 
    ], 
    warningpatterns => [ 
     'ORA\-0*3113[^\d]',  # end of file on communication channel 
     'ORA\-0*6501[^\d]',   # PL/SQL internal error 
     'ORA\-0*1140[^\d]',   # follows WARNING: datafile #20 was not in online backup mode 
     'Archival stopped, error occurred. Will continue retrying', 
    ] 
}); 
3

कुछ भी नहीं गलत तरह से कॉन्फ़िगर होने के रूप में मुझ पर बाहर कूदता है।

डिज़ाइन द्वारा, check_log केवल एक ओके संदेश दिखाएगा, या अंतिम लॉग प्रविष्टि जो अलर्ट ट्रिगर करेगा। यदि आपको एकाधिक प्रविष्टियां देखने की आवश्यकता है, तो आपको प्लगइन को संशोधित करने की आवश्यकता होगी।

हालांकि, मुझे यह तथ्य मिल गया है कि आपको कुछ हद तक रिकवरी नहीं मिल रही है। जिस तरह से check_log काम करता है (मौजूदा संस्करण को पिछले संस्करण की तुलना करके), आपको अगली सेवा जांच पर पुनर्प्राप्ति मिलनी चाहिए। बेशक, जब अंतिम चेक के बाद लॉग में अतिरिक्त मिलान प्रविष्टियां शामिल की गईं।

क्या कोई और सेवा जांच (या कई) को मजबूर करना ठीक हो जाता है?

इसके अलावा, मैं इसका मतलब यह नहीं समझता हूं, लेकिन यह सुनिश्चित करें कि यह वास्तव में खराब है। क्या आपके लॉग को चेक के बीच में अतिरिक्त मिलान प्रविष्टियां मिल रही हैं, जिससे इसे पुनर्प्राप्त नहीं किया जा सकता है? आपका चेक मेल खाता है "?" जो लॉग में कुछ भी नया मैच करेगा। क्या लॉग में और अनजाने में एक मैच के कारण कुछ और (एक गैर-त्रुटि) जोड़ा जा रहा है?

यदि उपरोक्त में से कोई भी मुद्दा नहीं है, तो मैं समीकरणों से नागियो को ले कर इसे कम करने का सुझाव दूंगा। चेक_लॉग मैन्युअल रूप से चलने का प्रयास करें (कमांड लाइन से, लेकिन उसी उपयोगकर्ता के रूप में नागोस के रूप में), और एक अलग oldlog के साथ। एक नया "oldlog" के साथ

  1. रन की जांच - - यह कुछ इस तरह जाना चाहिए प्रारंभ संदेश मिलता है
  2. रन की जांच - ठीक है
  3. मेकअप परिवर्तन
  4. रन की जांच लॉग इन करने की जांच - जांच में विफल रहता है
  5. रन चेक - ठीक है

यदि यह काम नहीं करता है, तो आप लॉग, पुराना लॉग, और चेक_लॉग चेक कैसे कर रहे हैं पर ध्यान केंद्रित करना चाहते हैं।

यदि यह काम करता है, तो यह आपके नागोस कॉन्फ़िगरेशन के साथ किसी समस्या की ओर इंगित करता है।

+0

धन्यवाद। हम जो चाहते हैं उसे करने के लिए हम एक कस्टम पर्ल स्क्रिप्ट लिखने जा रहे हैं। – Kenoyer130

27

नागोस के साथ लॉग की निगरानी के लिए, आम तौर पर लॉग चेकर केवल नए खोज किए गए त्रुटि संदेशों के लिए चेतावनी देता है जब इसे लागू किया जाता है (इसलिए इसे बाद में चलाने पर उन्हें अनदेखा करने के लिए कुछ राज्य बनाए रखना चाहिए)।इसलिए मैं आमतौर पर सेट करें:

max_check_attempts    1 
is_volatile      1 

यह immeidately चेतावनी भेजने के लिए Nagios का कारण बनता है, लेकिन केवल एक बार, और उसके बाद सामान्य करने के लिए वापस जाने के लिए।

मेरा पसंदीदा लॉग चेकर logwarn है, लेकिन मैं पक्षपातपूर्ण हूं क्योंकि मैंने इसे किसी भी मौजूदा लोगों को नहीं ढूंढने के बाद खुद को लिखा था। लॉगवार्न पैकेज में नागियो प्लगइन शामिल है।

+3

कभी प्रतिक्रिया से बेहतर देर से पवित्र! चेक_logfiles के लिए – Kenoyer130

3

एक नागोस प्लगइन है जिसका उपयोग आप लॉग फ़ाइलों की जांच के लिए कर सकते हैं, यह check_logfiles है, यह नियमित अभिव्यक्तियों के लिए फ़ाइल की रेखाओं को स्कैन करने के लिए उपयोग किया जाता है। यह लिंक शो, स्थापित करने और Nagios और opsview http://www.osupport.net/2011/log-files-monitoring-with-nagios-opsview/

+0

+1, यह आमतौर पर बहुत अच्छा है। लेकिन अभी भी त्रुटि पर अंतिम मैच दिखाएगा। नोट: एनआरपीई गंभीर हैकिंग के बिना बहु-लाइन प्रतिक्रियाओं का समर्थन नहीं करता है। –

1

मेरा मानना ​​है कि वहाँ अब एक असली Nagios प्लगइन प्रभावी रूप से लॉग पर नज़र रखता है कि के लिए यह कॉन्फ़िगर करने के तरीके।

http://support.nagios.com/forum/viewtopic.php?f=6&t=8851&p=42088&hilit=unixautomation#p42088

उस पृष्ठ पर Nagios प्लगइन के मुख पृष्ठ है Nagios Log Monitor

Your [ commands.cfg file ] will contain: 

define command { 
          command_name   NagiosLogMonitor 
          command_line   $USER1$/NagiosLogMonitor $HOSTNAME$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ '$ARG5$' '$ARG6$' $ARG7$ $ARG8$ $ARG9$ $ARG10$ 
} 


OR 


define command { 
          command_name   NagiosLogMonitor 
          command_line   $USER1$/NagiosLogMonitor $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ '$ARG5$' '$ARG6$' $ARG7$ $ARG8$ $ARG9$ $ARG10$ 
} 




Your [ services.cfg file ] will look similar to: 

define service { 
         check_command       NagiosLogMonitor!logrobot!autofig!/var/log/proteus.log!15!500.html!500 Internal Server Error!1!2!-foundn 
         max_check_attempts     1 
         service_description      500_ERRORS_LOGCHECK 
         host_name         sky.blat-01.net,sky.blat-02.net,sky.blat-03.net 
         use            fifteen-minute-interval 
} 
0

Nagios अब एक समाधान है कि Nagios कोर, ग्यारहवीं के साथ कसकर एकीकृत करता है, आदि

Nagios Log Server है जो अपने बुनियादी ढांचे में किसी भी सिस्टम पर किसी भी लॉग फ़ाइल पर किसी भी प्रश्न पर सतर्क रह सकते हैं।