[chapter]
[[kibana-plugins]]
= {kib} plugins

Implement add-on functionality for {kib} with plug-in modules.

[IMPORTANT]
.Plugin compatibility
==============================================

The {kib} plugin interfaces are in a state of constant development.  We cannot provide backwards compatibility for plugins due to the high rate of change.  {kib} enforces that the installed plugins match the version of {kib}.  
Plugin developers must release a new version of their plugin for each new {kib} release.

==============================================

[float]
[[known-plugins]]
== Known plugins

The known plugins were tested for {kib} *5.x*, so we are unable to guarantee compatibility with your version of {kib}. The {kib} installer rejects any plugins that haven't been published for your specific version of {kib}. 
We are unable to evaluate or maintain the known plugins, so care should be taken before installation.

[float]
=== Apps
* https://github.com/sivasamyk/logtrail[LogTrail] - View, analyze, search and tail log events in realtime with a developer/sysadmin friendly interface
* https://github.com/wtakase/kibana-own-home[Own Home] (wtakase) - enables multi-tenancy
* https://github.com/asileon/kibana_shard_allocation[Shard Allocation] (asileon) - visualize elasticsearch shard allocation
* https://github.com/wazuh/wazuh-kibana-app[Wazuh] - Wazuh provides host-based security visibility using lightweight multi-platform agents.
* https://github.com/TrumanDu/indices_view[Indices View] - View indices related information.
* https://github.com/johtani/analyze-api-ui-plugin[Analyze UI] (johtani) - UI for elasticsearch _analyze API
* https://github.com/TrumanDu/cleaner[Cleaner] (TrumanDu)- Setting index ttl.
* https://github.com/bitsensor/elastalert-kibana-plugin[ElastAlert Kibana Plugin] (BitSensor) - UI to create, test and edit ElastAlert rules
* https://github.com/query-ai/queryai-kibana-plugin[AI Analyst] (Query.AI) - App providing: NLP queries, automation, ML visualizations and insights

[float]
=== Timelion Extensions
* https://github.com/fermiumlabs/mathlion[mathlion] (fermiumlabs) - enables equation parsing and advanced math under Timelion

[float]
=== Visualizations
* https://github.com/virusu/3D_kibana_charts_vis[3D Charts] (virusu)
* https://github.com/JuanCarniglia/area3d_vis[3D Graph] (JuanCarniglia)
* https://github.com/TrumanDu/bmap[Bmap](TrumanDu) - integrated echarts for map visualization
* https://github.com/mstoyano/kbn_c3js_vis[C3JS Visualizations] (mstoyano)
* https://github.com/aaronoah/kibana_calendar_vis[Calendar Visualization] (aaronoah)
* https://github.com/elo7/cohort[Cohort analysis] (elo7)
* https://github.com/DeanF/health_metric_vis[Colored Metric Visualization] (deanf)
* https://github.com/JuanCarniglia/dendrogram_vis[Dendrogram] (JuanCarniglia)
* https://github.com/dlumbrer/kbn_dotplot[Dotplot] (dlumbrer)
* https://github.com/AnnaGerber/kibana_dropdown[Dropdown] (AnnaGerber)
* https://github.com/fbaligand/kibana-enhanced-table[Enhanced Table] (fbaligand)
* https://github.com/nreese/enhanced_tilemap[Enhanced Tilemap] (nreese)
* https://github.com/ommsolutions/kibana_ext_metrics_vis[Extended Metric] (ommsolutions)
* https://github.com/flexmonster/pivot-kibana[Flexmonster Pivot Table & Charts] - a customizable pivot table component for advanced data analysis and reporting.
* https://github.com/outbrain/ob-kb-funnel[Funnel Visualization] (roybass)
* https://github.com/sbeyn/kibana-plugin-gauge-sg[Gauge] (sbeyn)
* https://github.com/clamarque/Kibana_health_metric_vis[Health Metric] (clamarque)
* https://github.com/tshoeb/Insight[Insight] (tshoeb) - Multidimensional data exploration
* https://github.com/sbeyn/kibana-plugin-line-sg[Line] (sbeyn)
* https://github.com/walterra/kibana-milestones-vis[Milestones] (walterra)
* https://github.com/varundbest/navigation[Navigation] (varundbest)
* https://github.com/dlumbrer/kbn_network[Network Plugin] (dlumbrer)
* https://github.com/amannocci/kibana-plugin-metric-percent[Percent] (amannocci)
* https://github.com/dlumbrer/kbn_polar[Polar] (dlumbrer)
* https://github.com/dlumbrer/kbn_radar[Radar] (dlumbrer)
* https://github.com/dlumbrer/kbn_searchtables[Search-Tables] (dlumbrer)
* https://github.com/Smeds/status_light_visualization[Status Light] (smeds)
* https://github.com/prelert/kibana-swimlane-vis[Swimlanes] (prelert)
* https://github.com/sbeyn/kibana-plugin-traffic-sg[Traffic] (sbeyn)
* https://github.com/PhaedrusTheGreek/transform_vis[Transform Visualization] (PhaedrusTheGreek)
* https://github.com/nyurik/kibana-vega-vis[Vega-based visualizations] (nyurik) - Support for user-defined graphs, external data sources, maps, images, and user-defined interactivity.
* https://github.com/Camichan/kbn_aframe[VR Graph Visualizations] (Camichan)

