안녕하세요. 이번 시간에는 kibana에서 regex로 filter를 거는 방법을 알아보겠습니다. 8.5.0 버전 기준으로 설명합니다. 사실 간단한 정도의 regex는 지원이 되니, 이용해 보시는 것도 나쁘지 않겠습니다. 어떤 것을 지원하는지는 문서 참고하시면 되겠습니다. 저번 시간에 KQL을 이용해서 filter를 걸었습니다. 그런데, 문제는 이것이 regex를 지원하지 않습니다. 그래서, 이메일 패턴이 있을 때, @ 앞에 붙은 아이디가 7자 이상인 email이 있는 문서에 대해서 찾지 못합니다. 이것을, Elasticsearch Query DSL이 가능하게 해 줍니다. eCommerce 샘플 데이터를 보겠습니다. email의 type을 확인해 보니 k라고 되어 있습니다. Keyword를 의미합니다. ..
ELK 검색 결과
제가 생각했을 때, kibana에서 discovery를 볼 때의 핵심은 filter를 잘 거는 것입니다. 예를 들자면, 우리는 status가 4xx 대인 것만 필요로 합니다. 그런데 2xx인 것까지 볼 필요가 전혀 없을 것입니다. 이는 visualize 할 때도 마찬가지입니다. KQL을 이용해서 필터를 걸어보겠습니다. 여기서 KQL은 Kibana Query Language를 의미합니다. 8.5.0 버전을 기준으로 작성되었으니 참고 부탁드립니다. Sample data중 하나인 항공 데이터입니다. 각 항공편에 대해 여러 유용한 정보들이 있는데요. 비행 거리가 얼마인지, 비행 시간이 어느 정도인지 등을 얻어올 수 있습니다. 저는 비행 거리가 10000km 이상인 항공편만 뽑아오고 싶습니다. 비행 거리 (km)..
안녕하세요. 이번 시간에는 logstash에서 다중 파이프라인을 이용하는 방법을 알아봅시다. 먼저 logstash-sample.conf 파일을 보겠습니다. input은 2개가 있습니다. 먼저, "/home/chokw/1.log" 에서 들어오는 것과, "/home/chokw/2.log"에서 들어오는 것이 있습니다. 파일의 변화를 감지해서, 변화가 되면 logstash로 들어오게 됩니다. 1.log로부터 들어오는 type은 "log_1"로, 2.log로부터 들어오는 type은 "log_2"로 정의하였습니다. 이제, 우리는 이 type에 따라서 codec을 rubydebug로 할 건지, line으로 할 것인지를 결정합니다. codec을 rubydebug로 하는 경우, type이 "log_1"이고, line으로..
log를 쌓기만 하면 의미가 없을 겁니다. 이것을 적절히 가공해서 어딘가로 보내는 것이 logstash라고 할 수 있는데요. 이 글에서는, 특정 조건에 따라 처리하는 방법을 다르게 하는 conditional에 대해서 간단하게 언급해 보겠습니다. if절이나, if else 절이 꽤 많이 나올 거 같네요. logstash와 filebeat는 8.1.2 버전을 썼음을 미리 알려드립니다. 먼저, filebeat의 설정 파일을 보겠습니다. filebeat.inputs는 어디로부터 입력을 받을지에 대해서 설정하는 것인데요. 뭔가 복잡해 보입니다. /var/log에 있는 log 파일들로부터 input을 얻어옵니다. 또 /home/cho 밑에 있는 log 파일로부터 또 뭔가를 얻어오는데요. 저는 /home/cho 밑에..
filebeat가 긁어올 path는 어떻게 설정하면 될까요? 버전 7.9.2를 기준으로 설명하겠습니다. filebeat의 설정 파일을 보면, inputs라는 것이 있습니다. 여기서 type과 enabled와 paths와 같은 것들을 설정할 수 있습니다. 당연하게도, enabled는 true로 셋팅해 주면 되겠네요. 그런데, 조심해야 할 것은, paths는 일반적인 regex가 아닌, glob 패턴을 쓴다는 것입니다. 이는 7.9.x의 파일비트 공식 문서에도 나와 있습니다. 그러면, glob base path로 설정해 보도록 하겠습니다. 자세한 것들은 이 문서나, man glob을 참고하세요. 몇 가지를 봅시다. 먼저 **은, recursive 하게 매치가 된다는 의미입니다. 예를 들어서, 위의 /home..
최근댓글