log를 쌓기만 하면 의미가 없을 겁니다. 이것을 적절히 가공해서 어딘가로 보내는 것이 logstash라고 할 수 있는데요. 이 글에서는, 특정 조건에 따라 처리하는 방법을 다르게 하는 conditional에 대해서 간단하게 언급해 보겠습니다. if절이나, if else 절이 꽤 많이 나올 거 같네요. logstash와 filebeat는 8.1.2 버전을 썼음을 미리 알려드립니다. 먼저, filebeat의 설정 파일을 보겠습니다. filebeat.inputs는 어디로부터 입력을 받을지에 대해서 설정하는 것인데요. 뭔가 복잡해 보입니다. /var/log에 있는 log 파일들로부터 input을 얻어옵니다. 또 /home/cho 밑에 있는 log 파일로부터 또 뭔가를 얻어오는데요. 저는 /home/cho 밑에..
구축/ELK 검색 결과
kibana를 외부 접속이 가능하게 하는 방법을 알아봅시다. 물론, 누구나 내 컴퓨터의 정보를 열람할 수 없게 하려면, 방화벽 설정도 해 놓아야 합니다. /etc/kibana에 들어가 보면 왠 설정파일이 하나 있습니다. 여기서 보면, server.port하고, server.host가 있는데요. 어디에서나 접속이 가능하게 하려면, server.host를 바꿔야 할 듯 합니다. 정말 그런지, netstat -ntlp를 쳐서 알아봅시다. 보시면, Local Address와 Foreign Address, State 등이 있습니다. 이들 중에서 5601만 뽑아 보면, 요렇게 될 겁니다. LISTEN 상태이고, 로컬 주소가 127.0.0.1:5601입니다. 127.0.0.1은 루프 백일 거니, 자기 자신이 아닌 다..
filebeat에서, log 파일을 긁어갈 때 multiline을 설정하는 것이 있습니다. 이번 시간에는 이 중에서 간단하게 pattern만 잘 설정해 보도록 하겠습니다. Filebeat에서 logstash로 보내지 않고, 바로 ElasticSearch로 보냅니다. 로그가 어떻게 elasticsearch에 적재되는지, kibana로 보도록 하겠습니다. log.file.path로 불러 오는군요. 저기서, /home/cho/jo_test/logs는 사실, log가 발생하는 프로그램이, 로그를 저장하는 위치입니다. 해당 프로그램의 logback-spring.xml 파일의 일부입니다. LOG_DIR이 logs 밑으로 잡혀있고, 저는 이 디렉토리 밑에 로그들을 모두 떨굴 겁니다. 제 서버에서는 이 위치에 떨굴 겁..
사실, 이 포스팅은 ELK 셋팅인 듯 하지만, 70%는 방화벽을 다루는 것입니다. 그리고 나머지 절반은 로그를 보는 포스팅입니다. 저는 ubuntu 20.04 LTS를 쓰고 있습니다. 그리고 elk 버전은 7.9.3입니다. 다른 os에서는 방화벽을 설정하는 방법이 다를 수도 있습니다. (ex. firewall-cmd) 먼저, client에 대한 정보를 보겠습니다. ipconfig를 보시면 무선 LAN 어댑터가 눈에 들어오는데요. IPv4 주소가 위와 같습니다. 서브넷은 255.255.255.0이니 /24겠군요. 우분투 서버의 정보입니다. inet 주소는 위와 같고, netmask는 /24입니다. 그러면, 172.30.1.0/24를 허용하면, 172.30.1.x가 모두 허용된다는 이야기입니다. 명령어는 위..
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..
최근댓글