Nagios主动监控oracle数据库check_oracle_health
Nagios的Oracle监控插件 check_oracle_health
=====================================================
(nagios 服务器端配置)
1 安装check_oracle_health
下载:check_oracle_health-1.6.3.tar
tar zxvf check_oracle_health-1.6.3.tar.gz
cd check_oracle_health-1.6.3
./configure --prefix=/usr/local/nagios/ --with-nagios-user=nagios --with-nagios-gourp=nagios --with-mymodules-dir=/usr/local/nagios/libexec/ --with-mymodules-dyn-dir=/usr/local/nagios/libexec/
#指定用户、用户组以及目标路径等
make all
make install
2、设定系统环境变量
在root下,编辑.bash_profile,插入oracle用户的环境变量,要和oracle用户的.bash_profile文件中设置的一样
[root@sznagiosapp4 ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/opt/Navisphere/bin
export PATH
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/ora11g
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export ORACLE_TERM=vt100
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
PATH=$PATH:/usr/sbin; export PATH
PATH=$PATH:/usr/bin; export PATH
[root@sznagiosapp4 ~]#
3、安装perl的oracle插件
① wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.609.tar.gz
tar zxvf DBI-1.609.tar.gz
cd DBI-1.609
perl Makefile.PL
make all
make install
② wget http://cpan.wenzk.com/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.24a.tar.gz
tar -zxvf DBD-Oracle-1.24a.tar.gz
cd DBD-Oracle-1.24
perl Makefile.PL #此处如果之前不设定root的oracle环境变量会报错
make all
make install
③ 如果在运行脚本时报错
Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi
wget http://www.perl.com/CPAN/modules/by-module/Time/Time-HiRes-01.02.tar.gz
tar zxvf Time-HiRes-01.02.tar.gz
cd Time-HiRes-01.02
perl Makefile.PL
make all
make install
4 配置tnsnames.ora
增加监控Oracle的tns
=====================================================
(数据库端)
只需要打开的表dbsnmp用户
SQL> alter user dbsnmp account unlock;
User altered.
SQL> alter user dbsnmp identified by 123456;
User altered.
SQL> exit
=====================================================
(测试与应用)
配置数据库监控用户test 123456
test用户系统权限
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
test CREATE PROCEDURE NO
test UNLIMITED TABLESPACE NO
test SELECT ANY DICTIONARY NO
test CREATE TABLE NO
cd /usr/local/nagios/libexec
#检查数据库连接时间
./check_oracle_health --connect=orcl --user=dbsnmp --password=123456 --warning $ARG4$ --critical $ARG5$ --mode connection-time
#数据库监听
./check_oracle_health --connect=orcl --mode=tnsping
#全库数据量
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode used-spaces
#表空间使用率
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode tablespace-usage
#锁等待时间
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode lock-times
#锁等待数量
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode lock-numbers
#长事务
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode long-transactions
#无效对象数
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode invalid-objects
#进程使用率
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode connected-users
等等。。。。
Nagios的Oracle监控插件 check_oracle_health
=====================================================
(nagios 服务器端配置)
1 安装check_oracle_health
下载:check_oracle_health-1.6.3.tar
tar zxvf check_oracle_health-1.6.3.tar.gz
cd check_oracle_health-1.6.3
./configure --prefix=/usr/local/nagios/ --with-nagios-user=nagios --with-nagios-gourp=nagios --with-mymodules-dir=/usr/local/nagios/libexec/ --with-mymodules-dyn-dir=/usr/local/nagios/libexec/
#指定用户、用户组以及目标路径等
make all
make install
2、设定系统环境变量
在root下,编辑.bash_profile,插入oracle用户的环境变量,要和oracle用户的.bash_profile文件中设置的一样
[root@sznagiosapp4 ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/opt/Navisphere/bin
export PATH
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/ora11g
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export ORACLE_TERM=vt100
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
PATH=$PATH:/usr/sbin; export PATH
PATH=$PATH:/usr/bin; export PATH
[root@sznagiosapp4 ~]#
3、安装perl的oracle插件
① wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.609.tar.gz
tar zxvf DBI-1.609.tar.gz
cd DBI-1.609
perl Makefile.PL
make all
make install
② wget http://cpan.wenzk.com/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.24a.tar.gz
tar -zxvf DBD-Oracle-1.24a.tar.gz
cd DBD-Oracle-1.24
perl Makefile.PL #此处如果之前不设定root的oracle环境变量会报错
make all
make install
③ 如果在运行脚本时报错
Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi
wget http://www.perl.com/CPAN/modules/by-module/Time/Time-HiRes-01.02.tar.gz
tar zxvf Time-HiRes-01.02.tar.gz
cd Time-HiRes-01.02
perl Makefile.PL
make all
make install
4 配置tnsnames.ora
增加监控Oracle的tns
=====================================================
(数据库端)
只需要打开的表dbsnmp用户
SQL> alter user dbsnmp account unlock;
User altered.
SQL> alter user dbsnmp identified by 123456;
User altered.
SQL> exit
=====================================================
(测试与应用)
配置数据库监控用户test 123456
test用户系统权限
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
test CREATE PROCEDURE NO
test UNLIMITED TABLESPACE NO
test SELECT ANY DICTIONARY NO
test CREATE TABLE NO
cd /usr/local/nagios/libexec
#检查数据库连接时间
./check_oracle_health --connect=orcl --user=dbsnmp --password=123456 --warning $ARG4$ --critical $ARG5$ --mode connection-time
#数据库监听
./check_oracle_health --connect=orcl --mode=tnsping
#全库数据量
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode used-spaces
#表空间使用率
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode tablespace-usage
#锁等待时间
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode lock-times
#锁等待数量
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode lock-numbers
#长事务
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode long-transactions
#无效对象数
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode invalid-objects
#进程使用率
./check_oracle_health --connect=$ARG1$ --user=$ARG2$ --password=$ARG3$ --warning $ARG4$ --critical $ARG5$ --mode connected-users
等等。。。。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29500582/viewspace-1327025/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29500582/viewspace-1327025/