一、在 Oracle 所在服务器上安装
NRPE
#useradd nagios
# wget http://nchc.dl.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
# tar xvfz nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure--prefix=/usr/local/nagios
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config
# make install-xinetd
注意点:
1.由于 nagios 脚本需要读取 oracle 相关文件。所以运行 nagios 的用户需要定义为 oracle
服务用户。并且修改 /etc/xinted.d/nrpe 中的配置。
service nrpe
{
flags=REUSE
socket_type=stream
port=5666
wait=no
user=oracle
group=nagios
server= /usr/local/nagios/bin/nrpe
server_args= -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable=no
only_from=127.0.0.1 10.0.0.99
}
2.将nagios服务器上libexec目录中的check_oracle和utils.sh拷贝到oracle服务器的libexec目录中,并修改
check_oracle 脚本。
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
二、 配置 nrpe 服务
修改 /usr/local/nagios/etc/nrpe.cfg 文件。加入以下内容:
#Check Oracle
command[check_oracle_tns]=/usr/local/nagios/libexec/check_oracle --tns sid user password
command[check_oracle_db]=/usr/local/nagios/libexec/check_oracle --db sid user password
command[check_oracle_login]=/usr/local/nagios/libexec/check_oracle --login sid user password
command[check_oracle_cache]=/usr/local/nagios/libexec/check_oracle --cache sid user password 80 90
command[check_oracle_tablespace]=/usr/local/nagios/libexec/check_oracle --tablespace sid user password USERS 90 80
具体参数写法请参考 check_oracle –help。
添加nrpe端口号:
vi /etc/services
添加这个
nrpe 5666/tcp # NRPE
配置完成后,重启 xinetd 服务。
# service xinetd restart
测试nrpe:
./check_nrpe -H 127.0.0.1
NRPE v2.12
./check_oracle --tns orcl
./check_oracle --db orcl
./check_oracle --cache orcl
检查命令是否已经生效
说明nrpe安装成功。
三、配置 Nagios 服务端
1.安装 nrpe 脚本支持。—参考官方文档。
2.在nagios服务器端添加 nrpe 命令配置。修改 nagios/etc/objects/command.cfg 文件:
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
3.在nagios服务器端添加oracle主机配置文件,在 nagios/etc/objects 添加oracle
主机配置文件:oracle.cfg 。
define host {
use linux-server
host_name oracle
alias Oracle 10g
address 10.0.0.109
}
define service {
use generic-service
host_name oracle
service_description TNS Check
check_command check_nrpe!check_oracle_tns
}
define service {
use generic-service
host_name oracle
service_description DB Check
check_command check_nrpe!check_oracle_db
}
define service {
use generic-service
host_name oracle
service_description Login Check
check_command check_nrpe!check_oracle_login
}
define service {
use generic-service
host_name oracle
service_description Cache Check
check_command check_nrpe!check_oracle_cache
}
define service {
use generic-service
host_name oracle
service_description Tablespace Check
check_command check_nrpe!check_oracle_tablespace
}