rsyslog를 사용하여 syslog 메시지를 별도의 MySQL 테이블로 구문 분석 \ (ReceivedAt,

상자 중 위해 rsyslog 에 모든 것을 덤프 SystemEvents(당신이 제공하는 기본 스키마를 사용하는 경우) ‘시스템 로그 데이터베이스에서 테이블. 인바운드 메시지를 별도의 데이터베이스 테이블로 필터링하기 위해 정규식을 사용하고 싶습니다.

나는 이것을 가지고 놀았지만, 이것을 달성하는 가장 좋은 방법 (또는 심지어 기능하는 방법)을 알아내는 데 어려움을 겪고 있습니다.

내 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 테이블은 rsyslog와 함께 제공되는 기본 SystemEvents 테이블의 복제본입니다.


버전 정보 :

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.



답변

한 번 봐 복용 튜토리얼, 나는 어떤 차이를 볼 수 없습니다.

그러나 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.


답변

불행히도 rsyslog 문서는 일부 영역에서 완전히 완성되지 않았거나 이해하기 쉽지 않습니다. 지난 몇 주 동안 rsyslog / MySQL / regex 작업에 많은 시간을 보냈습니다.

정규식 일치시키려는 로그 라인, 원하는 테이블의 스키마 등을 샘플로 게시 할 수 있습니까? 게시 한 내용이 제대로 작동하는 것 같습니다. 무엇을 필터링하려고하십니까? 기본 스키마를 사용할 수 있습니까?

참고로, RogueAPs라는 테이블을 사용하고 있음을 알 수는 없었습니다. 사용중인 공급 업체를 모르지만 Meru Networks 및 BlueSocket 컨트롤러의 인증 로그 메시지에 대한 정규식 규칙이 있습니다.


답변