3 Replies Latest reply on Oct 9, 2012 7:49 PM by stlewis

    Zookeeper SASL-authenticate error in FMC on Linux Install

    smalson

      I just switched to installing FMC (7.0.0.fuse-061) from Windows to Linux (Centos).  I have 4 Linux VMWare instances running and I was able to create containers on each from the Windows host using container-create-ssh.  Once I tried to make two of them Ensembles I started running into firewall issues so I figured I would try installing FMC on one of the Linux VMs.  With installing FMC on Linux I get the following error:

       

      'org.fusesource.fabric.fabric-linkedin-zookeeper - 7.0.0.fuse-061 | Client will not SASL-authenticate because the default JAAS configuration section 'Client' could not be found.'

       

      When I use the container-create-ssh to create containers on the other VM's I get the same error in all the logs and listing the containers from FMC shows 'false' for Active.  Checking each VM the java process is running.

       

      During install I noticed it creates a user 'fuse' with group 'fusesource'.  What is the default password for fuse?  I tried admin and fuse.

       

      Is there a setting I have to change on the Linux configuration to fix the SASL-authenticate issue?  Or should I switch back to running FMC on Windows and try fixing the firewall issues.  The containers all indicated 'true' for Active when creating them from FMC on Windows.

       

      Thanks

       

      Steve

        • 1. Re: Zookeeper SASL-authenticate error in FMC on Linux Install
          stlewis

          So first off to create an ensemble you first create the containers you want to be in your ensemble and then use the "ensemble-add" command.  You need to have an odd number of containers to create an ensemble, i.e. you can have 1 ZK server or you can have 3 ZK servers, etc.

           

          Authentication for ZK is turned off in this version, the error message from ZK in this case is misleading, it's effectively telling you it can't connect.  I think CentOS comes with iptables enabled by default to block pretty much every port, you either need to turn off the firewall or open ports 2181, 8181, 1099 and 44444 at least (ZK, http maven proxy, RMI, JMX respectively) on all the hosts.  It might be easier to turn it off if you're testing for now until you figure out what ports you need open for your application.

           

          Not sure what password the user is created with by the installer to be honest but it doesn't control the authentication used in the product, it's just installed that way to ensure you don't run FMC (or the other Fuse products) as root as it's not a good practice.  And you can reset the password for that user assuming you have root on the machine by running (as root):

           

          passwd fuse

           

          Hope that helps!

          • 2. Re: Zookeeper SASL-authenticate error in FMC on Linux Install
            smalson

            Thanks.  Turning off the firewall helped.  I have 5 VMs running and using a hosts file for assigning host names is working until I tried creating a child via the FMC.  When I execute 'fabric:container-create-child node4 node4-camel' I get a Connection refused to host: 127.0.0.1.  Is Zookeeper using 'hostname -i' to get the ip address.  I fixed all the hostnames on each VM so they do not return 127.0.0.1 except after setting everything up.  Should I remove all the containers and start over?

             

            Thanks

             

            Steve

            • 3. Re: Zookeeper SASL-authenticate error in FMC on Linux Install
              stlewis

              Great!  So you can change whether the containers use IP addresses or hostnames.  In the FMC UI, hover your mouse over your ensemble containers (usually at least the FuseManagementConsole container if you used that to create your fabric) overview panel where it says "Resolver" and you'll see a pencil icon.  Click on that and you can change the resolver for that container from localip to localhostname or vice versa.  What that changes is what address is used to advertise JMX and SSH URIs.  The equivalent on the console is container-resolver-list to see what resolver setting your containers are using and then container-resolver-set to change what resolver setting a container is using.

               

              Also yeah, so fabric uses InetAddress.getLocalHost() to get the machine's local hostname I believe.