본문 바로가기
데이터베이스 기초

DevOps Day 19 (3.31) 데이터베이트_실습

by Jackykim 2023. 3. 31.

실습 안내
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.logtail -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 명령을 이용하여 테이블 데이터 확인 합니다.