2016-10-27 5 views
0

logstash filebeat 및 elasticsearch가 하나의 노드에서 실행 중입니다.logstash는 비트에서 로그 유형 필드를 읽지 않습니다.

나는 "syslog"라는 레이블을 가진 로그를 식별하고 "syslog"라는 색인에 덤프하려고 시도하고 있지만 "분류되지 않은"색인으로 들어가기 때문에 레이블이 보이지 않는 것처럼 보입니다. 내 캐치 모든 기본 색인) 여기

는 C 것)를 표준 출력 {} D 자와 출력을 보면 내 logstash 설정 파일

/etc/logstash/conf.d/logstash_server_syslog.conf 
input { 
    beats { 
     port => "9901" 
    } 
} 

filter { 
    if [type] == "syslog" { 
    grok { 
     match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } 
     add_field => [ "received_at", "%{@timestamp}" ] 
     add_field => [ "received_from", "%{host}" ] 
    } 
    date { 
     match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] 
    } 
    } 
} 

output { 
    if [type] == "syslog" { 
    elasticsearch { 
     hosts => ["10.0.0.167:9200", "10.0.0.168:9200"] 
     index => "syslog" 
    } 
    } else { 
    elasticsearch { 
     hosts => ["10.0.0.167:9200", "10.0.0.168:9200"] 
     index => "uncategorized" 
    } 
    } 
} 

답변

1

(여기

/etc/filebeat/filebeat.yml 
filebeat: 
    prospectors: 
    - 
     paths: 
     - /var/log/messages 
     fields: 
     type: syslog 
output: 
    logstash: 
    hosts: ["localhost:9901"] 

을 config (설정) 내 비트입니다 onfirm이,하지만 난 당신이 the doc의이 부분을 놓친 것 같은데요 : 기본적으로

, 당신은 [ '필드'설정 '에서] 지정한 필드에서 필드는 하위 사전에 그룹화됩니다 출력 문서. 사용자 정의 필드를 최상위 필드로 저장하려면 fields_under_root 옵션을 true로 설정하십시오.

1

document_type 구성 옵션을 사용하여 Filebeat에 사용자 지정 type 필드를 설정하려면 다음을 수행하십시오.

filebeat: 
    prospectors: 
    - paths: 
     - /var/log/messages 
     document_type: syslog 

이 사용자 정의 필드 반면하지 않습니다 Logstash와 함께 사용할 @metadata.type 필드를 설정합니다.