input {
{input plugin}
}
filter {
{filter plugin}
}
output {
{output plugin}
}
pipeline 세팅
input { stdin { } }
output {
elasticsearch { cloud_id => "<cloud id>" api_key => "<api key>" }
stdout { codec => rubydebug }
}
logstash 실행
bin/logstash -f pipeline.conf
플러그인 | 설명 | 예시 |
---|---|---|
file | 파일을 스트리밍하여 이벤트를 읽음 | input { file {id =>"my_plugin_id"}} |
syslog | 시스템로그 메세지를 이벤트로 읽음 | input { syslog { port => 12345 codec => cefsyslog_field => "syslog" grok_pattern => "<%{POSINT:priority}>%{SYSLOGTIMESTAMP:timestamp} CUSTOM GROK HERE"} } |
kafka | 카프카 토픽을 읽음 | input {kafka { sasl_jaas_config => "org.apache.kafka.common.security.plain.PlainLoginModule required username='auser' password='apassword';" }} |
… | … | ... |
플러그인 | 설명 | 예시 |
---|---|---|
grok | grok 패턴을 사용하여 메세지를 분석 | filter { grok { match => { "message" =>"%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:log-level} [%{DATA:class}]:%{GREEDYDATA:message}" } } } |
mutate | 다양한 필드를 변형하여 로그 메세지를 변형할 수 있음 | filter { grok {...} mutate { lowercase => [ "log-level" ] } } |
… | … | ... |
플러그인 | 설명 | 예시 |
---|---|---|
elasticsearch | bulk API로 엘라스틱서치에 인덱싱 | output { elasticsearch { hosts => "hostname" data_stream => "true" } } |
file | 지정한 파일에 데이터를 기록 | output { file { path => ... codec => line { format => "custom format: %{message}"} } } |
kafka | 카프카 토픽에 데이터를 기록 | output { kafka { codec => json topic_id => "mytopic" }} |