실습 안내
nginx 웹 서버의 로그로부터 접속 기록을 추출하여, PostgreSQL에 적재하는 것입니다.
1. PostgreSQL 데이터베이스 생성하고 SQL문을 이용해 데이터를 넣고 결과 확인
2. Nginx 웹 서버의 로그를 확인
3. 파서 (Parser) 프로그램 수정 및 활용
4. 프로그램 수집기 Collector.js으로 내용 확인
1. Github 에서 실습 내용 fork 후 git clone 으로 파일 받습니다.
2. Nginx 로그 파일 분석하기 위해 $cat sample.log 으로 확인합니다.
3. Npm install 으로 모듈 설치 후 $cat sample.log | ./parser.js 으로 내용 확인합니다. (필요시 Parser 파일 수정하여 원하는 값이 나올 수 있도록 합니다)
{
"source_ip": "127.0.0.1",
"method": "POST",
"status_code": 404,
"path": "/replace-me",
"timestamp": "2022-11-28T02:33:28.000Z”
}
4. ElephantSQL은 PostgreSQL 데이터베이스를 제공하는 클라우드 데이터베이스 서비스입니다. ElephantSQL 사이트 접속 후 인스턴스 생성 후 정보를 확인 합니다.
5. 데이터베이스 연결 테스트 하기 위해 .env 파일을 하나 생성해 환경 설정을 진행 해야 합니다.
6. SQL 파일 확인 하기 위해 아래와 같은 명령으로 볼 수 있습니다
7. 수직기 (Collector) 작성 하기 위해 내용 확인 합니다. $ cat sample.json | ./collector.js 명령으로 어떻게 작동하는지 볼 수 있습니다. JSON 형식을 맞춰 수집기를 통해 적재된 데이터가 정상적인지 한번 확인해봅시다. $ ./sql-runner.js < sql/3_display_table_data.sql 사용하면 하단 그림과 같이 확인 가능합니다.
Method ~ Timestamp 에 ‘Null’으로 확인 되어 collector JSON 수정이 필요합니다.
8. 수정이 완료됐으면, 정상적으로 작동하는 확인 하기 위해 다시 $ ./sql-runner.js < sql/3_display_table_data.sql 명령을 입력하여 아래 테이블이 나와야 합니다.
9. Nginx 실행후 access.log을 tail -f 명령으로 관찰합니다
access.log가 잘 표시 되면 tail -f -0 /var/log/nginx/access.log | ./parser.js | ./collector.js 추가 확인 합니다
10. ./sql-runner.js < sql/3_display_table_data.sql 명령을 이용하여 테이블 데이터 확인 합니다.
'데이터베이스 기초' 카테고리의 다른 글
DevOps Day 18 (3.30) 데이터베이스_데이터 파이프라인 (0) | 2023.03.31 |
---|---|
DevOps Day 17 (3.29) 데이터베이스_수평확장된 데이터베이스와 중복처리 (0) | 2023.03.31 |
DevOps Day 17 (3.29) 데이터베이스_배치 작업에 따른 성능 저하 (0) | 2023.03.31 |
DevOps Day 17 (3.29) 데이터베이스_데이터 파티셔닝 + 캐시 (0) | 2023.03.31 |
DevOps Day 17 (3.29) 데이터베이스_문제 상황에 따른 해결책 (0) | 2023.03.31 |