zabbix利用orabbix123监控oracle数据库及表空间.docx

上传人:b****3 文档编号:3938624 上传时间:2022-11-26 格式:DOCX 页数:14 大小:237.58KB
下载 相关 举报
zabbix利用orabbix123监控oracle数据库及表空间.docx_第1页
第1页 / 共14页
zabbix利用orabbix123监控oracle数据库及表空间.docx_第2页
第2页 / 共14页
zabbix利用orabbix123监控oracle数据库及表空间.docx_第3页
第3页 / 共14页
zabbix利用orabbix123监控oracle数据库及表空间.docx_第4页
第4页 / 共14页
zabbix利用orabbix123监控oracle数据库及表空间.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

zabbix利用orabbix123监控oracle数据库及表空间.docx

《zabbix利用orabbix123监控oracle数据库及表空间.docx》由会员分享,可在线阅读,更多相关《zabbix利用orabbix123监控oracle数据库及表空间.docx(14页珍藏版)》请在冰豆网上搜索。

zabbix利用orabbix123监控oracle数据库及表空间.docx

zabbix利用orabbix123监控oracle数据库及表空间

orabbix-1.2.3监控oracle数据库

1、服务器端配置:

1.1服务器版本说明

操作系统

版本号

内核版本

Centos

7.2.1511forx86_64

3.10.0-327.el7

zabbix版本3.2.0

orabbix-1.2.3

Java版本1.8.0.65

1.2安装jdk软件

java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64

java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64

java-1.8.0-openjdk-devel-1.8.0.65-3.b17.el7.x86_64

java-atk-wrapper-0.30.4-5.el7.x86_64

javapackages-tools-3.4.1-11.el7.noarch

javassist-3.16.1-10.el7.noarch

python-javapackages-3.4.1-11.el7.noarch

tzdata-java-2016a-1.el7.noarch

用centos光盘做成yum源直接安装会缺少这个包需要去网站上下载

如果这个包不安装jdbc就不会从客户端获取到数据。

1.3安装orabbix软件

下载地址:

这个下载地址和所有大神写的文档都一样下载下来orabbix-1.2.3.zip这个包。

(orabbix已经很久没更新了,从2013年的网上的文档到现在用的都是这个包)

[root@zabbix-serveropt]#mkdir/opt/orabbix

上传orabbix-1.2.3.zip至/opt/orabbix目录下

[root@zabbix-serverorabbix]#unziporabbix-1.2.3.zip#解压这个文件

赋权

[root@zabbix-serveropt]#chmoda+x/opt/orabbix–R

#这步有很多网上的文档省略了,但是很关键

下面是解压出来的文件

注意orabbix-1.2.3.jar这个jdbc文件这个很关键。

1.4配置orabbix的配置文件

[root@zabbix-serveropt]#cd/opt/orabbix/conf/

[root@zabbix-serverconf]#cpconfig.props.sampleconfig.props#复制模板文件

[root@zabbix-serverconf]#viconfig.props#编辑配置文件

下面的配置文件中需要修改的都用蓝色加粗了

---------------------------------------------------------------------------------------------------------------------------------

ZabbixServerList=zabbix-server#服务器的主机名

zabbix-server.Address=133.64.103.210#服务器的主机名及IP地址

zabbix-server.Port=10051#服务器的主机名及端口号

OrabbixDaemon.PidFile=./logs/orabbix.pid

OrabbixDaemon.Sleep=300

OrabbixDaemon.MaxThreadNumber=100

DatabaseList=sbzytst188#客户端的主机名称不过网上其他文档说可以随便写我没试

DatabaseList.MaxActive=10

DatabaseList.MaxWait=100

DatabaseList.MaxIdle=1

sbzytst188.Url=jdbc:

oracle:

thin:

@133.64.86.188:

1521:

sbzytst

#这行很关键写错无数据客户机主机名客户机IP地址端口号:

实例名

sbzytst188.User=zabbix#数据库内创建zabbix用

