반응형
Logstash에서 들어오는 데이터를 구분하여 Elasticsearch Index로 분리해서 저장할 수 있습니다.
output {
if 조건 {
...
} else if 조건 {
...
} else {
...
}
위와 같이 처리할 수 있습니다.
아래는 제가 적용한 logstash.conf의 예시 입니다.
input {
tcp {
port => 5000
codec => json_lines
}
}
output {
if [log_type] and [server_name]{
elasticsearch {
hosts => ["https://....es.amazonaws.com:443"]
ssl => true
index => "log-%{[server_name]}-%{[log_type]}-%{+YYYY.MM.dd}"
user => ""
password => ""
ilm_enabled => false
manage_template => false
}
} else if [appname] and [profile]{
elasticsearch {
hosts => ["https://....es.amazonaws.com:443"]
ssl => true
index => "log-%{[appname]}-%{[profile]}-%{+YYYY.MM.dd}"
user => ""
password => ""
ilm_enabled => false
}
} else {
elasticsearch {
hosts => ["https://....es.amazonaws.com:443"]
ssl => true
index => "logstash-%{+YYYY.MM.dd}"
user => ""
password => ""
ilm_enabled => false
}
}
}
로그를 보내는 서버에서 'appname', 'profile', 'log_type', 'server_name'이름으로 Custom Field를 추가해서 보내고 있습니다.
이 custom field로 로그를 구분하고 Elasticsearch의 index로도 사용하여 저장하고 있습니다.
728x90
'DevOps' 카테고리의 다른 글
Kibana에서 Webhook으로 알람받기 (0) | 2021.09.26 |
---|---|
AWS Elasticsearch 10MB 제한 (1) | 2021.09.26 |
[ELK Stack 로그 수집 4/4] Kibana 로그 확인 (0) | 2021.09.22 |
[ELK Stack 로그 수집 3/4] Spring Boot 로그 설정 (2) | 2021.09.15 |
[ELK Stack 로그 수집 2/4] Logstash 설치 (3) | 2021.09.10 |