通过oracledb_exporter远程监控oracle数据库

诗林  金牌会员 | 2024-10-6 04:53:18 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 703|帖子 703|积分 2109

记录:在摆设了prometheus主机上通过拉取oracledb_exporter的docker镜像,实现远程端口监控oracle数据库。

条件:摆设prometheus的主机要和oracle数据库能够互通,且prometheus主机能够访问外网。有防火墙就添加相应战略,该放行放行,该关闭关闭。

官方文档中已给出对应教程:


 
1. 安装docker

1.1 更新yum源

  1. yum update
复制代码
1.2 安装必要软件包 

  1. yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码
1.3 添加Docker存储库

  1. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
复制代码
 1.4 安装Docker引擎 

  1. yum install docker-ce docker-ce-cli containerd.io
复制代码
1.5 启动Docker服务并设置为开机自启动

1.5.1 启动docker服务

  1. sudo systemctl start docker
复制代码
1.5.2 设置开机自启
  1. sudo systemctl enable docker
复制代码

2. 拉取oracledb_exporter的docker镜像

  1. docker pull ghcr.io/iamseth/oracledb_exporter:0.5.0
复制代码

3. 为系统背景启动一个名为 oracledb_exporter 的 Docker 容器

 格式:
   docker run -d -it --rm -p 9161:9161 -e DATA_SOURCE_NAME="oracle://数据库的用户名:数据库的暗码@数据库的IP:数据库的端口/数据库实例名" --name oracledb_exporter ghcr.io/iamseth/oracledb_exporter:0.5.0
   例子:
  1. docker run -d -it --rm -p 9161:9161 -e DATA_SOURCE_NAME="oracle://test:test@1234@192.168.1.1:1521/orcl" --name oracledb_exporter ghcr.io/iamseth/oracledb_exporter:0.5.0
复制代码
解析:
参数/选项分析docker run运行 Docker 容器的下令。-d背景运行容器并立即退出,容器在背景作为守护进程运行。-it-i 保持容器的标准输入打开,-t 分配一个伪终端。这使得你可以与容器进行交互。--rm容器退出时自动清算容器文件系统,即删除容器。-p 9161:9161将容器的 9161 端口映射到宿主机的 9161 端口。-e DATA_SOURCE_NAME设置环境变量 DATA_SOURCE_NAME。"oracle://test:test1234@192.168.1.1:1521/orcl"指定 Oracle 数据库的毗连信息,格式为 oracle://username:password@host:port/instance_name。--name oracledb_exporter为容器指定名称 oracledb_exporter。ghcr.io/iamseth/oracledb_exporter:0.5.0指定要利用的 Docker 镜像及其版本标签。  
详细分析



  • docker run:这是 Docker CLI 的基本下令,用于创建并启动一个新的容器。
  • -d:告诉 Docker 在背景运行容器。这意味着容器会在背景运行,不会壅闭当前的下令行。
  • -it:使得你可以与容器进行交互。-i 保持容器的标准输入打开,-t 分配一个伪终端。
  • --rm:容器在退出时会被自动删除,这有助于清算不再需要的容器。
  • -p 9161:9161:将容器内部的 9161 端口映射到宿主机的 9161 端口。如许,你可以通过访问宿主机的 9161 端口来访问容器内部的服务。
  • -e DATA_SOURCE_NAME:设置环境变量 DATA_SOURCE_NAME,用于通报数据库毗连信息。格式为 oracle://username:password@host:port/instance_name。

    • username:数据库用户名。
    • password:数据库暗码。
    • host:数据库服务器的 IP 地址或主机名。
    • port:数据库服务器的端标语。
    • instance_name:实例名。

  • --name oracledb_exporter:为容器指定一个名称,这里名称为 oracledb_exporter。这使得你可以通过名称而不是容器 ID 来引用容器。
  • ghcr.io/iamseth/oracledb_exporter:0.5.0:指定要利用的 Docker 镜像及其版本。这里利用的是 GitHub Container Registry 上的 iamseth/oracledb_exporter 镜像,版本为 0.5.0。
 顺便给个启动脚本,可以写进crontab计划任务中,用于检测进程在线环境

 这内里的 oracle://test:test1234@192.168.1.1:1521/orcl 要改成自己对应的数据库账号、暗码、IP、端口。
应该没有人傻到直接抄我的(小声哔哔)
  1. #!/bin/bash
  2. # 定义容器名称
  3. CONTAINER_NAME="oracledb_exporter"
  4. # 检查容器是否在运行
  5. if [ $(docker ps -q -f name=^/${CONTAINER_NAME}$) ]; then
  6.     echo "容器 ${CONTAINER_NAME} 正在运行。"
  7. else
  8.     echo "容器 ${CONTAINER_NAME} 没有运行。"
  9.     docker run -d -it --rm -p 9161:9161 -e DATA_SOURCE_NAME="oracle://test:test1234@192.168.1.1:1521/orcl" --name oracledb_exporter ghcr.io/iamseth/oracledb_exporter:0.5.0
  10.     if [ $? -eq 0 ]; then
  11.         echo "容器 ${CONTAINER_NAME} 启动成功。"
  12.     else
  13.         echo "容器 ${CONTAINER_NAME} 启动失败。"
  14.         exit 1
  15.     fi
  16. fi
复制代码
怎么写进crontab,自行查找教程。

本实验仅用于实验,所有问题概不负责。
本实验仅用于实验,所有问题概不负责。
本实验仅用于实验,所有问题概不负责。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表