[float]
=== Other
* https://github.com/nreese/kibana-time-plugin[Time filter as a dashboard panel] Widget to view and edit the time range from within dashboards.

* https://github.com/Webiks/kibana-API.git[Kibana-API] (webiks) Exposes an API with Kibana functionality.
Use it to create, edit and embed visualizations, and also to search inside an embedded dashboard.

* https://github.com/sw-jung/kibana_markdown_doc_view[Markdown Doc View] (sw-jung) - A plugin for custom doc view using markdown+handlebars template.
* https://github.com/datasweet-fr/kibana-datasweet-formula[Datasweet Formula] (datasweet) - enables calculated metric on any standard Kibana visualization.
* https://github.com/pjhampton/kibana-prometheus-exporter[Prometheus Exporter] - exports the Kibana metrics in the prometheus format

NOTE: To add your plugin to this page, open a {kib-repo}tree/{branch}/docs/plugins/known-plugins.asciidoc[pull request].

[float]
[[install-plugin]]
== Install plugins

Use the following command to install a plugin:

[source,shell]
bin/kibana-plugin install <package name or URL>

When you specify a plugin name without a URL, the plugin tool attempts to download an official Elastic plugin, such as:

["source","shell",subs="attributes"]
$ bin/kibana-plugin install x-pack

[float]
[[install-plugin-url]]
=== Install plugins from an arbitrary URL

You can download official Elastic plugins simply by specifying their name. You
can alternatively specify a URL or file path to a specific plugin, as in the following
examples:

["source","shell",subs="attributes"]
$ bin/kibana-plugin install https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-{version}.zip

or

["source","shell",subs="attributes"]
$ bin/kibana-plugin install file:///local/path/to/custom_plugin.zip

You can specify URLs that use the HTTP, HTTPS, or `file` protocols.

[float]
[[install-plugin-proxy-support]]
=== Proxy support for plugin installation

{kib} supports plugin installation via a proxy. It uses the `http_proxy` and `https_proxy`
environment variables to detect a proxy for HTTP and HTTPS URLs.

It also respects the `no_proxy` environment variable to exclude specific URLs from proxying.

You can specify the environment variable directly when installing plugins:

[source,shell]
$ http_proxy="http://proxy.local:4242" bin/kibana-plugin install <package name or URL>

[float]
[[update-remove-plugin]]
== Update and remove plugins

To update a plugin, remove the current version and reinstall the plugin.

To remove a plugin, use the `remove` command, as in the following example:

[source,shell]
$ bin/kibana-plugin remove x-pack

You can also remove a plugin manually by deleting the plugin's subdirectory under the `plugins/` directory.

NOTE: Removing a plugin will result in an "optimize" run which will delay the next start of {kib}.

[float]
[[disable-plugin]]
== Disable plugins

Use the following command to disable a plugin:

[source,shell]
-----------
./bin/kibana --<plugin ID>.enabled=false <1>
-----------

NOTE: Disabling or enabling a plugin will result in an "optimize" run which will delay the start of {kib}.

<1> You can find a plugin's plugin ID as the value of the `name` property in the plugin's `package.json` file.

[float]
[[configure-plugin-manager]]
== Configure the plugin manager

By default, the plugin manager provides you with feedback on the status of the activity you've asked the plugin manager
to perform. You can control the level of feedback for the `install` and `remove` commands with the `--quiet` and
`--silent` options. Use the `--quiet` option to suppress all non-error output. Use the `--silent` option to suppress all
output.

By default, plugin manager installation requests do not time out. Use the `--timeout` option, followed by a time, to
change this behavior, as in the following examples:

[source,shell]
.Waits for 30 seconds before failing
bin/kibana-plugin install --timeout 30s sample-plugin

[source,shell]
.Waits for 1 minute before failing
bin/kibana-plugin install --timeout 1m sample-plugin

[float]
[[plugin-custom-configuration]]
=== Plugins and custom {kib} configurations

Use the `-c` or `--config` options with the `install` and `remove` commands to specify the path to the configuration file
used to start {kib}. By default, {kib} uses the configuration file `config/kibana.yml`. When you change your installed
plugins, the `bin/kibana-plugin` command restarts the {kib} server. When you are using a customized configuration file,
you must specify the path to that configuration file each time you use the `bin/kibana-plugin` command.

[float]
[[plugin-manager-exit-codes]]
=== Plugin manager exit codes

[horizontal]
0:: Success
64:: Unknown command or incorrect option parameter
74:: I/O error
70:: Other error
