Monit.

Monitorando TableSpace do Oracle

Escrito por Douglas Baiocco. Publicado em Nagios/ZABBIX.

Neste artigo, veremos como é possivel realizar o monitoramento de TABLESPACE do Oracle utilizando scripts executados no servidor onde o oracle esta instalado. É uma solução para casos onde a instalação de um plugin no Nagios se tornou muito complexa. 

Em nosso cenário, utilizaremos o FAN Nagios como servidor de monitoramento. O Oracle foi instalado em um servidor Windows 2008 R2 com o NSCLIENT++ instalado. Os passos aqui apresentados são destinados ao nosso cenario, mas é possivel adaptação para outras instalações. O importante é o conceito por detraz desta situação.

 

Baixando os arquivos necessários

 

O monitoramento do Oracle pode acontecer mediante diversos plugins do Nagios disponiveis no link. Porém, muitas vezes estes plugins requerem instalação de clients no Nagios, compilação de pacotes ou mesmo passos complexos. Aqui utilizaremos uma forma um pouco menos elegante mas mesmo assim funcional para verificar as tablespaces do Oracle. Utilizando os recursos vistos no tutorial Nagios - Executando scripts remotos, iremos executar um script no servidor que retornará os valores necessários.

 

O programa que irá monitorar o estado do Oracle é o check_oracle (baixe aqui). Este plugin possui versões para Linux e Windows. Utilizaremos a versão Windows, com o nome de check_oracle.exe. Descompacte o arquivo baixado e copie o arquivo check_oracle.exe para a pasta de scripts do NSCLIENT++ (geralmente c:\progran files\NSCLIENT++\scripts) no servidor com o Oracle instalado.

 

Preparando o Oracle

 

Como iremos realizar uma monitorização das Tablespaces do Oracle utilizando um script escrito em arquivo de texto, não é muito seguro acessarmos o banco com um usuário com privilégios avançados, já que a senha poderá ser facilmente vista. Iremos então criar um usuário para conexão com o Banco para o Nagios.

 

Acesse seu banco de dados utilizando o SQLPLUS ou outra ferramenta de acesso que você prefira. Se não estiver familiarizado com acessos ao banco, converse com um DBA (ou tente a sorte). Se você não lembra de um usuário válido do banco de dados, acesse este artigo.

 

Para criar o usuário, execute estas instruções:

 

CREATE USER nagios IDENTIFIED BY senha_do_user;

 

GRANT CREATE SESSION TO nagios;

 

GRANT SELECT on sys.dba_data_files to nagios;

 

GRANT SELECT on sys.dba_free_space to nagios;

 

Executando Teste 1

 

Podemos executar alguns testes para verificar o funcionamento deste script no Oracle. Acesse o prompt de comando do MS-DOS no servidor com Oracle e acesse a pasta de scripts do NSCLIENT++. Use o comando:

 

cd "c:\Program Files\NSClient++\scripts"

 

Em seguida execute o comando 

 

check_oracle.exe --tablespace nome_da_tablespace --sid SID_DO_ORA --user nagios --password senha_do_user

 

Veja o exemplo:

 

img47

 

Criando o arquivo de retorno

 

Crie um arquivo .bat na pasta de scripts chamado check_TABLESPACE.bat com o seguinte conteúdo:

 

scripts\check_oracle.exe --tablespace nome_da_tablespace --sid SID_DO_ORA --user nagios --password senha_do_user --warning 92 --critical 99

 

Este arquivo irá ser executado, rodando o programa check_oracle.exe e passando os seguintes parametros:

--tablespace = Nome da tablespace do oracle

--sid = SID do Banco do Oracle

--user = Usuário que fará a conexão

--password = Senha do usuário

--warning = Qual será o valor para o Nagios identificar como um estado WARNING

--critical = Qual será o valor para o Nagios identificar como um estado CRITICAL

 

Configurando o NSCLIENT++ 

 

Agora é necessário configurar o NSCLIENT++ no servidor Oracle. Para esta configuração, precisamos editar o arquivo NSC.ini dentro da pasta de instalação do NSCLIENT++ (geralmente c:\Arquivos de programas\NSCLIENT++\). Abra este arquivo no servidor e edite conforme orientado a seguir.

 

Procure a linha:

 

;CheckExternalScripts.dll

 

e altere para:

 

CheckExternalScripts.dll

 

Adicione a linha 

 

check_TABLESPACE=scripts\check_TABLESPACE.bat

Reinicie o NSCLIENT++ no servidor.

 

Deste ponto, a execução de scripts no servidor já está funcionando. Para testar, entre no terminal do seu FAN Nagios (geralmente usando o Putty) e execute o comando dentro da pasta /usr/lib/nagios/plugins/:

 

./check_nrpe -H IP_DO_SERVIDOR_COM_O_ORACLE -c check_TABLESPACE

 

Veja o exemplo na figura:

 

img50 

 

 

Configurando o Centreon

 

Vamos adicionar o servico para o Nagios monitorar e interpretar os dados, para isso teremos que criar um novo comando no Nagios. O motivo é simples: o Centreon, do FAN Nagios, não veio pré-configurado para trabalhar com o NRPE. Mas não se preocupe, o processo é simples:

 

Clique no menu Configuration e em seguida em Commands dentro do Centreon. 

 

img41

 

 

Logo que aparecer a lista com os comandos, clique em ADD. A tela a seguir será apresentada:

 

img43

Preencha os campos conforme o exemplo:

Command Name: check_nrpe

Command Type: Check

Command Line: $USER1$/check_nrpe -H $HOSTADDRESS$ -t 500 -c $ARG1$

Argument Example: !check_ok

 

Clique em SAVE e vamos adicionar o Serviço que será monitorado.

 

 

Clique em Configuration, Services. Ao aparecer a tela com a listagem dos serviços, clique em ADD e preencha os dados conforme exemplo:

img48

Não esqueça de atribuir o serviço a algum Host, já que ele não pode existir sem esta atribuição. Faça isso na guia Relations.

 

Clique em SAVE.

 

Por fim, é preciso apenas exportar as configurações do Centreon para o Nagios: dentro de Configuration, selecione a guia Monitoring Engines. Selecione os campos Move Export Files e Restart Nagios e clique no botão Export.

img33

Agora voce pode entrar no Nagios e verificar o status deste serviço recem cadastrado.

Relacionados