Installing Sense

Sense is a Kibana app. To get up and running you will first need to download Kibana and install as instructed here. You will need Kibana 4.2 or higher. Once Kibana is installed, you can install Sense running the following command from your Kibana folder:

$./bin/kibana plugin --install elastic/sense

This will download and install the latest available version of Sense.

You will now need to start Kibana:

$./bin/kibana

You should now be able to access Sense with a web browser on http://localhost:5601/app/sense (replace host and port if you configured them differently in Kibana).

By default, Kibana 4.2 requires an active Elasticsearch instance of version 2.0 or higher. If you want to use Sense without this requirement see instructions here.

Minimum Requirements

To run Sense you will need:

Running against Elasticsearch 1.x / disabling Kibana’s Discover, Visualize & Dashboard apps

Kibana ships by default with 3 handy apps called Discover, Visualize and Dashboard. These applications require an active Elasticsearch cluster of version 2.0 or higher.

In order to use Sense with Elasticsearch 1.x, or if you don’t want the overhead of the extra apps, add the following lines to your config/kibana.yml file:

kibana.enabled: false        # disable the standard kibana discovery, visualize & dashboard plugins
elasticsearch.enabled: false # do not require a running Elasticsearch 2.0 instance

After this change you will need to restart Kibana.

Securing Sense

Sense is meant to be used as a local development tool. As such, it will send requests to any host & port combination, just as a local curl command would. To overcome the CORS limitations enforced by browsers, Sense’s Node.js backend serves as a proxy to send requests on behalf of the browser. However, if put on a server and exposed to the internet this can become a security risk. In those cases, we highly recommend you lock down the proxy by setting the sense.proxyFilter setting. The setting accepts a list of regular expressions that are evaluated against each URL the proxy is requested to retrieve. If none of the regular expressions match the proxy will reject the request.

Here is an example configuration the only allows Sense to connect to localhost:

sense.proxyFilter:
  - ^https?://(localhost|127\.0\.0\.1|\[::0\]).*

You will need to restart Kibana for these changes to take effect.

Configuration

You can add the following options in the config/kibana.yml file:

sense.defaultServerUrl
The default value of the Server text box, where Sense sends all its requests to. Note that Sense remember the last server you used. This setting only has effect when Sense first loaded. Defaults to localhost:9200
sense.proxyFilter
A list of regular expressions that are used to validate any outgoing request from Sense. If none of these match, the request will be rejected. Defaults to .* . See Securing Sense for more details.
sense.proxyConfig

A list of configuration options that are based on the proxy target. Use this to set custom timeouts or SSL settings for specific hosts. This is done by defining a set of match criteria using wildcards/globs which will be checked against each request. The configuration from all matching rules will then be merged together to configure the proxy used for that request.

The valid match keys are match.protocol, match.host, match.port, and match.path. All of these keys default to *, which means they will match any value.

Example:

sense.proxyConfig:
  - match:
      host: "*.internal.org" # allow any host that ends in .internal.org
      port: "{9200..9299}" # allow any port from 9200-9299

    ssl:
      ca: "/opt/certs/internal.ca"
      # "key" and "cert" are also valid options here

  - match:
      protocol: "https"

    ssl:
      verify: false # allows any certificate to be used, even self-signed certs

  # since this rule has no "match" section it matches everything
  - timeout: 180000 # 3 minutes

Kibana needs to be restarted after each change to the configuration for them to be applied.

Manual Download

Kibana’s bin/plugin script requires direct internet access for downloading and installing Sense. If your server doesn’t have internet access, you can download the Sense tar file from the following link: https://download.elasticsearch.org/elastic/sense/sense-latest.tar.gz

Once downloaded you can install Sense using the following command:

$ bin/kibana plugin -i sense -u file:///PATH_TO_SENSE_TAR_FILE