Nagios plugin check_oracle_health для мониторинга Oracle

  Nagios plugin check_oracle_health для мониторинга Oracle

Вот решил поставить плагин для Нагиос check_oracle_health для мониторинга Оракла
официальный сайт check_oracle_health

Изначально установлены :

  • RH
  • Oracle Client ( с настроенным tnsnames.ora)
  • perl (моя версия 5.8.8)
  • perl-DBI
  • DBD-Oracle- (моя версия 1.22) //для взаимодействия плагина с оракловым клиентом.
  • Oracle client 10.1.0.3
  • Nagios 3.0.4


если чего-то нету - доустанавливаем...

выполняем sql-скрипт для пользователя nagios в Oracle

create user nagios identified by oradbmonpass;
grant create session to nagios;
grant select any dictionary to nagios;
grant select on V_$SYSSTAT to nagios;
grant select on V_$INSTANCE to nagios;
grant select on V_$LOG to nagios;
grant select on SYS.DBA_DATA_FILES to nagios;
grant select on SYS.DBA_FREE_SPACE to nagios;

в папке пользователя nagios в файле .bash_profile проверяем наличие таких переменных ... - заменить на свою базовую директорию Oracle.

ORACLE_HOME /home/oracle/oracle/product/10.1.0.3/oraclient
ORACLE_BASE /home/oracle/oracle
ORACLE_SID=ORTD
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib

PATH=$PATH:$ORACLE_HOME/bin

#LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH

качаем check_oracle_health 1.5.0.1 - тарбол архив почему-то оказался неполным поэтому рекомендую zip и ставим согласно инструкции в readme. прверяем под пользователем nagios

/usr/local/nagios/libexec/check_oracle_health --connect=DB --user=nagios --password=oradbmonpass --mode=sql --name2="Sessions waiting for latch free" --name="select count(*) from v\$session_wait where event='latch free' "

должно выдать что-то типа

OK - sessions waiting for latch free: 0 | 'sessions waiting for latch free'=0;1;5

далее , буду писать - конфигурирование самого нагиоса...

в commands.cfg описываем команду

define command {
  command_name  oracle_health
  command_line  $USER1$/check_oracle_health --mode=$ARG1$ --user=nagios --password=oradbmonpass --connect=$SERVICE_NAME;  --warning=$ARG2$ --critical=$ARG3$
}

где $USER1$=/usr/local/nagios/libexec по умолчанию, ну и непосредственно сам сервис в файле конфигураций хостов для мониторинга

define service {
  use                      generic-service
  host_name            dbserver1
  service_description Oracle: Connection Time
  contact_groups      unixadmins,dbadmins
  check_command    oracle_health!connection-time!DB_INSTANCE!1!5
  }

где DB_INSTANCE - это название соединения с базой Oracle, взято из tnsnames.ora

Появилась проблема при отработке перловых скриптов в плагине при отображении результатов через Web-интерфейс... из консоли же плагин отрабатывает без проблем...

CRITICAL - cannot connect to OMEGA2. install_driver(Oracle) failed: Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.

Шаги решения проблем...1. Пробую прописать переменные в конфиге Apache... так как проблема похоже именно с ним...в httpd.conf прописываем :

SetEnv LD_LIBRARY_PATH /home/oracle/oracle/product/10.1.0.3/oraclient/lib
SetEnv ORACLE_HOME /home/oracle/oracle/product/10.1.0.3/oraclient
SetEnv ORACLE_BASE /home/oracle/oracle
SetEnv NLS_LANG AMERICAN_AMERICA.UTF8
SetEnv ORACLE_SID ORTD

2. в файле /etc/ld.so.conf прописываю пути загрузки модулей /home/oracle/oracle/product/10.2.0/oraclient/libДать команду ldconfig для их обработки.после рестарта Apache и Nagios добился ошибки

   CRITICAL - cannot connect to DB. ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var or PATH (Windows) and or NLS settings, permissions, etc.

Как выход из положения вписал инициализацию этих переменных прямо в скрипт check_oracle_health ...,
просто в самом начале файла добавил;

$ENV{ORACLE_HOME} = "/home/oracle/oracle/product/10.1.0.3/oraclient";
$ENV{ORACLE_BASE} = "/home/oracle/oracle";
$ENV{ORA_NLS33} = "/home/oracle/oracle/product/10.1.0.3/oraclient/ocommon/nls/admin/data";
$ENV{NLS_LANG} = "AMERICAN_AMERICA.UTF8";
$ENV{LD_LIBRARY_PATH} = "/home/oracle/oracle/product/10.1.0.3/oraclient/lib:/usr/lib:/usr/local/lib";

заработало после этого подключение к базе и проверка основных параметров...
Осталась только загвоздка с выполнением SQL-запросов по параметру .

Следующая запись

Предыдущая запись

Похожие записи

Комментарии

Еще нет комментариев.

Пингбэки

Оповещения открыты.

Трэкбэки

URL архива

Only authorized users can post comments