JSON 형식 Logstash 동적 템플릿 매핑 수집 Nginx와 로그

컴파일 된 템플릿 파일은 bigdata.template :

{
         " 템플릿 " : " bigdata 템플릿 " ,
         " 설정 " : {
                 " index.number_of_shards " : 5 ,
                 " number_of_replicas " : 1 
        }, 
        " 매핑 " : {
                 " _default_ " : {
                         " _all는 " : {
                                 " 활성화 " :참된,
                                 " omit_norms " : 사실 
                        }, 
                        " dynamic_templates " : [{
                                 " MESSAGE_FIELD " : {
                                         " 일치 " : " 메시지 " ,
                                         " match_mapping_type " : " 문자열 " ,
                                         " 지도 " :
                                                { "유형 " : " 문자열 " ,
                                                 " 인덱스 " : " 분석 " ,
                                                 " omit_norms " : 사실 ,
                                                 " fielddata " : {
                                                         " 형식 " : " 장애인 " 
                                                } 
                                        }
                                } 
                        }, { 
                                " string_fields " : {
                                         " 일치 " : " * " ,
                                         " match_mapping_type " : " 문자열 " ,
                                         " 지도 " : {
                                                 " 유형 " : " 문자열 " ,
                                                " 인덱스" : not_analyzed " ,
                                                 " doc_values " : 사실 
                                        } 
                                } 
                        }], " 속성 " : {
                                 " @timestamp " : {
                                         " 유형 " : " 날짜 " 
                                }, " @version " :
                                        { " 유형 "
                        
                                " :" 문자열 " ,
                                         " 인덱스 " : " not_analyzed " 
                                } 
                        } 
                } 
        } 
}

Logstash nginx.conf 프로필 :

입력 { 
    파일 { 
      경로 => " /usr/local/openresty/nginx/logs/user2.log " 
      타입 => " 의 nginx-bigdata " 
      코덱 => "JSON" 
    } 
} 

필터 {     JSON { 
      소스
 => " u_data " 
    } 
} 

출력 { 
    경우 [형태] == ' 의 nginx-bigdata " { 
      elasticsearch { 
        호스트 => [ " 172.17.213.60:9200 " , " 172.17.213.61 :9200 " ]
        인덱스 => " 의 nginx-bigdata " 
        manage_template => 거짓 
        template_overwrite => 진정한 
        TEMPLATE_NAME => " bigdata 템플릿 " 
        템플릿 => " /usr/local/logstash-6.2.4/bigdata.template " 
        DOCUMENT_TYPE => " 의 nginx-bigdata " 
      } 
    } 
}

로그 형식 구성에 대한 Nginx의 구성 파일 :

여기 난 단지 필드의 범위를 유지하기 위해 필요

log_format userlog = JSON 탈출  ' { " u_data ": "$의 u_data를"} ' ; 
ACCESS_LOG 로그 / user.log userlog;

생성 된 로그 형식 :

{ " u_data " : " {\"APPID \ "\"nchaopai \ ", \"인수 \ ": {\"콘텐츠 ID \ "0 \"기간 \ ": 111,811, \"parentId \ ": 0, \ "TOTALTIME \"0 \ "유형 \": 0}, \ "BK \"\ "- \", \ "cp_ver의 \"\ "3.0.5 \", \ "DUID \"\ "2cba98f8ddc18464 \"\ "전자 \": "nchaopai.main.stay 듀레이션 \"\ \ "운영체제 \"\ "A \"\ "TS \"1572584611 \ "버전 \"\ "8.11.11 \"} " }

 이를 보는 것은에서 키바에 후 :

 

추천

출처www.cnblogs.com/wjoyxt/p/11777429.html