logstash 는 nginx 로 그 를 읽 고 es 시스템 구 조 를 기록 합 니 다.

968 단어
최근 에 프로젝트 를 만 들 고 있 습 니 다. 클 라 이언 트 로 그 를 es 에 가 져 와 야 합 니 다. 처음에는 nginx 로 그 를 kafka 에 기록 하고 kafka 에서 데 이 터 를 읽 고 es 라 는 절 차 를 기록 하려 고 했 습 니 다.그 후에 클 라 이언 트 가 json 형식의 로 그 를 보 고 했 기 때문에 내용 을 분석 하고 계산 할 필요 가 없 었 고 es 는 json 형식 입력 을 지원 하기 때문에 logstash 에서 nginx 로 그 를 직접 읽 고 es 를 썼 다 고 생각 했 습 니 다. 전체 데이터 흐름 은 클 라 이언 트 가 보고 한 -- > nginx - > logstash - > es 입 니 다.
여기 서 nginx 로그 형식 을 설정 해 야 합 니 다. 처음에 설정 한 것 은 log 입 니 다.format  log escape=json  '$request_body'; 하지만 이렇게 es 에 적 힌 데 이 터 는 $requestbody 는 전체 문자열 로 간주 되 었 습 니 다. 안의 필드 는 해석 되 지 않 았 습 니 다.나중 log_format  cdn_log escape=json  '{"request": "$request_body"}'; 동시에 logstash 설정
filter{
   json{
   source => "request"
   }
   mutate{

   remove_field => ["request", "host", "path"]
  }
}

이렇게 하면 request 만 분석 하면 로그 의 필드 를 정확하게 식별 할 수 있 습 니 다.
코드 를 쓰 지 않 고 설정 만 하고 데이터 흐름 도 짧 아 데 이 터 를 입고 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기