Installed Kibana 5. Can only run as root


(Brandon Biondo) #1

If I run as root everything works fine. If I do not run as root I get the following error:

/usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml
net.js:10
const cares = process.binding('cares_wrap');
^
Error: EFILE
at Error (native)
at net.js:10:23
at NativeModule.compile (bootstrap_node.js:497:7)
at NativeModule.require (bootstrap_node.js:438:18)
at tty.js:4:13
at NativeModule.compile (bootstrap_node.js:497:7)
at Function.NativeModule.require (bootstrap_node.js:438:18)
at Function.Module._load (module.js:426:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)


(Matt Bargar) #2

What method did you use to install kibana? apt, yum, binary? Did you install fresh, or was it an upgrade? Lastly, what command are you executing to run kibana?


(Caixia Chi) #3

We also met this issue, and we install kibana from fresh with yum.
The command to run kibana is
systemctl start kibana


(Brandon Biondo) #4

kibana-5.2.1-x86_64.rpm fresh install using yum via our own repository

The command I use is in the original post. It's the same command that runs when you start it via a service interface. Ultimately that's what I want it to do (run as a service):

/usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml


(Brandon Biondo) #5

The service won't start because of the same underlying issue. That's how I got here.

As a side note this is RHEL6 so systemd is not the service initialization engine (so your command to start the service won't work). It's still using sys-v.

As a side note to the side note, Logstash uses upstart on RHEL6 for no good reason. You'd think all three would start the same way. (different topic for a different thread perhaps)


(Matt Bargar) #6

Are you running that command as the kibana user?

Also, sysV should be available: https://www.elastic.co/guide/en/kibana/5.2/rpm.html#rpm-running-init

The sysv path is /etc/init.d/kibana


(Brandon Biondo) #7

Sysv is available yes. I was replying to the post that said to use systemd.

EDIT: The kibana user exists. I am not trying to run the service with anything special in the config so ostensibly it's trying to run as kibana.


(Brandon Biondo) #8

Latest...

Here is the EXACT command I use to attempt to run kibana from the command line. It gives me the same error as when I try to run kibana as a service.

sudo -H -u kibana bash -c '/usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml'


(Matt Bargar) #9

Hmmm, I'm pretty much tapped for ideas. Honestly we haven't seen this particular error before. The error seems to be thrown by Node itself. Most references to the error I'm able to find involve Windows and dns issues. Is your machine's network locked down and perhaps blocking something node needs access to? Or maybe there's an odd DNS configuration?

You could also try updating to the latest version Kibana, we've bumped node versions since 5.2.1 so maybe it'll be fixed in the latest.


(Brandon Biondo) #10

We're locked down tighter than a kettle drum here. I'd be happy to ease restrictions but first I need to know what is breaking. The stacktrace isn't exactly helpful, as you can see.

More info: I just verified that 4.x installs and works without issue, so this has something to do with the 5.x line needing something that 4.x doesn't.

Do you have the ability to list what Node is looking for? Just a general list is fine. I'll go item-by-item to chmod 777 and see what happens.


(Matt Bargar) #11

Since the error seems to originate from the net module you could try enabling debug logging on it by setting the NODE_DEBUG environment variable. Prepend your command with NODE_DEBUG=net. You can list the names of other internal modules there as well in a comma delimited list, if you want to cast a larger net.

If that doesn't help you could also try enabling node's remote debugger, set a breakpoint on the offending line and see if the error object contains any additional info beyond what's being printed in the console.


(Brandon Biondo) #12

I had a similar thought.

I just ran a strace on /usr/share/kibana/bin/kibana with 0 arguments. Turns out node needs to be able to read /etc/resolv.conf (which was denied). Once I gave the kibana account read access everything worked!

Thank you for your patience and help.


(Matt Bargar) #13

Awesome, glad you got it figured out! Using strace is a good idea, I'll have to keep that in my back pocket.


(system) #14

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.