Installing Sense
editInstalling Sense
editSense 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
editTo run Sense you will need:
- Kibana of version 4.2 or later.
- A modern browser
Running against Elasticsearch 1.x / disabling Kibana’s Discover, Visualize & Dashboard apps
editKibana 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
editSense 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
editYou 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
, andmatch.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
editKibana’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