컴파일 된 템플릿 파일은 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 \"} " }
이를 보는 것은에서 키바에 후 :