sbzytst188.Password=zabbix#zabbix这个用户的密码

sbzytst188.MaxActive=10

sbzytst188.MaxWait=100

sbzytst188.MaxIdle=1

sbzytst188.QueryListFile=./conf/query.props

---------------------------------------------------------------------------------------------------------------------------------

1.5启动服务查看进程

#cp-a/opt/orabbix/init.d/orabbix/etc/init.d/orabbix(开机自动启动)

[root@zabbix-serveropt]#serviceorabbixstart

或者

sh/opt/orabbix/run.sh#推荐使用脚本方式启动,可以看到启动过程中的问题。

#psaux|greporabbix

tail-f/opt/orabbix/logs/orabbix.log

[root@zabbix-server~]#systemctlenableorabbix添加orabbix到自动启动

#日志查看程序启动是否正常,不过就算程序正常启动tzdata-java-2016a-1.el7.noarch包不安装也是没有数据。

 

1.6zabbixweb页面添加主机

主机名称:

必须是客户机的主机名否则zabbix无法监控

客户机IP地址

客户机的端口这里填写10051而不是10050因为orabbix的监控项使用的zabbix探测器默认使用的是10051端口

同时也要修改[root@sbzytst188~]#cat/etc/zabbix/zabbix_agentd.conf

###Option:

ListenPort

ListenPort=10051监听端口改至10051

 

1.7模板导入

[root@zabbix-serverconf]#cd/opt/orabbix/template/

#orabbix自带的模板都在这个目录下面共有4个文件导入时只需要导入Orabbix_export_full.xml就可以了

Orabbix_export_full.xml

Orabbix_export_graphs.xml

Orabbix_export_items.xml

Orabbix_export_triggers.xml

在zabbix3.2中Template_Oracle模板与TemplateOSLinux模板有很多共同的监控项所以导入Template_Oracle模板时要先停用TemplateOSLinux模板。

到这里还没有监控成功,需要在客户端的oracle数据库中添加zabbix用户及赋权

 

2、客户端操作:

2.1、数据库操作

1)#su-oralce登录oracle命令行

#sqlplus/assysdba

2)创建zabbix用户

createuserzabbixidentifiedbyzabbix

defaulttablespacesystemtemporarytablespacetemp

profiledefaultaccountunlock;

3)赋予zabbix一切查看权限

GRANTCONNECTTOZABBIX;

GRANTRESOURCETOZABBIX;

ALTERUSERZABBIXDEFAULTROLEALL;

GRANTSELECTANYTABLETOZABBIX;

GRANTCREATESESSIONTOZABBIX;

GRANTSELECTANYDICTIONARYTOZABBIX;

GRANTUNLIMITEDTABLESPACETOZABBIX;

GRANTSELECTANYDICTIONARYTOZABBIX;

2.2、如果是11G的数据库版本

还需要执行下面的语句开放ACL的访问控制,否则在监控的过程中有部份内容无法正常显示(例于数据库版本,数据库文件大小等),而且orabbix的日志显示中也会有以下的错误提示。

execdbms_network_acl_admin.create_acl(acl=>'resolve.xml',description=>'resolveacl',principal=>'ZABBIX',is_grant=>true,privilege=>'resolve');

execdbms_network_acl_admin.assign_acl(acl=>'resolve.xml',host=>'*');

commit;

 

3、验证数据

登陆zabbixweb端查看:

这里监控的内容都是orabbix自带的模板监控项

想要其他的监控内容还需要自己添加。

数据信息正常获取。

四、安装配置过程中产生的问题

安装完成后启动服务后正常无报错,但接收不到任何数据。

查看日志

[root@zabbix-server~]#cat/opt/orabbix/logs/orabbix.log

日志内信息

--------------------------------------------------------

StartingOrabbixVersion1.2.3

Orabbixstartedwithpid:

18944

PidFile->./logs/orabbix.pid

--------------------------------------------------------

日志信息不完整且没有成功连接数据库的信息

下面为正常日志信息

