본문 바로가기

DB/DB 모니터링

Grafana를 활용한 Postgresql 모니터링 환경 구성

# Grafana를 활용한 DB 모니터링 환경 구성

- DB 모니터링 툴에는 다양한 애플리케이션이 존재

- 오픈소스 중 모니터링에 가장 많이 사용하고 있는 Grafana를 활용하여 DB 모니터링 환경 구성

- EC2 및 온프레미스 환경이라고 가정하고 진행

1. Grafana 설치

// 설치 전 확인 
# sudo apt-get update 
# sudo apt-get upgrade 
# apt-get install -y software-properties-common 
# sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" 
# wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - 
# sudo apt-get update 

// 그라파나 설치 
# sudo apt-get install grafana 
# sudo apt-get install -y apt-transport-https 
# sudo ls /usr/lib/systemd/system/grafana-server.service 

// 서버정보 확인 
# cat /usr/lib/systemd/system/grafana-server.service 

// 포트허용  
# sudo ufw allow 3000 

// 시작 
# sudo systemctl start grafana-server 
// 동작확인 
# sudo systemctl status grafana-server 
// 재시작 
# sudo systemctl restart grafana-server 

// id : admin 
// password : admin 
// 접속 : localhost:3000

2. 접속하기

보통 public_ip:3000 을 브라우저에 입력하여 Grafana 로그인 페이지로 접속 (3000번 포트는 Grafana의 서비스 포트 이다.)

- 접속 화면

3. Postgresql 과 연동하기

- PostgreSQL DataSource 등록

등록하는 방법은 톱니바퀴 모양의 설정 아이콘을 클릭한 후, Data Sources 메뉴를 선택

- Add data source 버튼 클릭

다음으로 Add data source 버튼을 클릭 후 PostgreSQL 선택 하면 PostgreSQL 설정 화면으로 이동한다.

여기서 현재 접속하고 하는 PostgreSQL 의 접속 정보를 알맞게 입력한다.

- 버전은 현재 PostgreSQL 버전을 확인하여 알맞게 입력해준다. (여기서는 14버전으로 설정)

- 접속 테스트

앞서, 설정을 정상적으로 모두 완료 하였다면 Save & test 버튼을 통해 접속 연결 테스트를 진행 한다.

- Data Source 저장 확인

Data Source 메뉴를 선택하면 다음과 같이 PostgreSQL Data Source 가 표시되는 것을 확인 할 수 있다.

- Dash Board 생성

이제 연결을 모두 마쳤으니, 실제로 SQL 구문을 작성하여 Dash Board 가 생성 되는지 테스트를 진행

먼저 New Dashboard 메뉴를 선택 한다.

- Add a new panel 메뉴 선택

- Query 옵션 설정

Add a new panel 메뉴를 선택 했다면, 모니터링 리소스를 쿼리하여 화면에 표시하기 위한 여러 옵션 메뉴들이 존재한다.

여기서 아래와 같이 Build와 Code를 선택하여 Code로 쿼리를 작성하여 화면에 표시하는 데이터를 뽑아 낼 수 있고, Builder를 선택하여 화면에 뿌려질 데이터를 선택 할 수 있다.

! 쿼리 작성시 주의 사항

시계열 데이터는 Time series를 선택하여 실시간 변화하는 데이터를 화면에 표시, 그게 아니라면 Table 및 Bar Chart 를 선택하여 데이터를 화면에 표시한다.

적용 완료 모습

# 결론

- 데이터를 뽑아내는 쿼리를 RDB 기반으로 작성할 수 있어서 자유럽게 원하는 데이터를 뽑아낼 수 있다는 점에서 흥미로웠으며 여러가지 비주얼 적인 모니터링 요소들이 존재해서 구성만 잘 한다면 활용도 측면에서 매우 좋을것으로 예상한다.

- 다만 Prometheus등과 연동하여 세션 정보 및 인프라적 요소를 함께 모니터링 한다면 더욱 활용도가 높을거 같다.