Fluentd에서 S3로 보낸 로그를 Amazon Athena에서 집계합니다. 2018-03-26
내용
Fluentd
에서 S3
로 보낸 로그를 Amazon Athena
로 집계하는 방법을 기록합니다.
td-agent3(Fluentd v1.0)에서 S3에 "LTSV 형식 로그" 저장 계속이지만 일부 설정을 변경합니다.
일부 변경하는 설정 내용
<match>
에 다음 3점 추가output_tag false
output_time false
<filter>
에서 hostname을 부여하는 설정 추가 /etc/td-agent/td-agent.conf 부분 발췌
# hostname追加
<filter ltsv.log>
@type record_transformer
<record>
hostname ${hostname}
</record>
</filter>
<match ltsv.log>
@type s3
...
# S3のkeyにもhostnameを追加
s3_object_key_format %{path}%{hostname}/%{time_slice}_%{index}.%{file_extension}
# 以下の2つの設定を入れることで、S3に保存されるログがJSONのみになる
output_tag false
output_time false
...
</match>
추가:
%{hostname}
은 deprecated #{Socket.gethostname}
사용하기s3_object_key_format %{path}%{time_slice}_%{hostname}%{index}.%{file_extension}
s3_object_key_format "%{path}%{time_slice}_#{Socket.gethostname}%{index}.%{file_extension}"
이 설정을 넣으면 hostname 정보가 부여된 JSON 전용 로그가 S3에 저장됩니다.
YOUR_S3_BUCKET_NAME/logs/ltsv.log/2018-03-26/{HOSTNAME}/201803260820_0.gz
{"datetime":"2018-03-26 08:20:12","id":"16509","hostname":"ubuntu-xenial"}
{"datetime":"2018-03-26 08:20:32","id":"6217","hostname":"ubuntu-xenial"}
Amazon Athena에서 선택하기 전까지의 흐름
Get Started
AWS Management Console에서 설정합니다.
Get Started로 시작합니다.
AWS Glue Data Catalog로 전환
이번 select하기 위한 DB와 테이블을 만들어 갑니다.
상단의 메뉴 "AWS Glue Data Catalog"에서 설정합니다.
Add tables
(이 후의 작업은 AWS Glue
에서의 작업입니다)
Add tables에서 작성합니다.
"Add information about your crawler"에서 설정하겠습니다.
메뉴를 따라 설정합니다.
crawler name 넣기
데이터 스토어 설정
Include path
에는 S3의 key의 중간까지(prefix)를 넣어 두면 됩니다
"Add another data store"는 "No"
이번에는 IAM role를 신규 작성해 보았습니다
(롤 이름을 입력했습니다)
"Create a schedule for this crawler"는 일단 "Hourly"
새 DB를 추가했습니다.
다음은 확인 화면이었습니다. "Finish"하고 완료되었습니다.
Crawler를 실행
Glue의 'Crawlers' 메뉴에 지금 추가한 Crawler가 표시된다고 생각합니다.
선택하고 "Run Crawler"를 누르면 수동으로 Crawler가 움직입니다.
Craler가 움직이면, Glue의 「Databases > Tables」에 table가 추가됩니다.
JSON 만 보내도록 설정했으므로 Schema도 잘 설정되어 있습니다.
Amazon Athena로 돌아가서 선택
Glue로 여기까지 작업이 끝나면 Athena에서 select 할 수 있습니다.
뛰어난 간단한 선택
뛰어난 심플한 where
요약
간단하지만 Fluentd에서 S3로 보낸 로그를 Amazon Athena에서 집계 선택하는 방법에 대해 썼습니다.
여기까지 주면 나머지는 보통 SQL을 쓸 뿐이므로 집계도 할 수 있을 것입니다!
Reference
이 문제에 관하여(Fluentd에서 S3로 보낸 로그를 Amazon Athena에서 집계합니다. 2018-03-26), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/abetomo/items/d242881d0ac260864a05
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
간단하지만 Fluentd에서 S3로 보낸 로그를 Amazon Athena에서 집계 선택하는 방법에 대해 썼습니다.
여기까지 주면 나머지는 보통 SQL을 쓸 뿐이므로 집계도 할 수 있을 것입니다!
Reference
이 문제에 관하여(Fluentd에서 S3로 보낸 로그를 Amazon Athena에서 집계합니다. 2018-03-26), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/abetomo/items/d242881d0ac260864a05텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)