Pular para o conteúdo

Linux + Informix + Nagios

Dica publicada em Linux / Banco de Dados
Crash Over crash 
Hits: 9.874 Categoria: Linux Subcategoria: Banco de Dados
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Instalação/Upgrade mysqld 5.7: fatal error: mysql.user table is damaged [Resolvido]

Banshee encountered a Fatal Error (sqlite error 11: database disk image is malformed): Saiba como resolver

SQLite Manager

Alterar senha do root no MySQL (Debian)

Erro: ERROR 2006 (HY000): "MySQL server has gone away" [Resolvido]

#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

Entre na sua conta para comentar.