ELK 스택을 처음 실행했습니다. 내 웹 응용 프로그램 로그를 Elasticsearch에 공급하도록 Logstash를 구성했습니다. 특정 로그 라인에서 구문 분석되는 user_email
필드에 의해 주어진 고유 사용자의 수를 표시하는 가시화를 Kibana에서 설정하려고합니다.Kibana에서 사용자 정의 필드를 집계 할 수 있도록 구성하려면 어떻게해야합니까?
고유 수 집계를 사용하고 싶지만 집계 할 수있는 입력란 목록에 user_email
을 포함시키지 못했습니다. 여기
filter {
if [type] == "wl-proxy-log" {
grok {
match => {
"message" => [
"(?<syslog_datetime>%{SYSLOGTIMESTAMP}\s+%{YEAR})\s+<%{INT:session_id}>\s+%{DATA:log_message}\s+license=%{WORD:license}\&user=(?<user_email>%{USERNAME}\@%{URIHOST})\&files=%{WORD:files}",
]
}
break_on_match => true
}
date {
match => [ "syslog_datetime", "MMM dd HH:mm:ss yyyy", "MMM d HH:mm:ss yyyy" ]
target => "@timestamp"
locale => "en_US"
timezone => "America/Los_Angeles"
}
kv {
source => "uri_params"
field_split => "&?"
}
}
}
output {
elasticsearch {
ssl => false
index => "wl-proxy"
manage_template => false
}
}
Elasticsearch의 관련 매핑 : 여기
내 Logstash 구성입니다{
"wl-proxy" : {
"mappings" : {
"wl-proxy-log" : {
"user_email" : {
"full_name" : "user_email",
"mapping" : {
"user_email" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
}
}
사람이 내가 놓친 거지 무엇을 말해 줄 수 있습니까?
BTW, 나는 다음 버전에 CentOS를 실행하고 있습니다 :
- Elasticsearch 버전 : 6.0.0, 빌드 : 8f0685b/2017-11-10T18 : 41 : 22.859Z를, JVM : 1.8.0_151
- Logstash v.6.0.0
- 키바의 v.6.0.0
감사합니다!