Daemon do MCollective não vincula um soquete de rede

1

Acabei de instalar o PE usando o Ubuntu 10.04 LTS usando puppet-enterprise-2.0-ubuntu-10.04-amd64.tar.gz (baixado de link ) e agora a mesma máquina está executando o mestre, o console e as funções do agente.

Parece que tenho um problema com o servidor MCollective, que, embora pareça estar bem, não abre a porta 61613 como deveria.

Daemon começando bem

$ sudo /etc/init.d/pe-mcollective start
 * Starting mcollective daemon                  [ OK ] 

Aparecer é PS

$ ps aux | grep mcol | grep -v grep
root     25636  0.0  0.5  64680 12056 ?        S    07:21   0:00 /opt/puppet/bin/ruby /opt/puppet/sbin/mcollectived --pid /var/run/pe-mcollective.pid

O arquivo Pid contém o valor correto

$ sudo cat /var/run/pe-mcollective.pid
25636

No entanto, não vejo nenhum processo em escuta na porta 61613

$ sudo netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2395/mysqld     
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      25542/memcached 
tcp        0      0 0.0.0.0:8140            0.0.0.0:*               LISTEN      25620/pe-httpd  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      10096/apache2   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2345/sshd       
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2822/master     
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      25620/pe-httpd  

Quando olho para os logs, vejo erros no servidor mcollective e nos logs do cliente

$ sudo tail -f /var/log/pe-*/*
==> /var/log/pe-puppet-dashboard/mcollective_client.log <==
I, [2011-12-20T07:26:22.731870 #30944]  INFO -- : stomp.rb:79:in 'on_connectfail' Connction to stomp://[email protected]:61613 failed on attempt 1646

==> /var/log/pe-mcollective/mcollective.log <==
I, [2011-12-20T07:26:24.852641 #25636]  INFO -- : stomp.rb:79:in 'on_connectfail' Connction to stomp://[email protected]:61613 failed on attempt 20

Quando eu inspeciono o script mcollective ruby / opt / puppet / sbin / mcollectived eu posso ver que ele faz referência ao arquivo de configuração /etc/puppetlabs/mcollective/server.cfg que possui as seguintes diretivas de configuração:

plugin.stomp.pool.size = 1
plugin.stomp.pool.host1 = puppetmaster.example.org
plugin.stomp.pool.port1 = 61613
plugin.stomp.pool.user1 = mcollective
plugin.stomp.pool.password1 = ***************
plugin.stomp.pool.ssl1 = true
plugin.stomp.base64 = true

Eu posso resolver plugin.stomp.pool.host1 , se eu mudar plugin.stomp.pool.port1 por exemplo para 61614 eu vejo isso refletido no mcollective. erros de log mencionados acima. Eu defino loglevel = debug , mas isso não me dá mais dicas. Eu executei o script manualmente (/ opt / puppet / bin / ruby / opt / puppet / sbin / mcollectived), mas também não me dá nenhuma pista.

P: Como posso resolver esse problema ainda mais?

    
por Max 20.12.2011 / 10:22

2 respostas

1

O problema foi com o armazenamento de chaves java:

pe-activemq começou bem

$ sudo /etc/init.d/pe-activemq start
 * pe-activemq started

No entanto, ao ver o PS, notei que o activemq tentou iniciar, mas falhou quase imediatamente. Eu modifiquei o script de inicialização para fazer algumas depurações:

start() {
    echo -n "Starting $APP_NAME... "
    getpid
    if [ "X$pid" = "X" ]
    then
        # original command
        # COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
        # custom command with deamonize=FALSE
        COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE wrapper.daemonize=FALSE $ANCHORPROP $IGNOREPROP $LOCKPROP"
        echo "executing [$COMMAND_LINE]"

A partir de pe-activemq deu o seguinte erro

jvm 1    | ERROR | Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: stomp+ssl://0.0.0.0:61613 due to: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.DefaultSSLContextImpl)

Parecia um problema com o armazenamento de chaves. O arquivo de configuração /opt/puppet/activemq/conf/activemq-wrapper.conf fornece os seguintes detalhes:

set.default.ACTIVEMQ_BASE=/opt/puppet/activemq
wrapper.working.dir=/var/log/pe-activemq
[...]
# Enable SSL of the Stomp Connection (Note, this provides encryption only as per #10596)
wrapper.java.additional.7=-Djavax.net.ssl.keyStorePassword=puppet
wrapper.java.additional.8=-Djavax.net.ssl.keyStore=%ACTIVEMQ_BASE%/conf/broker.ks
# The trust store need not be present.
wrapper.java.additional.9=-Djavax.net.ssl.trustStorePassword=puppet
wrapper.java.additional.10=-Djavax.net.ssl.trustStore=%ACTIVEMQ_BASE%/conf/broker.ts

FYI / opt / puppet / activemq / conf é um link simbólico para / etc / puppetlabs / activemq Nesse diretório, o arquivo broket.ts existe, mas o broker.ks estava ausente

Com base nesta página ( link ), fiz o seguinte

$ cd /etc/puppetlabs/activemq
$ sudo keytool -genkey -alias broker -keyalg RSA -keystore broker.ks
=> provided puppet password everywhere

Então o activemq estava começando bem

jvm 1    |  INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[/opt/puppet/activemq/data/kahadb]
jvm 1    |  INFO | KahaDB is version 3
jvm 1    |  INFO | Recovering from the journal ...
jvm 1    |  INFO | Recovery replayed 1 operations from the journal in 0.022 seconds.
jvm 1    |  INFO | ActiveMQ 5.5.0 JMS Message Broker (localhost) is starting
jvm 1    |  INFO | For help or more information please see: http://activemq.apache.org/
jvm 1    |  INFO | Installing StaticsBroker
jvm 1    |  INFO | Starting StatisticsBroker
jvm 1    |  INFO | Listening for connections at: tcp://myserver:61616
jvm 1    |  INFO | Connector openwire Started
jvm 1    |  INFO | Listening for connections at: stomp+ssl://myserver:61613
jvm 1    |  INFO | Connector stomp+ssl Started
jvm 1    |  INFO | ActiveMQ JMS Message Broker (localhost, ID:myserver-44300-1324455724257-0:1) started
jvm 1    |  INFO | jetty-7.1.6.v20100715
jvm 1    |  INFO | ActiveMQ WebConsole initialized.
jvm 1    |  INFO | Initializing Spring FrameworkServlet 'dispatcher'
jvm 1    |  INFO | ActiveMQ Console at http://0.0.0.0:8161/admin
jvm 1    |  INFO | WebApp@2109578614 at http://0.0.0.0:8161/camel
jvm 1    |  INFO | WebApp@2109578614 at http://0.0.0.0:8161/demo
jvm 1    |  INFO | WebApp@2109578614 at http://0.0.0.0:8161/fileserver
jvm 1    |  INFO | Started [email protected]:8161

PROBLEMA RESOLVIDO

    
por 21.12.2011 / 09:56
0

o daemon não escuta, o daemon conecta-se ao nó de middleware, no seu caso, puppetmaster.example.com:61613, que deve ter o ActiveMQ em execução,

Se precisar de mais ajuda, encaminhe a questão para a lista de discussão coletiva link

    
por 20.12.2011 / 11:04