준호씨의 블로그

logstash version 2.3.1 사용중인데 업그레이드 고려 본문

개발이야기

logstash version 2.3.1 사용중인데 업그레이드 고려

준호씨 2016. 11. 16. 21:00
반응형


현재 2.3.1 사용 중
종종 행 걸리는 문제가 있어서 그동안 버전업 릴리즈 노트 확인 해 봄
결론은 일단 2.4.1 로 업그레이드를 고려해 봐야 겠음.

내가 안쓰는 기능은 대충 적거나 생략

2.3.2
  • init 스크립트에 reload 지원. service logstash reload 가능
  • %{foo} 문법이 string 만 생성 했는데 예전에 2.x, 1.5.x 에서는 float 를 리턴 했었음. 2.3.0 에서 underlying value type 리턴 했음. 그러나 2.3.2 에서 다시 예전 2.x, 1.5.x 방식으로 돌아감.
  • init 스크립트에서 KILL_ON_STOP_TIMEOUT 변수 사용 고침. logstash 강제 종료 허용. 종종 행 걸리는 문제가 있는데 관련이 있는건가?

Input Plugins
Beats:
  • 버그 수정. multiline codec 에서 시간기준 flush 에 버그가 있었음
HTTP Poller:
  • ssl_certificate_validation 옵션 문제 고침

Filter Plugins
XML:
  • force_array 설정 추가

Output Plugins
Redis:
  • 버그 수정


2.3.3
  • dynamic config reload 기능 사용시 메모리 많이 먹어서 crash 일으키는 문제 수정
  • KILL_ON_STOP_TIMEOUT 있어서 안죽는 문제 해결. 행 걸렸을때 안죽는 문제가 해결 된건가?

Input Plugins
TCP: 생략
RabbitMQ: 생략

Filter Plugins
KV:
  • :transform_value, :transform_key 옵션 추가. 대소문자 변경 기능
XML: 생략

Output Plugins
Elasticsearch: 생략


2.3.4
Output Plugins
Elasticsearch: 생략

2.4
  • Event get/set API 가 백포팅됨. 2.4 에서 5.0 API 설치 할 수 있도록 해 줌
  • Logstash 의 로그를 JSON format 으로 쓸 수 있게 해 줌. --log-in-json 커맨드 라인 옵션으로 사용 가능.
  • Plugin Generator: bin/logstash-plugin 에 generate 서브커맨드 추가. 플러그인 생성시 정확한 디렉토르 구조와 필요한 파일들 생성 해 줌.
Input Plugins
Beats: 생략

2.4.1
  • 에러정보 보여줌. 이전에는 class name 과 backtrace 정도 나왔었음

Input Plugins 생략

5.0.0
  • 모니터링 API 추가
  • 처리량 성능 개선
  • Breaking Change: Debian 과 RPM 에서 파일명들 변경
  • logstash.yml 로 설정 기능
  • Breaking Change: logstash.yml...
  • Breaking Change: Event class 에 데이터 접근을 위한 새로운 API 추가. Ruby hash 로 직접 접근 불가능해짐. https://www.elastic.co/guide/en/logstash/5.0/event-api.html 참고
  • Breaking Change: --allow-env 없이 환경 변수 접근 가능
  • DEBUG=1 지원. bin/logstash-plugin 오동작 디버깅 용이해짐
  • Log4j2 로 logstash 로깅 프레임워크 변경. (기존에는 뭐였지?)
    • 생략: 여러 장점들
  • systemd 와 upstart 지원. 대부분 리눅스에서 logstash 관리 가능
  • stdin input 에서 CTRL-C 로 종료 안되던 버그 수정
  • LS_HOME/data 디렉토리에 플러그인 상태, Logstash 인스턴스의 UUID 와 기타 등등 저장. path.data 설정이나 logstash.yml 설정으로 디렉토리 지정 가능
  • bin/logstash -V/--version 커맨드를 Unix 환경에서 더 빠르게 함
  • 퍼포먼스 향상. JRuby, Java 관련인데 생략
  • Plugin 개발자: 생략

Input Plugins
Beats: 성능향상. 생략
JDBC: 생략
Kafka:
  • Kafka broker 0.10 지원. SSL 암호화 지원. 설정이 많이 바뀌어서 하위버전 지원 안됨. 오래된 Kafka broker 와는 동작하지 않음.
HTTP: 생략
HTTP Poller: 생략
RabbitMQ: 생략
Stdin: 생략
Elasticsearch: 생략
UDP: 생략

Filter Plugins
Grok:
  • 오래동작하는 실행 취소 지원. 유저들이 Logstash 를 느려지게 만드는 잘못된 정규표현식을 사용함. timeout_millis 설정으로 현재 실행된거 중단하고 다음 처리로 넘어 갈 수 있음
  • grok 에 맞았는지 틀렸는지 갯수 카운트 기능 추가. _node/stats/pipeline 에 생성
Date: 생략
GeoIP: 생략
DNS: 생략
CSV: 생략
XML: 생략

Output Plugins
Elasticsearch: 생략
Tcp: 생략
Kafka: 여러 파이프라인 워커에 공유가능한 인스턴스로 만듦. broker TCP 커넥션, 내부 생성 버퍼 등등의 자원을 효율적으로 사용할 수 있게 함.

5.0.1

  • 패키지로 설치 한 사용자들에게 발생하는 구동 문제 해결. bin/logstash 로 실행시 logstash.yml 이 없으면 실행이 안되었음. logstash.yml 를 구동시 요구하지 않도록 함. 그러나 production 환경에서 logstash.yml 없이 실행하는 것은 좋지 않음
  • 이미 필드를 가지고 있는데 logstash 가 필드 추가 할 때 crash 발생하는 버그 수정
  • 생략
  • 생략
  • 생략

Input Plugins
Beats: 생략
RabbitMQ: 생략

Filter Plugins
Grok:
  • 높은 동시성 로드 상황에서 실행 취소 기능 사용시 crash 발생하는 문제 해결
XML: 생략


5.0 으로 올리려면 일부 기능 마이그레이션이 필요한 상황.
일단 2.4.1 로 올린 후 마이그레이션 하고 나서 다음에 5 버전으로 올리는 것이 좋겠음.

5.0 으로 올릴 때 마이그레이션 문서가 있으니 참고 하도록 하자. https://www.elastic.co/guide/en/logstash/5.0/upgrading-logstash-5.0.html

반응형
Comments