Puppet-enterprise-2.0-ubuntu-10.04-AMD64.tar.gzを使用してUbuntu10.04LTSにPEをインストールしました( http://puppetlabs.com/misc/pe-files/ からダウンロード) =)そして現在、同じマシンがマスター、コンソール、およびエージェントの役割を実行しています。
MCollectiveサーバーに問題があるようです。正常に起動しているように見えますが、ポート61613が正常に開かないのです。
デーモンが正常に開始
$ Sudo /etc/init.d/pe-mcollective start
* Starting mcollective daemon [ OK ]
現れているのは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
PIDファイルに正しい値が含まれています
$ Sudo cat /var/run/pe-mcollective.pid
25636
ただし、ポート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
ログを見ると、mcollectiveサーバーログとクライアントログの両方にエラーがあります。
$ 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
Mcollective Rubyスクリプト/ opt/puppet/sbin/mcollectivedを調べると、次の構成ディレクティブを持つ構成ファイル/etc/puppetlabs/mcollective/server.cfgを参照していることがわかります。
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
たとえばplugin.stomp.pool.port1を61614 Iに変更すると、plugin.stomp.pool.Host1を解決できます。上記のmcollective.logエラーに反映されていることを確認してください。 loglevel = debugを設定しましたが、それ以上のヒントは得られません。スクリプトを手動で実行しましたが(/ opt/puppet/bin/Ruby/opt/puppet/sbin/mcollectived)、手がかりも得られません。
Q:この問題をさらにトラブルシューティングするにはどうすればよいですか?
問題はJavaキーストア:
pe-activemqは正常に開始されました
$ Sudo /etc/init.d/pe-activemq start
* pe-activemq started
しかし、PSを見ると、activemqが起動しようとしたが、ほとんどすぐに失敗したことに気付きました。起動スクリプトを変更して、デバッグを実行しました。
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]"
Pe-activemqを起動すると、次のエラーが発生しました
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)
キーストアの問題のように見えました。 /opt/puppet/activemq/conf/activemq-wrapper.conf構成ファイルには、以下の詳細が含まれています。
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
参考までに/ opt/puppet/activemq/confは/ etc/puppetlabs/activemqへのシンボリックリンクですそのディレクトリにはbroket.tsファイルが存在しますが、broker.ksがありませんでした
このページ( http://activemq.Apache.org/how-do-i-use-ssl.html )に基づいて、私は次のことを行いました
$ cd /etc/puppetlabs/activemq
$ Sudo keytool -genkey -alias broker -keyalg RSA -keystore broker.ks
=> provided puppet password everywhere
その後、activemqは正常に開始されていました
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
問題は解決された
デーモンはリッスンせず、デーモンはミドルウェアノードに接続します。この場合、ActiveMQが実行されているはずのpuppetmaster.example.com:61613です。
さらにサポートが必要な場合は、質問をmcollectiveメーリングリストに送信してください http://groups.google.com/group/mcollective-users