Как добавить имя хоста для ввода ударов в logstash - PullRequest
0 голосов
/ 16 июня 2020
• 1000 , но вот что происходит в каждом журнале, который я получаю в теле сообщения, и для некоторых сообщений мне трудно написать правильный шаблон GROK, в любом случае я могу получить шаблон от Kibana (к вашему сведению, на данный момент я храню все журналы в elasticsearch, который я могу видеть через Kibana.)

Моя конфигурация Logsta sh выглядит так -

1. Api-Pipeline
input {
  beats {
    host => "IP Address where my filebeat (API Server) is running"
    port => 5044
  }
}

2. DB Pipeline
input {
      beats {
        host => "IP Address where my filebeat (Database Server) is running"
        port => 5044
      }
    }

Он работает, когда я использовал только порт, и в момент добавления хоста он перестал работать . Может ли кто-нибудь помочь мне здесь.

Ниже я пытаюсь достичь

enter image description here

Здесь я внес изменения, это работает, потому что мне нужно писать длинные фильтры и поэтому я хотел иметь в отдельных файлах

Filebeat.yml on API Server
-----------------------------------------------------------------------------------------
filebeat.inputs:
- type: log
  source: 'ApiServerName' // MyAPIServerName(Same Server Where I have installed filebeat)
  enabled: true
  paths:
    - C:\Windows\System32\LogFiles\SMTPSVC1\*.log
    - E:\AppLogs\*.json

scan_frequency: 10s
ignore_older: 24h

filebeat.config.modules:
  path: C:\Program Files\Filebeat\modules.d\iis.yml
  reload.enabled: false

setup.template.settings:
  index.number_of_shards: 3

setup.kibana:
  host: "kibanaServerName:5601"

output.logstash:
  hosts: ["logstashServerName:5044"]



Logstash Configuration
----------------------------------------------------------------
Pipeline.yml

- pipeline.id: beats-server
  config.string: |
    input { beats { port => 5044 } }
    output {
        if [source] == 'APISERVERNAME' {
          pipeline { send_to => apilog }
        } else if [source] == 'DBSERVERNAME' {
          pipeline { send_to => dblog }
        }
        else{
          pipeline { send_to => defaultlog }
        }
    }

- pipeline.id: apilog-processing
  path.config: "/Logstash/config/pipelines/apilogpipeline.conf"

- pipeline.id: dblog-processing
  path.config: "/Logstash/config/pipelines/dblogpipeline.conf"

- pipeline.id: defaultlog-processing
  path.config: "/Logstash/config/pipelines/defaultlogpipeline.conf"



1. apilogpipeline.conf
----------------------------------------------------------
input { 
    pipeline { 
        address => apilog 
    } 
}
output {
    file {
        path => ["C:/Logs/apilog_%{+yyyy_MM_dd}.log"]
    }
}



2. dbilogpipeline.conf
---------------------------------------------------------
input { 
    pipeline { 
        address => dblog 
    } 
}
output {
    file {
        path => ["C:/Logs/dblog_%{+yyyy_MM_dd}.log"]
    }
}


3. defaultlogpipeline.conf
---------------------------------------------------------
input { 
    pipeline { 
        address => defaultlog 
    } 
}
output {
    file {
        path => ["C:/Logs/defaultlog_%{+yyyy_MM_dd}.log"]
    }
} 

1 Ответ

0 голосов
/ 16 июня 2020

Он работает наоборот, т.е. не Logsta sh подключается к Filebeat, а Filebeat отправляет данные в Logsta sh. Таким образом, в вашем разделе ввода хост должен быть именем хоста, на котором работает Logsta sh.

beats {
  host => "logstash-host"
  port => 5044
}

Затем в конфигурации Filebeat вам необходимо настроить Logsta sh вывод вот так:

output.logstash:
  hosts: ["logstash-host:5044"]

Поскольку у вас есть несколько источников Filebeat и вы хотите применить выделенный конвейер к каждому, вы можете определить одно настраиваемое поле или тег в каждой конфигурации Filebeat (например, source: db, source: api-server, et c), а затем в Logsta sh вы можете применить другой logi c на основе этих значений.

filebeat.inputs:
- type: log
  fields:
    source: 'APISERVERNAME'
  fields_under_root: true

В Logsta sh вы можете использовать условные или конвейер для конвейерной связи , чтобы применить другой logi c на основе данных событий.

Вкл. по последней ссылке вы можете увидеть пример шаблона дистрибьютора , что в значительной степени то, что вам нужно.

...