ग्रेलॉग 2 सर्वर पर लॉग भेज रहा है


11

मेरे पास सिर्फ एक ग्रेलाग 2 सर्वर है और मैं अपने मुख्य सर्वर से सभी लॉग को ग्रेवलॉग सर्वर पर भेजना चाहता हूं। मैं मुख्य सर्वर के लिए लॉगिंग सक्षम की गई और मेरे graylog सर्वर से लॉग भेज रहा हूँ जोड़कर *.* @logs.example.com:1337करने के लिए /etc/rsyslog.conf

मैं क्या चाहता हूँ कि मेरे सभी अपाचे लॉग जमा करें, सिस्टम लॉग (SSH लॉगइन के लिए, लॉग किए गए लॉग इन) और किसी भी अन्य लॉग को मुझे मॉनिटर करने की आवश्यकता है।

अपाचे लॉग्स के लिए, मुझे रेल लॉग्स भी पसंद हैं। मेरी साइटें स्थित हैं /srv/www/और फिर संरचना sitename.com/public_htmlऔर है sitename.com/logs। मेरे पास सर्वर पर कई साइटें हैं और मैं सभी त्रुटियों को देखने और उनमें से कुछ अच्छे रेखांकन बनाने का एक आसान तरीका चाहूंगा, इसलिए मैं ग्रेलाग 2 का उपयोग क्यों करना चाहता हूं ...

लॉग फ़ोल्डर में लॉग फ़ाइलें हैं access.logऔर error.log

रेल लॉग में होगा sitename.com/public_html/log। इसमें शामिल है production.log


यहाँ सवाल क्या है? यदि आपके पास rsyslog स्थापित है, तो आप इसका उपयोग Rlog / Apache लॉग को Gloglog2 ( rsyslog.com/doc/imfile.html ) पर भेजने के लिए कर सकते हैं
बहुपद

क्या आपने यह कोशिश की है? docs.graylog.org/en/1.2/pages/collector.html
zx1986

जवाबों:


10

यह पुराना है, लेकिन मुझे लगा कि मैं इस विधि को लिखूंगा जिसका उपयोग मैं कम / मध्यम यातायात साइट के लिए करता हूं (यह नहीं जानता कि यह भारी ट्रैफ़िक साइट के लिए अच्छा काम करेगा):

Apache में, मैं एक CustomLog प्रारूप को परिभाषित करता हूं, graylog2_accessजो GELF प्रारूप में प्रवेश लॉग को प्रारूपित करता है और फिर मैं GlogF संदेशों को GreyF2 के इनपुट में भेजने के लिए nc के माध्यम से लॉग डेटा को पाइप करके ग्रेग्लोग 2 के माध्यम से अपना लॉग भेजता हूं।

यहाँ कस्टम प्रारूप है जो इसे (मानव पठनीय) बनाता है:

{ 
 "version": "1.1",
 "host": "%V",
 "short_message": "%r",
 "timestamp": %{%s}t,
 "level": 6,
 "_user_agent": "%{User-Agent}i",
 "_source_ip": "%a",
 "_duration_usec": %D,
 "_duration_sec": %T,
 "_request_size_byte": %O,
 "_http_status": %s,
 "_http_request_path": "%U",
 "_http_request": "%U%q",
 "_http_method": "%m",
 "_http_referer": "%{Referer}i"
}

Apache config के लिए, यहाँ एक कॉपी / पेस्ट संस्करण है:

LogFormat "{ \"version\": \"1.1\", \"host\": \"%V\", \"short_message\": \"%r\", \"timestamp\": %{%s}t, \"level\": 6, \"_user_agent\": \"%{User-Agent}i\", \"_source_ip\": \"%a\", \"_duration_usec\": %D, \"_duration_sec\": %T, \"_request_size_byte\": %O, \"_http_status\": %s, \"_http_request_path\": \"%U\", \"_http_request\": \"%U%q\", \"_http_method\": \"%m\", \"_http_referer\": \"%{Referer}i\" }" graylog2_access

फिर अपने मेजबान विन्यास में:

CustomLog "|nc -u graylogserver 12201" graylog2_access

+1 एक अच्छा! हमारे सिस्टम में से एक पर यह कोशिश करनी है, लेकिन इसके बजाय ERROR के साथ।
हेंक

@ हेनक - यदि आप त्रुटि लॉग के लिए एक प्रारूप करते हैं, तो कृपया मुझे बताएं, मैं चाहता हूं, लेकिन अभी तक समय नहीं लिया गया है। इसके अलावा, कुछ बातों की जानकारी के लिए serverfault.com/questions/582510/… की जांच करें, जो मैं बाद में चला।
ईटीएल

5

आप इस सरल कमांड का उपयोग करके अपनी लॉग फाइल को gylog2 सर्वर पर भेज सकते हैं:

tail -F -q $yourlogfile |   while read -r line ; do   echo "<7> $hostnamesendingthelog $line" | nc -w 1 -u $graylogserver 514;   done;

मैं यह निर्धारित करने के लिए मुख्य रूप से परीक्षण प्रयोजनों के लिए उपयोग करता हूं कि क्या मेरा लॉग प्रारूप ग्रेग्लोग 2 में आसान क्वेरी के लिए अनुकूलित है। उत्पादन के उपयोग के लिए आप rsyslog या syslog- एनजी सेट नहीं करेंगे।

आप शायद अपनी रेल लॉग फ़ाइल को पूँछ सकते हैं और देख सकते हैं कि क्या होता है।


मुझे इस उत्तर की सरलता पसंद है: सीधा और कोई अतिरिक्त उपकरण नहीं। मुझे नहीं पता कि लॉग फ़ाइल टाइमस्टैम्प के बारे में क्या करना है: शायद कुछ भी नहीं करना है और उन्हें कोई फर्क नहीं पड़ता?
टेक्सस-ब्रोंस

2

Graylog2 केवल दो स्वरूपों में लॉग स्वीकार करता है: मानक syslog और ग्रेलाग विस्तारित लॉग प्रारूप (उर्फ GELF)। डिस्क पर मनमाने ढंग से लॉग लॉग का उपभोग करने और इसे आपके लिए उपयोगी रूप में अनुवाद करने के लिए कुछ तृतीय-पक्ष प्रक्रिया की आवश्यकता होती है।

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


2
: Rsyslog आसानी से लॉग पढ़ सकते हैं rsyslog.com/doc/imfile.html
बहुपद

1
जबकि rsyslog इनपुट के रूप में अन्य फ़ाइलों का उपयोग कर सकता है, लॉगस्टैश का उपयोग करने से ग्रोक के पूर्वनिर्धारित नियमित अभिव्यक्तियों ( logstash.net/docs/1.0.17/filters/grok ) को लॉग संदेशों में कुछ संरचना प्राप्त करने में सक्षम होने का लाभ मिलता है और सादा नहीं है।
जोशी

syslog- एनजी क्लीनर विन्यास के साथ rsyslog की तुलना में ऐसा ही कर सकता है: loggly.com/support/sending-data/log-from/syslog/syslog-ng/…
HVNSweeting

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