Skip to main content
Version: 6.0

Kibana

Kibana enables you to interactively explore, visualize, and share insights into your network flow data, as well as manage and monitor Elasticsearch.

Download Kibana Objects

The Kibana dashboards and related configuration artifacts can be easily imported. You must first download the relevant import file, depending on the configuration of your environment.

Kibana Objects for the Elastic Stack

VersionSchemaThemeConfiguration
7.14.x - 8.5.xCODEXdarkkibana-7.14.x-codex-dark.ndjson
7.14.x - 8.5.xCODEXlightkibana-7.14.x-codex-light.ndjson
7.14.x - 8.5.xECSdarkkibana-7.14.x-ecs-dark.ndjson
7.14.x - 8.5.xECSlightkibana-7.14.x-ecs-light.ndjson
7.12.x - 7.13.xCODEXdarkkibana-7.12.x-codex-dark.ndjson
7.12.x - 7.13.xCODEXlightkibana-7.12.x-codex-light.ndjson
7.12.x - 7.13.xECSdarkkibana-7.12.x-ecs-dark.ndjson
7.12.x - 7.13.xECSlightkibana-7.12.x-ecs-light.ndjson

Import Kibana Objects

Importing via the User Interface

To import the configuration, in Kibana go to Stack Management --> Saved Objects and click Import in the upper right corner.

Saved Objects Before

A side-bar will appear. Again click Import at the top of the side-bar.

Import

Select the file which you downloaded, and click the Import button at the bottom of the side-bar.

ndjson File

The configuration will be imported and you will see all of the imported objects.

Imported

Close the side-bar. You will also see all of the imported objects in the Saved Objects list.

Saved Objects After

Importing via the API

curl -XPOST "https://username:password@IPORHOSTOFKIBANA:5601/api/saved_objects/_import?overwrite=true" -k -H "kbn-xsrf: true" -H "securitytenant: global" --form file=@kibana-7.14.x-ecs-light.ndjson

Troubleshooting Import Problems

When the Kibana import fails neither the import UI nor the Kibana logs will provide any useful information. However attempting to import via curl will usually provide more detail.

The most common issue is related to the relative large size of the Kibana Saved Objects file. This can cause the import to fail unless the maximum allowed payload size is increased. The Kibana setting is server.maxPayloadBytes (or SERVER_MAXPAYLOADBYTES if using Docker), which should also be set to 8388608.

If you have a reverse proxy in front of Kibana, you may have to modify your proxy settings as well. Many reverse proxies also have relatively low values for the maximum body size. For example the NGINX default is only 1MB. This can be increased by setting client_max_body_size to 8388608. Refer to the documentation for your proxy software to similarly modify its behavior.

Settings for All Kibana Distributions

You may find that modifying a few of the Kibana advanced settings will produce a more user-friendly experience while using ElastiFlow. These settings are made in Kibana, under Stack Management -> Kibana -> Advanced Settings.

Advanced SettingValueWhy make the change?
filters:pinnedByDefaulttruePinning a filter allows it to persist when you are changing dashbaords. This is very useful when drilling-down into something of interest and you want to change dashboards for a different perspective of the same data. This is the #1 setting we recommend changing.
defaultRoutesee descriptionIf your primary or only use-case for Kibana is ElastiFlow, set this the URL path for the dashboard to which you which to load immediately after logging in, or when returning to "home". The format of this value is /app/dashboards#/view/4a608bc0-3d3e-11eb-bc2c-c5758316d788.
doc_table:highlightfalseThere be a query performance penalty that comes with using the highlighting feature. As it isn't very useful for this use-case, it is better to just turn it off.
state:storeInSessionStoragetrueKibana URLs can get pretty large. Especially when working with Vega visualizations. This will likely result in error messages for users of Internet Explorer. Using in-session storage will fix this issue for these users.
theme:darkModetrue or falseEnable dark mode for the Kibana UI. This setting should match the ndjson import file discussed above.
timepicker:timeDefaultssee belowThe Time Picker Quick Range to use when Kibana is started without one.
timepicker:quickRangessee belowThe default options in the Time Picker are less than optimal, for most logging and monitoring use-cases. Fortunately Kibana now allows you to customize the time picker. Our recommended settings can be found below.
format:number:defaultPattern0,0.[00]Default numeral format for the "number" format.
format:percent:defaultPattern0,0.[00]%Default numeral format for the "percent" format.

We find that the following Time Picker Time Default provides more useful views of the data for network flow related use-cases.

{
"from": "now-1h/m",
"to": "now"
}

We find that the following set of Time Picker Quick Ranges provides more useful views of the data for network flow related use-cases.

[
{
"from": "now-15m/m",
"to": "now/m",
"display": "Last 15 minutes"
},
{
"from": "now-30m/m",
"to": "now/m",
"display": "Last 30 minutes"
},
{
"from": "now-1h/m",
"to": "now/m",
"display": "Last 1 hour"
},
{
"from": "now-2h/m",
"to": "now/m",
"display": "Last 2 hours"
},
{
"from": "now-4h/m",
"to": "now/m",
"display": "Last 4 hours"
},
{
"from": "now-12h/m",
"to": "now/m",
"display": "Last 12 hours"
},
{
"from": "now-24h/m",
"to": "now/m",
"display": "Last 24 hours"
},
{
"from": "now-48h/m",
"to": "now/m",
"display": "Last 48 hours"
},
{
"from": "now-7d/m",
"to": "now/m",
"display": "Last 7 days"
},
{
"from": "now-30d/m",
"to": "now/m",
"display": "Last 30 days"
},
{
"from": "now-60d/m",
"to": "now/m",
"display": "Last 60 days"
},
{
"from": "now-90d/m",
"to": "now/m",
"display": "Last 90 days"
}
]

Settings for Elastic's X-Pack Features

note

The following settings require that the Unified Flow Collector is used with an Elastic Stack deployment licensed for X-Pack Basic or higher. The collector's Elasticsearch output must also be configured with ECS-support enabled (set EF_OUTPUT_ELASTICSEARCH_ECS_ENABLE to true).

Advanced SettingValueWhy make the change?
securitySolution:ipReputationLinkssee belowModifying these settings provides a more seamless integration with the RiskIQ PassiveTotal service while using Kibana's Security app.
securitySolution:defaultIndexadd elastiflow-flow-ecs-*Add the ElastiFlow index pattern, with support for ECS, to populate the Kibana's Security app with data network flow records from ElastiFlow.
securitySolution:timeDefaultssee belowFor the best experience set this value similar to timepicker:timeDefaults.
[
{ "name": "RiskIQ", "url_template": "https://community.riskiq.com/research?query={{ip}}" },
{ "name": "VirusTotal", "url_template": "https://www.virustotal.com/gui/search/{{ip}}" }
]

We find that the following Security Solution Time Default provides more useful views of the data for network flow related use-cases.

{
"from": "now-1h/m",
"to": "now"
}

Provided Dashboards

Overview

Overview

Top Talkers

Top Talkers

Top Services

Top Services

Top Applications

Top Applications

Top Conversations

Top Conversations

Threats

Threats

Flows

Flows

Geo Location - CODEX

Geo Location

Geo Location - ECS/X-Pack

Geo Location

AS Traffic

AS Traffic

Flow Exporters (traffic)

image

Flow Exporters (metrics)

image

Traffic Details

Traffic Details

Flow Records

image

Kibana Security App - ECS/X-Pack

Kibana Security App