----------------------------------------------------------

2016-10-1310:

04:

22,655[main]INFOOrabbix-StartingOrabbixVersion1.2.3

2016-10-1310:

04:

22,670[main]INFOOrabbix-Orabbixstartedwithpid:

21037

2016-10-1310:

04:

22,671[main]INFOOrabbix-PidFile->./logs/orabbix.pid

2016-10-1310:

04:

22,829[main]INFOOrabbix-DBPoolcreated:

mons.dbcp.datasources.SharedPoolDataSource@1963006a

2016-10-1310:

04:

22,829[main]INFOOrabbix-URL=jdbc:

oracle:

thin:

@133.64.86.188:

1521:

sbzytst

2016-10-1310:

04:

22,829[main]INFOOrabbix-maxPoolSize=10

2016-10-1310:

04:

22,829[main]INFOOrabbix-maxIdleSize=1

2016-10-1310:

04:

22,829[main]INFOOrabbix-maxIdleTime=1800000ms

2016-10-1310:

04:

22,829[main]INFOOrabbix-poolTimeout=100

2016-10-1310:

04:

22,829[main]INFOOrabbix-timeBetweenEvictionRunsMillis=-1

2016-10-1310:

04:

22,829[main]INFOOrabbix-numTestsPerEvictionRun=3

2016-10-1310:

04:

27,328[main]INFOOrabbix-ConnectedasZABBIX

2016-10-1310:

04:

27,332[main]INFOOrabbix----------onDatabase->sbzytst

2016-10-1310:

04:

30,343[pool-1-thread-1]INFOOrabbix-DonewithdbJobondatabasesbzytst188QueryListelapsedtime2972ms

-----------------------------------------------------------------

发现问题:

使用[root@zabbix-serverorabbix]#sh/opt/orabbix/run.sh脚本运行报错

Causedby:

java.lang.Error:

java.io.FileNotFoundException:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre/lib/tzdb.dat(Nosuchfileordirectory)

去目录下查看tzdb.dat文件

发现链接

tzdb.dat->/usr/share/javazi-1.8/tzdb.dat

但是/usr/share/javazi-1.8/tzdb.dat这个文件不存在

网上搜索了一下发现需要安装tzdata-java-2016a-1.el7.noarch.rpm就是本文开始中提到的。

安装该RPM包重启orabbix后数据正常收取。

这个问题不代表所有安装过程中遇到的问题,如果在其他环境中部署遇到问题还是要多XX。

5、监控数据库表空间

首先,需要创建脚本,获取到oracle数据库中的数据,下面是脚本:

vi/etc/zabbix/zabbix_agentd.d/oracle/tablespace.sh

exportPATH

exportORACLE_BASE=/oracle/app

exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db1

exportLANG="en_US"

exportORACLE_SID=sbzytst

exportNLS_LANG="AMERICAN_AMERICA.UTF8"

exportNLS_DATE_FORMAT="YYYY-MM-DDHH24:

MI:

SS"

exportPATH=$ORACLE_HOME/bin:

$ORACLE_HOME/OPatch:

$PATH

>/etc/zabbix/tablespace.log

sqlplus"/assysdba"<

@/etc/zabbix/zabbix_agentd.d/oracle/tablespace.sql

EOF

vi/etc/zabbix/zabbix_agentd.d/oracle/tablespace.sql

setserveroutputon

setheadingoff

setpagesize300

--setlinesize200

setfeedbackoff

columntablespace_namefora40

columnFREE(G)fora10

columnFREE_PCT(%)fora15

columnSIZEformat99,999,999,999

columnFREEformat99,999,999,999

columnUSEDformat99,999,999,999

columnFREE_PCTformat99,999,999,999

setechooff

spool/etc/zabbix/tablespace.log

SELECTTABLESPACE_NAME,

TO_CHAR(ROUND(BYTES/1024,2),'99990.00')"TOTAL(G)",

TO_CHAR(ROUND(FREE/1024,2),'99990.00')"FREE(G)",

