Monitorando TableSpace do Oracle
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:
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:
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.
Logo que aparecer a lista com os comandos, clique em ADD. A tela a seguir será apresentada:
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:
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.
Agora voce pode entrar no Nagios e verificar o status deste serviço recem cadastrado.