check_mk_agent trava ao executar a verificação do cluster SOMENTE quando acionado pela rede

1

Meu servidor check_mk se conecta a vários nós do RHEL que instalaram o check_mk_agent (versão 1.2.4p3). Um grupo desses nós pertence a um cluster de marcapasso.

O agente check_mk é configurado por padrão - um serviço xinet é configurado vinculado à porta 6556 / TCP:

service check_mk
{
        type           = UNLISTED
        port           = 6556
        socket_type    = stream
        protocol       = tcp
        wait           = no
        user           = root
        server         = /usr/bin/check_mk_agent

        # If you use fully redundant monitoring and poll the client
        # from more then one monitoring servers in parallel you might
        # want to use the agent cache wrapper:
        #server         = /usr/bin/check_mk_caching_agent

        # configure the IP address(es) of your Nagios server here:
        #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2

        # Don't be too verbose. Don't log every check. This might be
        # commented out for debugging. If this option is commented out
        # the default options will be used for this service.
        log_on_success =

        disable        = no
}

Um desses nós do cluster tem problemas quando um soquete está aberto para a porta 6556 / TCP porque o script / usr / bin / check_mk_agent trava no estágio de detecção do cluster :

crm_mon -1 -r | grep ···

Isso faz com que o servidor check_mk apresente problemas nesse nó.

Quando eu comento os comandos de detecção de cluster no script check_mk_agent, ele funciona bem

# Heartbeat monitoring
# Different handling for heartbeat clusters with and without CRM
# for the resource state
###if [ -S /var/run/heartbeat/crm/cib_ro -o -S /var/run/crm/cib_ro ] || pgrep crmd > /dev/null 2>&1; then
###  echo '<<<heartbeat_crm>>>'
###  crm_mon -1 -r | grep -v ^$ | sed 's/^ //; /^\sResource Group:/,$ s/^\s//; s/^\s/_/g'
###fi
###if type cl_status > /dev/null 2>&1; then
###  echo '<<<heartbeat_rscstatus>>>'
###  cl_status rscstatus
###
###  echo '<<<heartbeat_nodes>>>'
###  for NODE in $(cl_status listnodes); do
###    if [ $NODE != $(echo $HOSTNAME | tr 'A-Z' 'a-z') ]; then
###      STATUS=$(cl_status nodestatus $NODE)
###      echo -n "$NODE $STATUS"
###      for LINK in $(cl_status listhblinks $NODE 2>/dev/null); do
###        echo -n " $LINK $(cl_status hblinkstatus $NODE $LINK)"
###      done
###      echo
###    fi
###  done
###fi

Esse problema não é encontrado nos demais nós do cluster.

Tenho certeza de que não é um problema de rede, pois o mesmo comportamento ocorre quando a conexão é aberta de dentro desse nó defeituoso:

telnet 127.0.0.1 6556

O mais estranho é que eu executo o comando crm_mon -1 -r manualmente muitas vezes ao dia, mas ele nunca trava .

O que pode fazer com que o comando crm_mon -1 -r seja interrompido em apenas um nó quando é executado sem terminal conectado?

Thanx antecipadamente

atualização 1

Eu criei um novo serviço xinetd semelhante ao check_mk one, mas alterando o nome, o número da porta e o servidor. O script do servidor contém apenas estas linhas

#!/bin/bash
unset LANG
export LC_ALL=C

date
/usr/sbin/crm_mon -1 -r -N
#/usr/sbin/crm_resource -L
date

e também trava. Eu até tentei usar crm_resource -L , cuja saída é a mesma, mas ela trava também:

# telnet 127.0.0.1 6557
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Fri Jul 14 08:37:36 CEST 2017

atualização 2

A configuração do SELinux é Disabled .

    
por Jdamian 08.06.2017 / 09:43

1 resposta

1

Qual é a sua configuração do SELinux?

O Check_mk invocado através do xinetd teria um contexto de diferença do que se invocado em um shell de root. Eu vi isso ficar no caminho do executor do plugin remoto Nagios, parece que poderia ter o mesmo efeito em check_mk.

Veja se o SELinux está sendo aplicado:

$ getenforce

Defina como permissivo e veja se o problema persiste:

$ setenforce 0

Se esse é o problema, recomendo ajustar a política do SELinux com autdit2allow em vez de desabilitar o SELinux.

Veja este link para informações sobre como usar o audit2allow: link

    
por 19.07.2017 / 18:55