使用Prometheus监控Oracle系统展示到Grafana

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

1
curl -XPOST http://192.168.7.X:30680/-/reload

Grafana展示

访问oracle-export端口验证Oracle和Prometheus连接
oracle1
oracle1
Grafana添加Prometheus数据库源
oracle2

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