背景
本文简单介绍下,Prometheus如何通过exporters监控Oracle数据库,以及应该注意哪些指标。
oracledb_exporter
oracledb_exporter是一个连接到Oracle数据库并生成Prometheus metrics的应用程序,
设置
展示下如何安装和设置oracledb_exporter,以使用Prometheus来监控Oracle数据库。oracledb_exporter部署在k8s集群中
在k8s使用Deployment部署oracledb_exporter,并添加注解,以实现Prometheus自动发现oracledb_exporter断点并收集指标
spec:
template:
metadata:
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9161"
prometheus.io/path: "/metrics"
oracledb_exporter需要Oracle的连接信息才能访问和生成指标,此参数作为环境变量传递到exporter。由于连接信息包含用于访问数据库的用户和密码,因此我们将使用Kubernetes Secret来存储它。
要创建到Oracle数据库的连接字符串的密码,可以使用以下命令:
kubectl create secret generic oracledb-exporter-secret \
--from-literal=datasource='YOUR_CONNECTION_STRING'
在deployment中,这样配置环境变量
env:
- name: DATA_SOURCE_NAME
valueFrom:
secretKeyRef:
name: oracledb-exporter-secret
key: datasource
要确保连接信息是否正确:
system/password@//database_url:1521/database_name.your.domain.com
可以使用 sqlplus docker镜像进行检测
docker run --net='host' --rm --interactive guywithnose/sqlplus sqlplus system/password@//database_url:1521/database_name.my.domain.com
下面添加一些自定义指标,包括慢查询(slow queries),错误查询(bug queries)
为了使用自定义指标:
在deployment中,我们将添加另一个环境变量