oracledb_exporter参考:
https://github.com/iamseth/oracledb_exporter
本文直接把oracledb_exporter部署在k8s环境。docker部署方式更为简单
我们使用Prometheus在Grafana上为Oracle实现监控仪表板。由于Oracle不支持http通信,它由Oracle Exporter获取指标,它将Oracle的内容发送到Prometheus,并将Prometheus内容输出到Grafana。

Oracle DB→Oracle Exporter→Prometheus→Grafana
Oracle Exporter需要将Oracle与Prometheus连接。Oracle Exporter将有关Oracle的信息传递给Prometheus。
创建yaml对象
部署oracle-export
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| cat <<EOF | kubectl create -f - apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: name: oracle-export-198 name: oracle-export-dm namespace: monitoring spec: replicas: 1 selector: matchLabels: app: oracle-export-198 template: metadata: labels: app: oracle-export-198 spec: containers: - image: wtingdocker/oracledb_exporter:latest name: oracle-export-198 command: - "/oracledb_exporter" ports: - containerPort: 9161 protocol: TCP env: - name: DATA_SOURCE_NAME value: "system/oracle@ip:1521/sid" #改成自己的数据库信息 定义DATA_SOURCE_NAME变量 --- kind: Service apiVersion: v1 metadata: labels: app: oracle-export-198 name: oracle-export-198 namespace: monitoring spec: type: NodePort ports: - port: 9161 targetPort: 9161 selector: app: oracle-export-198 EOF
|
修改prometheus.yml文件
1 2 3 4 5 6 7 8
| scrape_configs: - job_name: 'oracle-endpoint' static_configs: - targets: - oracle-export-X-X:9161 labels: target: '192.168.1.X' descr: 'XX数据库'
|
重新加载prometheus配置文件
1
| kubectl apply -f configmap.yaml
|
重新启动prometheus容器以使修改后的内容生效
Grafana展示
访问oracle-export端口验证Oracle和Prometheus连接


Grafana添加Prometheus数据库源

仪表板导入3333可以根据自己的需要添加export提供的metrics 展示以及通过alertmanager告警
