filebeat + logstash 취 합 다 중 인 스 턴 스 배치 로그

3947 단어 백 엔 드ELK
질문 배경:
『 8195 』 현 회사 의 단일 프로젝트 는 방문 양 이 커지 기 때문에 nginx 부하 균형 다 중 인 스 턴 스 배 치 를 취한 다.그러나 문제 가 하나 있 습 니 다. 프로젝트 의 로그 파일 은 배 치 된 모든 서버 에 분포 되 어 있 습 니 다. 사용자 의 구체 적 인 요청 을 볼 때 nginx 가 부하 가 되 었 기 때문에 이 요청 이 어느 인 스 턴 스 위 에 있 는 지 알 수 없습니다. 하나의 로 그 를 보고 효율 이 떨 어 집 니 다.
문제 해결 방법:
방식 1: 현재 가장 좋 은 ELK 로 그 를 사용 하여 수집 하고 로 그 를 모두 es 에 입력 하여 볼 수 있 습 니 다.
방식 2: 본 고 에서 소개 한 filebeat + logstash 를 이용 하여 각 서버 로그 파일 에 분포 하여 하나의 로그 파일 에 집합 합 니 다.
환경 소개:
  • jdk1.8
  • filebeat 7.3.2 다운로드 주소
  • logstash 7.3.2 다운로드 주소
  • logstash 설치 및 설정:
  • 압축 해제 다운로드 한 압축 패키지 tar -zxvf logstash-7.3.2.tar.gz
  • logstash. conf 파일 수정 (찾 지 못 하면 logstash - sample. conf 이름 복사 해서 수정) 수정 내용:
  • input {
      beats {
    	port => 5055
      }
    }
    
    output {
      file {
    	path => "/home/app/smrz/%{+YYYY.MM.dd}-file.log"
    	codec => line {format =>  "%{[@metadata][ip_address]} %{message}"}   
    	#         IP +     
      }
    }
    

    여기 서 중점적으로 설명 하 겠 습 니 다:% {[@ metadata] [ip address]} 이 매개 변 수 는 원본 IP 주 소 를 대표 하여 로그 원본 인 스 턴 스 를 볼 수 있 습 니 다.
  • logstash 시작 bin/logstash -f conf/logstash.conf
  • filebeat 설치 및 설정
  • 압축 해제 다운로드 한 압축 패키지 tar -zxvf filebeat-7.3.2-linux-x86_64.tar.gz
  • 프로필 filebeat. yml 수정
  • filebeat.inputs:
     - type: log
      enabled: true
     # Paths that should be crawled and fetched. Glob based paths.
      paths:
        - /home/CTID-ONLINE/kitty.log
    output.logstash:
      # The Logstash hosts
      hosts: ["192.168.44.21:5055"]
    
  • filebeat 시작 sudo ./filebeat -e -c filebeat.yml
  • 로그 가 있 는 서버 에 filebeat 를 반복 해서 설치 합 니 다.
    최종 집합 효과
    192.168.44.10 2019-09-23 15:37:27.092 |-INFO  [http-nio-8018-exec-10] com.goldenshield.kitty.interceptor.ConfigurationFilter [100] -| {"date":1569224247092,"idAddr":"223.104.18.231","appKey":"smbsapp","url":"/kitty/jbrz/OCR"}
    192.168.44.20 2019-09-23 15:37:26.012 |-DEBUG [http-nio-8018-exec-15] com.goldenshield.kitty.mapper.AppInfoMapper.findRzfsByAppkey [159] -| ==>  Preparing: select GROUP_CONCAT(rzfs.rzfs_url) from app_info INNER JOIN appinfo_rzfs ON ( app_info.uuid = appinfo_rzfs.appinfo_uuid) INNER JOIN rzfs ON (appinfo_rzfs.rzfs_uuid = rzfs.rz_id) where appkey = ? 
    192.168.44.10 2019-09-23 15:37:26.092 |-INFO  [http-nio-8018-exec-15] com.goldenshield.kitty.service.impl.SmbsServiceImpl [96] -|              :{"code":200,"message":"OK","data":{"bsryid":"875713"},"more":false}
    192.168.44.10 2019-09-23 15:37:26.529 |-DEBUG [http-nio-8018-exec-10] com.goldenshield.kitty.mapper.AppInfoMapper.findByAppkey [159] -| ==>  Preparing: select * from app_info where appkey = ? 
    192.168.44.20 2019-09-23 15:37:26.012 |-DEBUG [http-nio-8018-exec-15] com.goldenshield.kitty.mapper.AppInfoMapper.findRzfsByAppkey [159] -| ==> Parameters: smbsios(String)
    192.168.44.10 2019-09-23 15:37:26.092 |-INFO  [http-nio-8018-exec-15] com.goldenshield.kitty.interceptor.ConfigurationFilter [100] -| {"date":1569224246092,"idAddr":"183.160.70.39","appKey":"smbsios","url":"/kitty/smbs/JCBD"}
    192.168.44.10 2019-09-23 15:37:26.530 |-DEBUG [http-nio-8018-exec-10] com.goldenshield.kitty.mapper.AppInfoMapper.findByAppkey [159] -| ==> Parameters: smbsapp(String)
    192.168.44.20 2019-09-23 15:37:26.013 |-DEBUG [http-nio-8018-exec-15] com.goldenshield.kitty.mapper.AppInfoMapper.findRzfsByAppkey [159] -| <==      Total: 1
    192.168.44.10 2019-09-23 15:37:26.526 |-DEBUG [http-nio-8018-exec-10] com.goldenshield.kitty.mapper.AppInfoMapper.findByAppkey [159] -| ==>  Preparing: select * from app_info where appkey = ? 
    192.168.44.20 2019-09-23 15:37:26.530 |-DEBUG [http-nio-8018-exec-10] com.goldenshield.kitty.mapper.AppInfoMapper.findByAppkey [159] -| <==      Total: 1
    
    

    좋은 웹페이지 즐겨찾기