grok 패턴의 다양성을 위해서 config 설정 변경 시 내용 공유 합니다.
샘플로 이용을 해주시면 좋을 것 같아요.
설정 중 더 나은 코드 정보가 있으면 의견도 부탁드립니다.
input {
file {
path => "/var/log/rsyslog/192.168.10.2/*.log"
start_position => "beginning"
tags => ["ap1"]
}
file {
path => "/var/log/rsyslog/192.168.10.3/*.log"
start_position => "beginning"
tags => ["ap2"]
}
file {
path => "/var/log/rsyslog/192.168.10.4/*.log"
start_position => "beginning"
tags => ["ap3"]
}
file {
path => "/var/log/rsyslog/192.168.10.5/*.log"
start_position => "beginning"
tags => ["ap4"]
}
}
filter {
if "ap1" in [tags] or "ap2" in [tags] or "ap3" in [tags] or "ap4" in [tags] {
grok {
patterns_dir => ["/etc/logstash/pattern.d"]
match => {
"message" => [
"%{SYSLOGTIMESTAMP:access_time} %{IPORHOST:ip_or_host} %{IPORHOST:process}\[%{BASE10NUM:process_id}\]\: %{GREEDYDATA:sub_message}",
"%{SYSLOGTIMESTAMP:access_time} %{IPORHOST:ip_or_host} \[%{BASE10NUM:process_id}\]\: %{GREEDYDATA:sub_message}",
"%{SYSLOGTIMESTAMP:access_time} %{IPORHOST:ip_or_host} %{WORD:process}\: User\: %{USER:User} %{GREEDYDATA:Reason} in %{GREEDYDATA:access_day}\#%{NUMBER:Deauthentication_Reason_Code}, to %{IP:Destination_IP}, from %{IP:Start_ip} using %{WORD:Access_Method}"
]
}
}
mutate { remove_field => [ "message" ] }
}
}
output {
if "ap1" in [tags] {
elasticsearch {
hosts => ["http://192.168.0.17:9200"]
index => "logstash-ap1-index-%{+YYYY.MM.dd}"
}
}
else if "ap2" in [tags] {
elasticsearch {
hosts => ["http://192.168.0.17:9200"]
index => "logstash-ap2-index-%{+YYYY.MM.dd}"
}
}
else if "ap3" in [tags] {
elasticsearch {
hosts => ["http://192.168.0.17:9200"]
index => "logstash-ap3-index-%{+YYYY.MM.dd}"
}
}
else if "ap4" in [tags] {
elasticsearch {
hosts => ["http://192.168.0.17:9200"]
index => "logstash-ap4-index-%{+YYYY.MM.dd}"
}
}
}
'기술 노트 > logstash' 카테고리의 다른 글
logstash.conf_230405 (0) | 2023.04.05 |
---|---|
logstash.conf_230306 (0) | 2023.03.06 |
logstash 파일 파싱하기 (0) | 2023.02.20 |
logstash 설정 (0) | 2023.02.20 |
grok pattern (0) | 2023.02.17 |