TO_CHAR(ROUND(100*FREE/BYTES)/100,'99990.00')"FREE_PCT(%)"

FROM(SELECTA.TABLESPACE_NAMETABLESPACE_NAME,

FLOOR(A.BYTES/(1024*1024))BYTES,

FLOOR(B.FREE/(1024*1024))FREE,

FLOOR((A.BYTES-B.FREE)/(1024*1024))USED

FROM(SELECTTABLESPACE_NAMETABLESPACE_NAME,SUM(BYTES)BYTES

FROMDBA_DATA_FILES

GROUPBYTABLESPACE_NAME)A,

(SELECTTABLESPACE_NAMETABLESPACE_NAME,SUM(BYTES)FREE

FROMDBA_FREE_SPACE

GROUPBYTABLESPACE_NAME)B

WHEREA.TABLESPACE_NAME=B.TABLESPACE_NAME)

ORDERBYFLOOR(FREE/BYTES);

spooloff

quit

注意/etc/zabbix/tablespace.log文件的权限改为oracle。

通过执行这个脚本可以获取到oracle数据库中的tablespace列表,并输出到/etc/zabbix/tablespace.log日志中去,这个执行脚本需要修改属主属组为oracle.oracle,并且需要给于执行权限,在crontab中设置每一分钟执行一次,下面是执行得到的结果:

[root@sbzytst188zabbix]#cat/etc/zabbix/tablespace.log

-------------------------------------------------------------------------------

GRID_APP_DATA0.100.100.99SYSAUX1.400.540.38UNDOTBS193.9793.691.00SDH_INDEX390.00160.910.41SDE0.100.060.58SDH_PT1150.0087.760.59USERS0.120.110.90GRID_IND0.100.100.99SYSTEM2.481.270.51SDH_DATA690.00173.170.25GRID_RP_DATA0.100.100.99SDH_PT2180.0097.470.54

-------------------------------------------------------------------------------

上面就是取出来的数据,既然数据取出来了,那么剩下的要做的就是把数据弄到zabbix中去咯。

下面将使用下面两个脚本来对取出的这些数据进行格式化转换和取值:

[root@sbzytst188/]#cat/etc/zabbix/shell/oracle_discovery.sh

-------------------------------------------------------------------------------

#!

/bin/bash

TABLESPACE=`cat/etc/zabbix/tablespace.log|awk'{print$1}'|awk'NR>3{print}'`

COUNT=`echo"$TABLESPACE"|wc-l`

INDEX=0

echo'{"data":

['

echo"$TABLESPACE"|whilereadLINE;do

echo-n'{"{#TABLENAME}":

"'$LINE'"}'

INDEX=`expr$INDEX+1`

if[$INDEX-lt$COUNT];then

echo','

fi

done

echo']}'

-------------------------------------------------------------------------------

这个脚本的功能是从tablespace.log文件中取出Name那一列,并进行JSON格式化输出(因为zabbix的自动发现功能获取的数据类型是JSON格式的),下面是执行效果

[root@sbzytst188/]#sh/etc/zabbix/shell/oracle_discovery.sh

-------------------------------------------------------------------------------

{"data":

[

{"{#TABLENAME}":

"UNDOTBS1"},

{"{#TABLENAME}":

"SDH_INDEX"},

{"{#TABLENAME}":

"SDE"},

{"{#TABLENAME}":

"SDH_PT1"},

{"{#TABLENAME}":

"USERS"},

{"{#TABLENAME}":

"GRID_IND"},

{"{#TABLENAME}":

"SYSTEM"},

{"{#TABLENAME}":

"SDH_DATA"},

{"{#TABLENAME}":

"GRID_RP_DATA"},

{"{#TABLENAME}":

"SDH_PT2"}]}

-------------------------------------------------------------------------------

还有一个脚本是获取tablespace.log中的最后三列数据,脚本内容如下:

[root@sbzytst188/]#cat/etc/zabbix/shell/oracle_check.sh

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1