Kibana is not running on FreeBSD

Hello everybody,

I'm fighting with kibana since few days and I don't overcome to start it on my FreeBSD server.

This is my environment:

  • FreeBSD 11.1-STABLE
  • ElasticSearch 5.3.0
  • Kibana 5.3.0
  • Logstash 5..

ElasticSearch and Logstash work fine. But I don't overcome to start kibana service.

This is files according to kibana:

kibana.yml file:

# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601

# Specifies the address to which the Kibana server will bind. IP addresses and host names are 
both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "0.0.0.0"

# Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects
# the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests
# to Kibana. This setting cannot end in a slash.
server.basePath: "/qual/kibana"

# The maximum payload size in bytes for incoming server requests.
#server.maxPayloadBytes: 1048576

# The Kibana server's name.  This is used for display purposes.
#server.name: "your-hostname"

# The URL of the Elasticsearch instance to use for all your queries.
elasticsearch.url: "http://localhost:9200"

# When this setting's value is true Kibana uses the hostname specified in the server.host
# setting. When the value of this setting is false, Kibana uses the hostname of the host
# that connects to this Kibana instance.
#elasticsearch.preserveHost: true

# Kibana uses an index in Elasticsearch to store saved searches, visualizations and
# dashboards. Kibana creates a new index if the index doesn't already exist.
kibana.index: ".kibana"

# The default application to load.
#kibana.defaultAppId: "discover"

# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
#elasticsearch.username: "user"
#elasticsearch.password: "pass"

# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key

# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files validate that your Elasticsearch backend uses the same key files.
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key

# Optional setting that enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]

# To disregard the validity of SSL certificates, change this setting's value to 'none'.
#elasticsearch.ssl.verificationMode: full

# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
# the elasticsearch.requestTimeout setting.
#elasticsearch.pingTimeout: 1500

# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value
# must be a positive integer.
#elasticsearch.requestTimeout: 30000

# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side
# headers, set this value to [] (an empty list).
#elasticsearch.requestHeadersWhitelist: [ authorization ]

# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten
# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.
#elasticsearch.customHeaders: {}

# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
#elasticsearch.shardTimeout: 0

# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.
#elasticsearch.startupTimeout: 5000

# Specifies the path where Kibana creates the process ID file.
pid.file: /var/run/kibana.pid

# Enables you specify a file where Kibana stores log output.
logging.dest: /var/log/kibana.log

# Set the value of this setting to true to suppress all logging output.
#logging.silent: false

# Set the value of this setting to true to suppress all logging output other than error messages.
#logging.quiet: false

# Set the value of this setting to true to log all events, including system usage information
# and all requests.
#logging.verbose: false

# Set the interval in milliseconds to sample system and process performance
# metrics. Minimum is 100ms. Defaults to 5000.
#ops.interval: 5000

# The default locale. This locale can be used in certain circumstances to substitute any missing
# translations.
#i18n.defaultLocale: "en"

/usr/local/etc/rc.d/kibana:

#!/bin/sh
#
# $FreeBSD: head/textproc/kibana5/files/kibana.in 462830 2018-02-24 14:17:41Z feld $
#

# PROVIDE: kibana
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name=kibana
rcvar=kibana_enable

load_rc_config $name

: ${kibana_enable:="NO"}
: ${kibana_config:="/usr/local/etc/kibana.yml"}
: ${kibana_user:="www"}
: ${kibana_group:="www"}
: ${kibana_log:="/var/log/kibana.log"}

required_files="${kibana_config}"
pidfile="/var/run/${name}/${name}.pid"
start_precmd="kibana_precmd"
procname="/usr/local/bin/node"
command="/usr/sbin/daemon"
command_args="-f -p ${pidfile} env BABEL_DISABLE_CACHE=1 ${procname} /usr/local/www/kibana5/src/cli serve --config ${kibana_config} --log-file ${kibana_log}"

kibana_precmd()
{
	if [ ! -d $(dirname ${pidfile}) ]; then
		install -d -o ${kibana_user} -g ${kibana_group} $(dirname ${pidfile})
	fi

	if [ ! -f ${kibana_log} ]; then
		install -o ${kibana_user} -g ${kibana_group} -m 640 /dev/null ${kibana_log}
	fi

	if [ ! -d /usr/local/www/kibana5/optimize ]; then
		install -d -o ${kibana_user} -g ${kibana_group} /usr/local/www/kibana5/optimize
	fi
}

run_rc_command "$1"

/etc/rc.conf:

kibana_enable="YES"

But when I execute: service kibana start
I get:

root@pyqual3:/var/log # service kibana start
Starting kibana.
root@pyqual3:/var/log # service kibana status
kibana is not running.

I don't know why ?

Can you share the contents of /var/log/kibana.log?

I don't know why, but the kibana.log file is empty.

This thread seems perhaps related: Kibana crashes with default installation with FreeBSD

Also of note, FreeBSD is not listed in our officially supported OS list. Only thing I can think of is that either you do not have node installed on this machine or you do but it is not the correct version. What does node -v return?

node -v returns:

Shared object "libdl.so.1" not found, required by "libuv.so.1"
Maybe there is an issue with node version. However, I believe when I installed kibana5, it installs node6 too.

Sounds like an issue with package installation on FreeBSD, and I am definitely not knowledgeable about FreeBSD. I would try searching the web for that error message and seeing what comes back -- maybe you can find a solution that way.

Apparently, I have node6-6.17.1 and kibana5-5.6.8_1 on my FreeBSD server. If I want to install node12, I have to uninstall existing node version and kibana.

But, I can't install the last version of kibana6 because I need to keep ElasticSearch5 for other applications.

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