Skip to content

Kibana Dashboards

Installation

No steps required.

Configuration

The Insight-Kibana components has one menu action to be called:

action: "kibanaOpen"

  • Opens the configured Kibana URL/Dashboard with filter in a new tab on the right.

The first object in actionValues is responsible for the configuration.

Possible configuration parameters:

  • tab
    • label -- Defines the label of the newly created tab. May contain variable names.
  • dashboard
    • id: id or name of the Kibana dashboard to be open
    • filter: filter part of the Kibana URL. May contain variable names.
    • url: Full URL to an Kibana URL. May contain variable names. Ignored when "id" and/or "filter" are defined!
  • mapping
    • label: for non-insight indices a label-template can be defined. Properties are based on the retrieved elasticsearch document.
    • mapping: for non-insight-indices a query should be defined to retrieve the matching node. Used for focusing the node in the tree as well as getting the context menu.
    • config: tree configuration used for fetching node data and menu configuration

Attention: Make sure to prefix variables in 'label' and 'query' with a % sign, not the usual $.

Example menu entries:

    {
      "tab": {
        "label": "Freigaben - ${LOCATION}"
      },
      "dashboard": {
        "id": "c3d89540-2b3d-11e7-b90b-e303c14ae3ec",
        "filter": "_g=()&_a=(filters:!(('$state':(store:appState),meta:(alias:!n,disabled:!f,index:workorder-freigabe,key:properties.LOCATION,negate:!f,value:${LOCATION}),query:(match:(properties.LOCATION:(query:${LOCATION},type:phrase))))),options:(darkTheme:!f),panels:!((col:1,id:wo-freigabe-location,panelIndex:2,row:1,size_x:5,size_y:3,type:visualization),(col:7,id:wo-freigabe-status,panelIndex:3,row:1,size_x:6,size_y:3,type:visualization),(col:7,id:wo-freigabe-wonum,panelIndex:4,row:4,size_x:6,size_y:3,type:visualization),(col:1,id:wo-freigabe-priority,panelIndex:5,row:4,size_x:5,size_y:3,type:visualization),(col:1,columns:!(properties.WONUM,properties.OWNER,properties.STATUS,properties.WOPRIORITY,properties.LOCATION,properties.DESCRIPTION),id:workorder-freigabe-empty,panelIndex:6,row:7,size_x:10,size_y:2,sort:!(_score,desc),type:search)),query:(query_string:(analyze_wildcard:!t,query:'*')),title:wo-freigabe-notable,uiState:(P-2:(vis:(legendOpen:!t))))"
        "url": "/insight/kibana/app/kibana#/dashboard/Kennzeichen-DB?embed=true&_g=()"
      },
      "mapping": {
        "label": "${WONUM} - ${DESCRIPTION}",
        "query": "_type:Auftrag_S AND properties.WONUM:${WONUM} AND
        "properties.SITEID:HD",
        "config: "workorder-quickrep"
      }
    }

Embed external Kibana Dashboard

Kibana Dashboards are embedded with iframes. Modern browsers do not allow direct access from the embedding website into an iframe when the iframes URL is based on a different domain. Currently this kind of access is mandatory to be able to provided functionality based on the resulting Kibana dashboard data.

If you want to embed external Kibana dashboards there are two options:

  1. Make the external Kibana available under the same domain name
  2. Proxy the external Kibana through the existing http-server.

Same domain name:

If the Insight hostname is "some-server.domain.tld" than make the Kibana available on "some-other-server.domain.tld". This can be easily achieved by using an DNS alias.

=> dashboard.url: "http://some-other-server.domain.tld/app/kibana#/dashboard/some-dashboard-name-or-id?......"

Proxy:

Corresponding to the existing proxy configuration for "/insight/kibana" in the httpd insight.conf another part can be added to proxy another Kibana instance:

    <Location "/insight/kibana-monitoring">
        ProxyPass http://monitoring.domain.tld:5601
        ProxyPassReverse http://monitoring.domain.tld:5601
    </Location>

=> dashboard.url: "/insight/kibana-monitoring/app/kibana#/dashboard/some-dashboard-name-or-id?...."