티스토리 뷰

반응형

Prometheus를 활용한 Grafana의 Oracle 모니터링 시스템

[참고 사이트]

Docker Hub - Oracle : https://hub.docker.com/r/wnameless/oracle-xe-11g/

Github - Oracle Exporter : https://github.com/iamseth/oracledb_exporter

Docker Hub - Prometheus : https://hub.docker.com/r/prom/prometheus/

Prometheus 설치 및 구성 : http://hyunki1019.tistory.com/127?category=693849

Grafana 설치 및 설정 : http://hyunki1019.tistory.com/128?category=693849


Prometheus를 활용해서 Grafana에 Oracle에 대한 모니터링 대시보드를 구현해 보겠습니다. Oracle은 http 통신을 지원하지 않기 때문에, Oracle Exporter를 활용해 Oracle에 대한 내용을 Prometheus로 전달하고, Prometheus의 내용을 Grafana에 출력하는 구조로 이루어져 있습니다.


       Oracle DB → Oracle Exporter → Prometheus → Grafana


(Grafana 공식 사이트에서 Oracledb 대시보드를 제공하고 있지만, 대시보드의 json 파일과 Prometheus를 사용한다는 점만 알려주고 있고 이를 실제로 연동한 내용에 대한 글이 별로 없어서 Oracle 모니터링 시스템을 테스트 해보는 데에 조금 애를 먹었습니다... 여기서 중요한 점은 Oracle Exporter를 사용해서 Prometheus와 연결을 하고, Grafana는 Prometheus와 연결한다는 점입니다.)


주의사항

여기에서 실행하는 Oracle DB, Oracle Exporter, Prometheus는 모두 Docker로 실행하였고 Grafana는 이전의 pgwatch2에서 실행한 Grafana에 Data Source와 Dashboard를 추가하였습니다. (Grafana에 대한 Docker 컨테이너를 따로 실행해서 진행해도 무방합니다.)


컨테이너 실행

Oracle과 Prometheus를 연결하기 위해서는 Oracle Exporter가 필요합니다. Oracle Exporter가 Oracle에 대한 내용을 Prometheus에 전달합니다.

Docker를 이용해 oracle, oracledb_exporter, prometheus 컨테이너를 실행합니다.


Oracle 실행

# oracle 실행
sudo docker run -d --name oracle -p 1521:1521 wnameless/oracle-xe-11g:16.04


Oracle Exporter 실행

Oracle Exporter 컨테이너는 위에서 실행한 Oracle 컨테이너와 링크로 연결시켜 줍니다.

# oracle exporter 실행
sudo docker run -d --name oracledb_exporter --link=oracle -p 9161:9161 -e DATA_SOURCE_NAME=system/oracle@oracle/xe iamseth/oracledb_exporter


Prometheus 실행

# Prometheus 실행
sudo docker run -d --name prometheus -v prometheus:/var/lib/prometheus -p 9090:9090 prom/prometheus


Oracle & Prometheus 연결

컨테이너를 실행시키고 난 뒤에는 prometheus.yml을 수정해 Oracle Exporter와 Prometheus를 연결합니다.

# prometheus.yml 파일 수정(prometheus 컨테이너 내에 있는 prometheus.yml 파일)
sudo docker exec -it prometheus sh
vi /etc/prometheus/prometheus.yml

prometheus.yml 파일의 scrape_configs: 항목에 아래의 내용을 추가합니다. targets을 Oracle Exporter의 주소로 설정해주어야 합니다.

    :
scrape_configs:
    :
  - job_name: 'oracledb'
    static_configs:
      - targets: ['172.16.25.70:9161']



수정된 내용을 적용하기 위해 prometheus 컨테이너를 재시작합니다.

# prometheus 컨테이너 재시작
sudo docker restart prometheus


Oracle & Prometheus 연결 확인

prometheus 웹 페이지(http://172.16.25.70:9090)에 접속해 상단의 메뉴바에서 'Status > Targets'를 클릭합니다.

기존에 존재하는 prometheus와 위에서 추가한 oracledb 타겟이 출력되고 StateUP으로 표시되면 정상적으로 연결이 완료된 것입니다.




Prometheus & Grafana 연결

Oracle DB에 대한 내용들을 모니터링하기 위해 Prometheus와 Grafana를 연결해야 합니다.


Data Source 추가

우선, Grafana 웹 페이지에 접속해 Data Source를 추가합니다.

왼쪽 상단의 메뉴 > Data Sources > Add data source 버튼을 클릭합니다. (Data Source 추가를 위해서는 Grafana에 로그인 해야합니다. ID: admin, PW: pgwatch2admin)

아래와 같은 항목들을 입력하고 Data Source를 추가합니다.

  • Name: Oracle
  • Type: Prometheus
  • URL: http://172.16.25.70:9090
  • Access: proxy

Save & Test 버튼을 클릭했을 때 다음과 같은 두가지 메세지가 출력되야 합니다.

  • Datasource updated
  • Data source is working



Oracledb 대시보드 다운로드

Oracledb 대시보드를 Import하기 전에, 우선 https://grafana.com/dashboards/3333 페이지에서 Oracledb에 대한 JSON 파일을 다운로드합니다.


대시보드 Import

Grafana가 제공하는 Oracledb 대시보드를 다운로드한 뒤 Import 하면 Oracle에 대한 모니터링이 가능합니다.

http://172.16.25.70:3000 페이지에 접속해 로그인하고, (ID: admin, PW: pgwatch2admin) 왼쪽 상단의 메뉴 > Dashboard > Import 를 클릭합니다.



Import Dashboard 입력창에서 Upload .json File 버튼을 클릭하고, 위에서 다운로드한 Oracledb 대시보드의 JSON 파일을 업로드합니다.



그런 다음, Options 항목에서 Name을 입력(사용자가 원하는 이름으로 지정 가능. 대시보드의 이름)하고, prometheus는 위에서 추가한 Data Source인 Oracle을 선택합니다.



입력을 완료한 뒤 Import 버튼을 클릭하면 다음과 같은 Oracledb 대시보드 페이지가 출력됩니다.




반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함