2016-09-15 5 views
0

Zabbix 로그 데이터를 ELK 스택으로 보내서 타이밍 상관 관계를 분석하려고합니다. 그러나 Logstash 중앙 집중식 서버 구성에서 지정한 필터가 에이전트로 작동하는 경우에는 표시되지 않습니다. 나는 Filebeat를 사용하여 처리를 위해 Logstash에 로그 항목을 보냅니다. 그러나 fields.tags 행은 Logstash에 의해 확인되지 않고 Elasticsearch/Kibana에 표시됩니다. 여기에 내 configs 있습니다.Logstash는 Filebeat의 필드를 기반으로 조건부 필터링을하지 않습니다.

filebeat: 
    prospectors: 
    - 
     paths: 
     - /var/log/zabbix/zabbix_proxy.log 
     input_type: log 
     fields: 
     tags: ["zabbix", "zabbix-proxy"] 
    registery_file: /var/lib/filebeat/registry 
output: 
    logstash: 
    hosts: ["elkls.com:5044"] 
logging: 
    files: 
    rotateeverybytes: 12345656 

다음 내 Logstash 구성 파일

input { 
    beats { 
    port => 5044 
    } 
} 
filter { 
    if "zabbix" in [fields.tags] { 
    grok { 
     match => { 
     "message" => { 
      "filter stuff here" 
     } 
     } 
    } 
    } 
} 
output { 
    elasticsearch { 
    hosts => [ "elkhost.com:9200"] 
    } 
} 

Logstash는 fields.tags 라인에 작용하고, 필터링/Filebeat에서로 전달되는 로그 선을 절단하지 않는다. 변수에 올바르게 액세스하고 있습니까? Logstash가 에이전트 역할을하고 파일에서 직접 읽는 경우에만 다른 파일과 비슷한 작업을 수행합니다. 대신

if "zabbix" in [fields.tags] { 

if "zabbix" in [fields][tags] { 

이 Logstash에 중첩 된 필드를 참조하는 데 사용의

답변