, 나는. 내 문제에 대한 해결책을 마련했습니다 나를 위해, 나는 foo bar baz
같은 값을했고 나는를 추출하는 데 필요한 첫 번째 단어 : 다음 스크립트를 사용하여 "고급 → JSON"필드를 사용하여이 작업을 수행 할 수있었습니다 :
{
"script": "(_value.indexOf(' ') > 0 ? _value.substring(0, _value.indexOf(' ')) : _value)"
}
는 그래서, 키바 인터페이스이는 다음과 같습니다
따라서, 귀하의 경우, 스크립트는 아마 같은 것을해야한다 : 분명히
{
"script": "(_value.indexOf(' ') > 0 ? _value.substring(_value.lastIndexOf(' ')) : _value)"
}
, 이 경우 추출 할 메시지의 부분이 문자열의 마지막 공간을 따른다 고 가정합니다. 나는 위의 테스트를 위해 일회용 자바 클래스를 작성했습니다 :
public class Foo {
public static void main(String[] args){
String tester = "Incoming request /api/someaction";
String result = tester.substring(tester.lastIndexOf(" "));
System.out.println(result);
}
}
는 지금까지 내가 말할 수있는, 당신은 JSON 필드의 "스크립트"키에 자바 코드를 사용할 수 있습니다. 그래서 String.replaceAll 또는 그 밖의 다른 String 메서드를 사용하여 정규 표현식을 사용할 수 있어야합니다 ...
나는 이것을 테스트하지 않았습니다. 다른 사람이 이에 관한 정보를 갖고 있다면, 언제든지 의견을 남길 수 있습니다.
Logstash 또는 다른 것을 사용합니까? Logstash라면 설정이 어떻게 생깁니 까? – Val
"고급"JSON 입력을 사용하는 방법이 있다고 생각합니다. 나는 현재 그것을보고 있지만 지금까지 뭔가를 찾을 수 없었습니다. – exhuma