# 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등과 연동하여 세션 정보 및 인프라적 요소를 함께 모니터링 한다면 더욱 활용도가 높을거 같다.