Kinesis 에이전트 설치해서 웹서버 로그 분석해보자
<구성도>
EC2-------- Kinesis data firehose 스트리밍 ------ s3 버킷에 게시-------- glue가 크롤링, 로그에서 스키마 유추--- 스키마 이용해 아테나로 쿼리
사전 준비?
apache php 서버
Kinesis Data Firehose
s3 버킷 2개 만들기 , 데이터 수집용, 아테나 결과 저장용
Glue
아테나
<1> Kinesis 에이전트 설치
<2> S3 버킷에 로그 저장 확인
<3> Glue로 S3 크롤링하고 스키마 정의 하자
<4> Athena로 조회하기
<1> Kinesis 에이전트 설치
1
EC2 로그인
2
sudo yum install https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm -y
2
설정 파일 수정
/etc/aws-kinesis/agent.json
{
"cloudwatch.endpoint": "monitoring.<AWSRegion>.amazonaws.com",
"cloudwatch.emitMetrics": true,
"firehose.endpoint": "firehose.<AWSRegion>.amazonaws.com",
"flows": [
{
"filePattern": "/var/log/httpd/access_log",
"deliveryStream": "<DeliveryStream>"
}
]
}
vi /etc/aws-kinesis/agent.json
{
"cloudwatch.endpoint": "monitoring.ap-northeast-1.amazonaws.com",
"cloudwatch.emitMetrics": true,
"firehose.endpoint": "firehose.ap-northeast-1.amazonaws.com",
"flows": [
{
"filePattern": "/var/log/httpd/access_log",
"deliveryStream": "qls-3720118-baxxxxx-deliveryStream-xxxxxx"
}
]
}
3
에이전트 시작하기
sudo systemctl start aws-kinesis-agent.service
4
에이전트 상태 확인
systemctl status aws-kinesis-agent.service
Active: active (running) 상태인지 확인
5
웹서버 로그 확인
tail -f /var/log/httpd/access_log
6
웹사이트 접속
<2> S3 버킷에 로그 저장 확인
20분 정도 후 로그가 쌓인다
다운로드해서 파일 확인
확인
<3> Glue로 S3 크롤링하고 스키마 정의 하자
1
Glue > Crawlers > 크롤러 추가 > logcrawler > Crawlers Source type = Data store >
Repeat = Crawl all folders > S3
2
내 계정의 지정된 경로 > 폴더 아이콘 클릭 > 해당 S3 선택
3
IAM 역할 선택 > 기존 IAM 역할 선택 > GlueServiceRole 선택
빈도 > 온디맨드 실행
데이터 베이스 추가 > logsdatabase
다음 > 마침
4
크롤로 실행
5
성공 후
logsdatabase 클릭
tables 클릭
logs클릭
<4> Athena로 조회하기
1
Athena > 시작하기
데이터 베이스 > logsdatabase 선택
2
테이블에 logs 선택
3
테이블 미리 보기 선택
4
첫 번째 쿼리를 실행하기 전에, Amazon S3에서 쿼리 결과 위치를 설정해야 합니다. 자세히 알아보기
5
sql
SELECT * FROM "logsdatabase"."logs" limit 10;
감사합니다.