2014-07-11 6 views
0

우리는 원격 컴퓨터에 logstash와 로그를위한 별도의 서버를 가지고 있습니다. logstash 용 lumberjack의 플러그인을 사용하여 원격 컴퓨터에서 동일한 로그를 logstash 서버로 발송합니다. 이에 따라 다른 분야에 대한 즉 다른 구문 분석 패턴을 값, 그래서 내 파일 입력의 경로 변수에서 필드를 추출 할logstash 서버 컴퓨터에서 glob 사용 하시겠습니까?

input { 
     file{ 
       path => "/home/Desktop/Logstash-Input/**/*_log" 
     } 
} 

output { 

     lumberjack { 
       hosts => ["xx.xx.xx.xx"] 
       port => 4545 
       ssl_certificate => "./logstash.pub" 
    } 

:

클라이언트 설정 (로그가 존재) :

나는이 시도 적용될 수 있습니다.

는 예 : 어떻게가를 적용 할 수 있어야한다

filter{ 

    if [server] == "Server2" and [logtype] == "CronLog" { 
       grok........ 
} 


if [server] == "Server3" and [logtype] == "CronLog" { 
       grok............ 
} 
} 

이 여기

grok { 
    match => ["path", "/home/Desktop/Logstash-Input/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logdate>[\d]+.[\d]+.[\d]+)/(?<logfilename>.*)_log"] 
} 

서버와 같은 뭔가, 내가 좋아하는 다른 구문 분석 패턴을 적용 내 필드에 원하는 디렉토리 이름을 LogType의입니다 위의 내 logstash - 서버 구성 파일 입력은 경로에서 필드를 추출 할 클라이언트 컴퓨터에 무엇입니까 ???

로그 램은 서버에 로그를 성공적으로 제공합니다. 나는 클라이언트에서 grok 수를 적용하려고 : 나는 로그에 있지만 필드가 추가되지 않습니다 logstsh 서버 콘솔에서 서버와 같은 필드, LogType의 추가 클라이언트 콘솔에서 확인할

grok { 
    match => ["path", "/home/Desktop/Logstash-Input/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logdate>[\d]+.[\d]+.[\d]+)/(?<logfilename>.*)_log"] 
} 

.

위의 내용을 달성하려면 어떻게해야합니까?

답변

0

두 가지 옵션 : 그들은 원래 출하시

  1. 필드를 설정합니다. 전체 logstash 및 logstash-forwarder (일명 lumberjack)를 사용하면이 작업을 수행 할 수 있습니다.
  2. grok 내 문서가 "file"이라는 필드에있는 파일 경로의 정보. 실제 필드 이름을 찾으려면 문서를 확인하십시오.