首页 > 数据库 > Oracle > Nagois监控oracle数据库注意的地方
客户端的nagios用户必须加入oracle用户组
/etc/oratab文件必须存在,且ORACLE_SID:ORACLE_HOME必须存在
nagios用户的.bash_profile文件必须有ORACLE_SID和ORACLE_HOME变量
nagios客户端
必须在nagios、oracle、root三个用户下执行如下都正常的时候,nagios服务端才不会报错
/usr/local/nagios/libexec/check_oracle --login SIDNAME
--
login tnsname相当于既监控了listener,也监控了DB
/usr/local/nagios/libexec/check_oracle中有如下内容
echo " $PROGNAME --tns "
echo " $PROGNAME --db "
echo " $PROGNAME --login "
echo " $PROGNAME --connect "
echo " $PROGNAME --cache "
echo " $PROGNAME --tablespace "
echo " $PROGNAME --oranames "
echo " $PROGNAME --tns <Oracle Sid or Hostname/IP address>"
echo " $PROGNAME --db <ORACLE_SID>"
echo " $PROGNAME --login <ORACLE_SID>"
echo " $PROGNAME --connect <ORACLE_SID>"
echo " $PROGNAME --cache <ORACLE_SID> <USER> <PASS> <CRITICAL> <WARNING>"
echo " $PROGNAME --tablespace <ORACLE_SID> <USER> <PASS> <TABLESPACE> <CRITICAL> <WARNING>"
echo " $PROGNAME --oranames <Hostname>"
其实发现
login时,sid和tnsname都可以正常使用
(客户端nagios和oracle用户执行如下语句都正常)
/usr/local/nagios/libexec/check_oracle --login ORACLE_SID(root用户执行也正常,nagios服务端正常不报错)
/usr/local/nagios/libexec/check_oracle --login tnsname(
但是
root用户执行会报错,nagios服务端也报错,
除非把客户端
/etc/oratab中SID名称修改为tnsname
)
Dataguard情况的备库环境下,本机的sid和本机的tnsname一般是不同的
使用sid时,发现监控的是主库
使用tnsname时,nagios客户端的nagios、oracle执行/usr/local/nagios/libexec/check_oracle --login tnsname都正常,
但是nagios客户端的root执行/usr/local/nagios/libexec/check_oracle --login tnsname又报错,从而nagios服务端也报错,
除非在nagios客户端修改/etc/oratab中SID名称为tnsname名称
如下dwdg既非SID也非tnsname,则报错,oracle用户下和root下报错是不一样的
[oracle@dwdg ~]$ /usr/local/nagios/libexec/check_oracle --login dwdg
CRITICAL - ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
[root@dwdg ~]# /usr/local/nagios/libexec/check_oracle --login dwdg
Cannot determine ORACLE_HOME for sid dwdg
如下DWDG138是tnsname的时候,关闭监听,则报错,oracle用户下和root下报错是一样的,说明
使用login tnsname
可以监控监听
[root@dwdg ~]# /usr/local/nagios/libexec/check_oracle --login DWDG138
CRITICAL - ORA-12541: TNS:no listener
[oracle@dwdg ~]$ /usr/local/nagios/libexec/check_oracle --login DWDG138
CRITICAL - ORA-12541: TNS:no listener
如下DWDG138是tnsname的时候,监听正常,修改/etc/oratab中SID名称为DWDG138,但是DB的实际SID是DW,但是关闭了DB,则报错,
说明
使用login tnsname可以监控监听和DB
[root@dwdg ~]# /usr/local/nagios/libexec/check_oracle --login DWDG138
CRITICAL - ORA-01034: ORACLE not available
此外login tnsname仅来自ORACLE_HOME/network/admin/tnsnames.ora,因ERP环境tns为ORACLE_HOME/network/admin/SID_hostname/tnsnames.ora,则ERP环境下需要cp ORACLE_HOME/network/admin/SID_hostname/tnsnames.ora ORACLE_HOME/network/admin/tnsnames.ora
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30126024/viewspace-2132787/ ,如需转载,请注明出处,否则将追究法律责任。