티스토리 뷰
[Monitoring Tool] Prometheus를 활용한 Grafana의 Oracle 모니터링 시스템
miiingo 2018. 2. 9. 18:10Prometheus를 활용한 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 타겟이 출력되고 State
가 UP
으로 표시되면 정상적으로 연결이 완료된 것입니다.
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 대시보드 페이지가 출력됩니다.
'개발도구 > Monitoring Tool' 카테고리의 다른 글
[Monitoring Tool] Elasticsearch를 이용한 nodejs APM 적용 (0) | 2019.06.20 |
---|---|
[Monitiring Tool] Elastic Stack(Filebeat, Logstash, Elasticsearch, Kibana) 구성 실습 (0) | 2019.06.19 |
[Monitoring Tool] Grafana에 PostgreSQL, Oracle, Scouter 모니터링 대시보드 개발 (0) | 2018.02.09 |
[Monitoring Tool] InfluxDB를 활용한 Grafana의 Scouter 모니터링 시스템 (2) | 2018.02.09 |
[Monitoring Tool] pgwatch2를 활용한 Grafana의 PostgreSQL 모니터링 시스템 (1) | 2018.02.09 |
- Total
- Today
- Yesterday
- Hyperledger Indy
- ambrosus
- Hyperledger Fabric
- Hyperledger Fabric v1.1
- 코테
- Blockchain
- 블록체인
- 알고리즘
- ubuntu
- 빅데이터 강의
- 하이퍼레저 패브릭
- 하이퍼레저 페브릭
- 코딩테스트
- 빅데이터
- 암브로셔스
- 하이퍼레저 인디
- Hyperledger Fabric v1.2
- 직딩잇템
- Private Data
- codility
- DOCs
- javascript
- 기초 of 기초 데이터 개념
- 문제풀이
- docker
- 빅데이터 교육
- 어서와 데이터는 처음이지
- 빅데이터 기초
- 코딜리티
- 블록 체인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |