2017-03-15 2 views
3

cat_sweep 플러그인을 사용하여 유동성이있는 .gz 확장자의 로그 파일을 처리하려고하는데 시도에 실패했습니다. 아래 설정에서 볼 수 있듯이 /opt/logfiles/* 위치에있는 모든 파일을 처리하려고합니다. 그러나 파일 형식이 .gz 일 때 cat_sweep은 파일을 처리 할 수 ​​없으며 파일을 삭제하기 시작합니다. 그러나 /opt/logfiles/ 위치에서 수동으로 파일을 압축 해제하면 cat_sweep이 파일을 처리 할 수 ​​있습니다.[Fluentd] 유창한 파일의 압축을 해제하는 방법

<source> 
    @type cat_sweep 
    file_path_with_glob /opt/logfiles/* 
    format none 
    tag raw.log 
    waiting_seconds 0 
    remove_after_processing true 
    processing_file_suffix .processing 
    error_file_suffix .error 
    run_interval 5 
</source> 

이제 주어진 파일의 압축을 풀 수있는 플러그인이 필요합니다. 나는 압축 파일을 압축 해제 할 수있는 플러그인을 찾으려고 노력했다. 내가 은 gzip -d FILE_PATH 같은 것을 사용할 수있는 터미널과 같은 역할을하는 플러그인에 대한 발견했을 때 나는 듯했으나,

플러그인 링크 :

http://docs.fluentd.org/v0.12/articles/in_exec

하지만 내가 여기서 보는 문제는 런타임에 압축을 풀 파일의 경로를 보낼 수 없다는 것입니다.

누군가 포인터로 나를 도울 수 있습니까? 귀하의 요구 사항을 보면

답변

2

, 당신은 아직도 단지에서 .gz 파일과 일치하는 와일드 카드 패턴을 찾아 경로를 허용하는 쉘 스크립트를 작성하기 위해, 당신이해야 할 것은 in_exec 모듈을 사용하여 달성 할 수 파일 이름. 그리고 쉘 스크립트 내에서 주어진 와일드 카드 패턴으로 전달 된 folder_path 내부의 파일을 압축 해제 할 수 있습니다.

sh unzip.sh <folder_path_to_monitor> <wildcard_to_files>

그리고 당신의 설정에 태그 in_exec 에서 위의 명령을 사용 : 기본적으로 쉘 실행 등이 보일 것입니다. 구성은 다음과 같습니다 :

<source> 
    @type exec 
    format json 
    tag unzip.sh 
    command sh unzip.sh <folder_path_to_monitor> <wildcard_to_files> 
    run_interval 10s 
</source> 
관련 문제