Logstash
Log-Stash : 로그를 저장한다 / 데이터 전처리 과정을 별도의 어플리케이션 작성과정 없이 저장한다. 데이터를 저장하기 이전에, 원하는 형태로 가공한다. ===============================================================================================================
Q. [logstash] filter-plugin 에서 grok과 dissect의 차이는? A. grok : grok 패턴을 사용하며 일반적인 정규식과 유사해 자유도가 높다. ex) grok { match => {“message” => “[%{TIMESTAMP_ISO8601:timestamp}] [ ]*[%{DATA:id}] %{IP:ip} %{NUMBER:port:int} [%{LOGLEVEL:level}] - %{DATA:msg}”} } dissect : 미리 지정된 간단한 패턴을 사용하므로 grok에 비해 자유도는 떨어지지만 더 빠른 처리가 가능하다. ex) dissect { mapping => {“message” => “[%{timestamp}]%{?->}[%{id}] %{ip} %{+ip} %{port} [%{?level}] - %{}.”} } %{?->} : 공백을 하나의 필드로 만들어 무시하게 된다.
Q. [logstash] 파이프라인 설정 파일의 input{} 필드에는 start_position 옵션과 sincedb_path 옵션이 있다. 각각의 역할은 어떻게 다른가? A. start_position : 읽기 시작하는 파일의 위치를 의미하며, 최초 한 번 실행될 때 적용된다. sincedb_path : 이후 logstash가 재실행되면 start_position이 아니라 sincedb_path에 기록된 위치부터 파일을 읽는다.
Q. 입력, 출력단계에서 사용되는 플러그인으로, 입력/출력/필터와 달리 스트림으로 데이터의 인코딩, 디코딩을 담당하는 것은 무엇인가? A. codec(코덱)
Q. 하나의 logstash에서 여러개의 파이프라인을 구성하는 다중 파이프라인의 실행방법을 간략하게 설명하라. A. pipelines.yml 파일을 수정한다 -> pipelines conf 파일(개별 파이프라인 설정파일) 여러개를 작성한다. -> logstash를 -f 옵션 없이 실행한다.