Monit 5.5 ligação a localhost apenas, mas deve estar em todos

4

Usando o Centos 6.4, usando um yum instalado no Monit 5.5.

Eu tenho 2 servidores com o comando monit instalado - mesma versão, mesma configuração - mas um liga em todos os endereços e o outro apenas liga no host local.

Servidor de problemas:

# service monit restart
Stopping monit:                                            [  OK  ]
Starting monit: Starting monit daemon with http interface at [localhost:8080]
                                                           [  OK  ]

Bom servidor:

# service monit restart
Stopping monit:                                            [  OK  ]
Starting monit: Starting monit daemon with http interface at [*:8080]
                                                           [  OK  ]

A configuração é esta:

set httpd port 8080
  allow fofo:sdad
  allow fdgdfg:dsfsdf
  SSL ENABLE
  PEMFILE  /var/certs/monit.pem
  signature disable

Eu estou supondo que o problema é alguma configuração incorreta da rede do servidor com problema - por isso ele não pode ser ligado à porta externa - mas outras coisas estão funcionando ok - http, ssh etc ...

ATUALIZAÇÃO Mais algumas informações - obrigado pelos comentários: Caixa de problema:

# rpm -qi monit
Name        : monit                        Relocations: (not relocatable)
Version     : 5.5                               Vendor: Dag Apt Repository, http://dag.wieers.com/apt/
Release     : 1.el6.rf                      Build Date: Wed 20 Mar 2013 02:09:54 PM WET
Install Date: Sat 04 May 2013 09:30:54 PM WEST      Build Host: lisse.hasselt.wieers.com
Group       : Applications/Internet         Source RPM: monit-5.5-1.el6.rf.src.rpm
Size        : 716992                           License: GPLv3
Signature   : DSA/SHA1, Wed 20 Mar 2013 03:59:25 PM WET, Key ID a20e52146b8d79e6
Packager    : Steve Huff <[email protected]>
URL         : http://mmonit.com/monit/
Summary     : Process monitor and restart utility
Description :
Monit is an utility for monitoring daemons or similar programs running on
a Unix system. It will start specified programs if they are not running
and restart programs not responding.

Caixa de trabalho:

# rpm -qi monit
Name        : monit                        Relocations: (not relocatable)
Version     : 5.5                               Vendor: Dag Apt Repository, http://dag.wieers.com/apt/
Release     : 1.el6.rf                      Build Date: Wed 20 Mar 2013 02:09:54 PM WET
Install Date: Fri 22 Mar 2013 04:02:32 AM WET      Build Host: lisse.hasselt.wieers.com
Group       : Applications/Internet         Source RPM: monit-5.5-1.el6.rf.src.rpm
Size        : 716992                           License: GPLv3
Signature   : DSA/SHA1, Wed 20 Mar 2013 03:59:25 PM WET, Key ID a20e52146b8d79e6
Packager    : Steve Huff <[email protected]>
URL         : http://mmonit.com/monit/
Summary     : Process monitor and restart utility
Description :
Monit is an utility for monitoring daemons or similar programs running on
a Unix system. It will start specified programs if they are not running
and restart programs not responding.

/ etc / hosts parece bastante semelhante entre eles, assim:

cat /etc/hosts
# Automatically generated by ptisp cloud
127.0.0.1       localhost
x.x.x.x             [hostname]

Caixa do problema:

# netstat -tln | grep ":8080"
tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN

Caixa de trabalho:

# netstat -tln | grep ":8080"
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN

Também rodei 'ip addr' e sua saída é bem parecida entre uma caixa que funciona e uma que não funciona.

ATUALIZAÇÃO 2

Acabei de adicionar M / monit à mistura hoje à noite e esta caixa aparece estranhamente duas vezes, uma vez inativa. Eu estou pensando que isso é porque o servidor m / monit não pode pingar o cliente de volta ...

Agradecemos antecipadamente por qualquer ideia. Chris

    
por Chris Kimpton 04.05.2013 / 22:50

2 respostas

4

Se o comportamento do Monit não corresponder ao que está escrito no arquivo de configuração, uma possível causa pode ser que o Monit realmente use um arquivo de configuração diferente.

O script /etc/rc.d/init.d/monit no pacote monit-5.5-1.el6.rf inicia monit sem especificar o nome do arquivo de configuração; portanto, o Monit tenta localizar o arquivo de configuração em vários locais e usa o primeiro encontrado. Outra coisa importante é que o nome do arquivo de configuração padrão neste pacote é diferente daquele usado pela versão upstream não modificada do Monit - upstream usa monitrc , mas o pacote do RepoForge usa monit.conf .

A ordem de pesquisa usada para o arquivo de configuração é a seguinte:

  1. ~/.monitrc na versão a montante da Monit, ou ~/.monit.conf no pacote Repoforge (o diretório home do usuário que iniciou monit é usado, se Monit é iniciado a partir do script de inicialização, o usuário é root ). O diretório pessoal é lido usando getpwuid(geteuid()) (ou seja, de /etc/passwd ou qualquer outro banco de dados NSS), não da variável de ambiente HOME .

  2. /etc/monitrc na versão upstream do Monit, ou /etc/monit.conf no pacote do RepoForge. Se o pacote RepoForge for usado, /etc/monit.conf inicialmente contém uma linha include não comentada, o que faz com que o Monit leia arquivos de configuração adicionais a partir do diretório /etc/monit.d :

    include /etc/monit.d/*
    

    Nas fontes upstream, o exemplo monitrc tem essa linha comentada, portanto, nenhum arquivo de configuração adicional é usado por padrão.

    Note também que o pacote RepoForge tem um script postinstall:

    # Moving old style configuration file to conf standard location
    if [ -f /etc/monitrc ]; then
        mv -f /etc/monitrc /etc/monit.conf
    fi
    

    Portanto, se o arquivo /etc/monitrc existir antes da instalação do pacote ou atualizar , esse arquivo será renomeado para /etc/monit.conf , sobrescrevendo-o silenciosamente.

  3. $SYSCONFDIR/monitrc na versão a montante da Monit, onde $SYSCONFDIR é o valor da opção --sysconfdir=... passados para o script configure ao compilar a fonte (o valor padrão desta opção é $prefix/etc , como de costume com scripts configure gerados pelo Autoconf, e o prefixo padrão é /usr/local , portanto, o nome do arquivo de configuração se torna /usr/local/etc/monitrc ). No pacote RepoForge, esse nome de arquivo se torna /etc/monit.conf , tornando-o redundante.

  4. /usr/local/etc/monitrc na versão upstream do Monit ou /usr/local/etc/monit.conf no pacote do RepoForge. Aqui, o diretório /usr/local/etc é codificado e não depende de nenhuma opção configure .

  5. ./monitrc na versão a montante da Monit, ou ./monit.conf no pacote Repoforge (quando se inicia a partir do script de inicialização, o diretório atual é provável que seja / ).

por 18.05.2013 / 21:57
1

Verifique se ~/.monit.conf não existe - este local é pesquisado antes de /etc/monit.conf mesmo para raiz. (A versão upstream do Monit usa ~/.monitrc e /etc/monitrc , mas esse pacote específico usa nomes de arquivos de configuração diferentes.)

    
por 18.05.2013 / 20:56