Rsyslog के साथ अलग-अलग MySQL तालिकाओं में संदेश को पार्स करें


10

बॉक्स से बाहर rsyslogSystemEvents `Syslog डेटाबेस के भीतर तालिका में सब कुछ डंप करेगा (यदि आप प्रदान डिफ़ॉल्ट डिफ़ॉल्ट का उपयोग करते हैं)। मैं इनबाउंड संदेशों को अलग डेटाबेस तालिकाओं में फ़िल्टर करने के लिए एक नियमित अभिव्यक्ति का उपयोग करना चाहूंगा।

मैंने इसके साथ खेला है, लेकिन मुझे इसे पूरा करने के लिए सबसे अच्छा तरीका है (या यहां तक ​​कि ऐसा काम करता है)।

मेरे rsyslog.conf में:

$template wireless, \
 "insert into RogueAPs \
 (ReceivedAt, DeviceReportedTime, Facility, Priority, FromHost, Message) \
 VALUES('%timegenerated%', '%timereported%', '%syslogfacility%', '%syslogpriority%', '%fromhost-ip%', '%msg%');", \ 
 stdsql

if $msg contains 'subtype=wireless' then :ommysql:127.0.0.1,Syslog,dbusername,dbpassword;wireless

*.* :ommysql:127.0.0.1,Syslog,dbusername,dbpassword

यह मेरा नवीनतम प्रयास था, लेकिन मैं फंस गया हूं।

(RogueAPs तालिका डिफ़ॉल्ट SystemEvents तालिका का एक क्लोन है जो rsyslog के साथ जहाज है)


संस्करण की जानकारी:

shell# /usr/local/sbin/rsyslogd -v
rsyslogd 5.5.5, compiled with:
        FEATURE_REGEXP:                         Yes
        FEATURE_LARGEFILE:                      No
        FEATURE_NETZIP (message compression):   Yes
        GSSAPI Kerberos 5 support:              No
        FEATURE_DEBUG (debug build, slow code): No
        Atomic operations supported:            Yes
        Runtime Instrumentation (slow code):    No

See http://www.rsyslog.com for more information.

जवाबों:


1

इस ट्यूटोरियल को देखने से , मुझे कोई अंतर नहीं दिखता।

लेकिन rsyslog से टेम्पलेट दस्तावेज़ीकरण पर एक नज़र रखना , पैरामीटर के लिए सेटिंग के आधार पर mysql के साथ एक अंतर प्रतीत होता है NO_BACKSLASH_ESCAPES

डॉक्स से:

sql - format the string suitable for a SQL statement in MySQL format. This will 
replace single quotes ("'") and the backslash character by their backslash-escaped
counterpart ("\'" and "\\") inside each field. Please note that in MySQL
configuration, the NO_BACKSLASH_ESCAPES mode must be turned off for this format to
work (this is the default).

stdsql - format the string suitable for a SQL statement that is to be sent to a
standards-compliant sql server. This will replace single quotes ("'") by two single
quotes ("''") inside each field. You must use stdsql together with MySQL if in MySQL
configuration the NO_BACKSLASH_ESCAPES is turned on.

0

Rsyslog दस्तावेज़ीकरण, दुर्भाग्यवश, कुछ क्षेत्रों में बहुत पूर्ण या आसान नहीं है। मैंने पिछले कुछ हफ्तों का अच्छा हिस्सा rsyslog / MySQL / regex सामान पर काम किया है।

क्या आप उस लॉग लाइन का एक नमूना पोस्ट कर सकते हैं जिसे आप regex मिलान करने की कोशिश कर रहे हैं, तालिका का स्कीमा जिसे आप इसमें जाना चाहते हैं, आदि? आपके द्वारा पोस्ट किया गया सामान ऐसा लगता है कि यह काम करना चाहिए ... क्या आप फ़िल्टर करने की कोशिश कर रहे हैं? और क्या डिफ़ॉल्ट स्कीमा आपके लिए उपयोगी है?

एक साइड नोट पर, मैं मदद नहीं कर सका, लेकिन ध्यान दें कि आप RogueAPs नामक तालिका का उपयोग कर रहे हैं। मुझे नहीं पता कि आप किस विक्रेता का उपयोग कर रहे हैं, लेकिन मेरे पास मेरु नेटवर्क्स और ब्लूस्केट कंट्रोलर्स के प्रमाणीकरण लॉग संदेशों के लिए regex नियम हैं।

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