Linux + Informix + Nagios

Publicado por Crash Over em 31/08/2006

[ Hits: 9.215 ]

 


Linux + Informix + Nagios



Fala galera! Resolvi escrever pois tive muito problemas e não achei nada na net pra poder me ajudar. Seguinte, tenho aqui um ambiente Linux (RedHat - queria Slackware, mas tudo bem) rodando Informix (IBM Informix Dynamic Server Version 9.40.UC4) e o Nagios para monitorar meus ativos.

Depois de alguns problemas com o Logical Log no Informix me deparei com com os seguintes erros no online.log:

listener-thread: err = -25580: oserr = 1: errstr = : System error occurred in network function.
System error = 1.

listener-thread: err = -27001: oserr = 0: errstr = : Read error occurred during connection attempt.

Essas mensagens são causadas pelo Nagios, ele manda pacotes nas portas especificadas do serviço de monitoramento TCP, porém não se passa nem usuário nem senha e o Informix não aceita isso.

Para solucionar o problema temos as seguintes opções:
  • Tirar o monitoramento das portas do Informix e deixar somente o ping por exemplo;
  • Criar um programa que fornece usuário e senha para se conectar e verificar a porta, que pode ser integrado ao Nagios;
  • Usar uma ferramenta própria para o Informix, chamada Server Studio JE, esta por sua vez é muito completa, podendo monitorar por exemplo sequenciais scans na tabelas, I/O do Banco, comandos SQL executados por algum usuário e coisas do tipo, porém o preço é meio salgado, cerca de R$ 10K. Mas se sua empresa for grande e precisar de um monitoramento mais preciso, vale à pena.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Recuperando a senha perdida do MySQL

Como recuperar banco do Postgres pelo diretório

MySQL no Slackware 14.1 - Configuração inicial

PostgreSQL com encoding LATIN1

Dump e importação de banco em uma linha

  

Comentários
[1] Comentário enviado por londonms em 23/06/2014 - 11:28h

Comigo aconteceu algo "quase igual" e todos reclamavam que não conseguiam acessar o banco Informix:

Mensagem

06/11/12 08:45:41 listener-thread: err = -25582: oserr = 0: errstr = : Network connection is broken.
06/11/12 08:48:23 listener-thread: err = -27001: oserr = 0: errstr = : Read error occurred during connection attempt.
06/11/12 08:49:17 listener-thread: err = -27001: oserr = 0: errstr = : Read error occurred during connection attempt.
06/11/12 08:50:08 listener-thread: err = -27001: oserr = 0: errstr = : Read error occurred during connection attempt.
06/11/12 08:50:18 listener-thread: err = -27001: oserr = 0: errstr = : Read error occurred during connection attempt.
06/11/12 08:51:16 listener-thread: err = -25580: oserr = -1: errstr = : System error occurred in network function. system error = -1.
06/11/12 08:51:36 listener-thread: err = -25580: oserr = -1: errstr = : System error occurred in network function. System error = -1.

Observando a replicação estava offline:

[C099:dba]$/export/home/dba/sql/grant> cdr list server
Error returned from cdr_adjust_INFORMIXSERVER: database syscdr
SQLCODE -27001 ISAM 0

Error Details:
27001: Read error occurred during connection attempt.

Current Connection: None
command failed -- SQL failure (195)
Can not switch to syscdr sqlcode:-27001 isamcode:0

Checando

Checando onstat -g sch e onstat -g ath mostram o Miscellanious VP (MSC VP) dando overclock estava dando um valor muito alto (acima de 6000) de processamento, muito alto o número o normal são apenas algumas centenas de ciclos. O MSC VP é o VP responsável por lookup no Informix. Uma possível causa é um problema de DNS.

Solução

Depois de algumas analises o pessoal da infraestrutura constatou um problema no DNS após um resete no servidor DNS da empresa e resolveu o problema.

[2] Comentário enviado por londonms em 23/06/2014 - 13:25h

Uma outra coisa, a equipe de infraestrutura questionou o porque um problema no DNS afeta o Informix? Da perspectiva do DNS, o Informix é apenas mais uma aplicação. O arquivo /etc/nsswitch.conf contém configurações que definem se o Informix irá usar arquivos (/etc/hosts) ou servidores de DNS (configurados em /etc/resolv.conf). Se o /etc/nsswitch.conf esta como --- hosts: dns files ---- (primeiro vai no dns e se não encontrar vai para o files - /etc/hosts) como ele checa primeiro a resolução de nomes pelo DNS um problema nele pode causar sim uma lentidão "NO ACESSO" no banco Informix.

Toda "conversa" entre o Informix e o DNS (seja ele local ou remoto) é feita através de funções de sistema. O Informix usa duas funções:

gethostbyname() - Recebe um nome de máquina e retorna uma estrutura contendo um endereço IP.

gethostbyaddr() - Esta faz o contrário, ou seja recebe uma estrutura com o endereço IP e retorna os campos relativos ao nome (ou nomes) preenchidos.

O Informix sempre confere (lookup) de onde as conexões vem. É uma característica singular de segurança do Informix.

Detalhes dos Arquivos

/etc/nsswitch.conf
-- Este arquivo (em sistemas Unix/Linux, mas o nome pode mudar) define como a resolução de nomes (e outros serviços) é efetuada. Mais especificamente define se o sistema usará o arquivo, NIS, servidores de DNS ou outros mecanismos e a ordem porque o faz. Como exemplo, uma linha como:
hosts: dns files
Indica que as pesquisas de nomes e IPs são feitas primeiro usando os servidores de DNS e depois ficheiros

/etc/hosts
Faz o relacionamento entre um nome de computador e um endereço IP (onde trabalho faz os relacionamentos dos servidores que acessam este server - não colocamos nele os clients - futuramente pretendo colocar).

/etc/resolv.conf
Este arquivo contém a lista de servidores de DNS que serão usados para fazer pesquisas e eventualmente mais algumas opções.

Soluções

/etc/nsswitch.conf
Alterando a ordem - files (primeiro) e depois dns - primeiro pesquisa no /etc/host e se não encontrar vai para o dns.

/etc/hosts
Colocar todos os clients nele, ocorrendo um problema no DNS só a checagem neste arquivo já resolve.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts