Puppet Class: kibana

Inherits:
kibana::params
Defined in:
manifests/init.pp

Overview

Class: kibana

This class installs and configures kibana3 (www.elastic.co/products/kibana)

Parameters

version

String. Version of kibana to install

base_url

String. HTTP path to fetch kibana package from Default: download.elasticsearch.org/kibana/kibana

ca_cert

String: Path to ca cert (PEM formatted) Default: undef

tmp_dir

String. Working dir for caching package Default: /tmp

[elasticsearch_username}

String. The Elasticsearch user
Default: undef
elasticsearch_password

String. The Elasticsearch password Default: undef

pid_file

String. Path to the pid file Defailt: /var/run/kibana.pid

install_path

String. Location to install kibana Default: /opt

port

Integer. Port for kibana to listen on Default: 5601

bind

String. IP Address for kibana to listen on Default: 0.0.0.0

es_url

String. ElasticSearch path to connect to Default: localhost:9200

es_preserve_host

Boolean. Default: true

kibana_index

String. Index to save searches, visualizations, and dashboards Default: .kibana

default_app_id

String. The default application to load. Default: discover

request_timeout

Integer. Time in milliseconds to wait for responses from the back end or elasticsearch. Default: 300000

ssl_cert_file

String. Path to ssl key file (PEM formatted). Default: undef

ssl_key_file

String. Path to ssl cert file (PEM formatted). Default: undef

shard_timeout

String. Time in milliseconds for Elasticsearch to wait for responses from shards. Default: 0

legacy_service_mode

Boolean. Default: false

verify_ssl

Boolean. Default: true

Examples

  • Installation:

    class { 'kibana': }
    

Parameters:

  • version (Any) (defaults to: $::kibana::params::version)
  • base_url (Any) (defaults to: $::kibana::params::base_url)
  • ca_cert (Any) (defaults to: $::kibana::params::ca_cert)
  • install_path (Any) (defaults to: $::kibana::params::install_path)
  • tmp_dir (Any) (defaults to: $::kibana::params::tmp_dir)
  • port (Any) (defaults to: $::kibana::params::port)
  • bind (Any) (defaults to: $::kibana::params::bind)
  • es_url (Any) (defaults to: $::kibana::params::es_url)
  • es_preserve_host (Any) (defaults to: $::kibana::params::es_preserve_host)
  • kibana_index (Any) (defaults to: $::kibana::params::kibana_index)
  • elasticsearch_username (Any) (defaults to: $::kibana::params::elasticsearch_username)
  • elasticsearch_password (Any) (defaults to: $::kibana::params::elasticsearch_password)
  • default_app_id (Any) (defaults to: $::kibana::params::default_app_id)
  • pid_file (Any) (defaults to: $::kibana::params::pid_file)
  • plugins (Any) (defaults to: $::kibana::params::plugins)
  • request_timeout (Any) (defaults to: $::kibana::params::request_timeout)
  • shard_timeout (Any) (defaults to: $::kibana::params::shard_timeout)
  • ping_timeout (Any) (defaults to: $::kibana::params::ping_timeout)
  • startup_timeout (Any) (defaults to: $::kibana::params::startup_timeout)
  • ssl_cert_file (Any) (defaults to: $::kibana::params::ssl_cert_file)
  • ssl_key_file (Any) (defaults to: $::kibana::params::ssl_key_file)
  • verify_ssl (Any) (defaults to: $::kibana::params::verify_ssl)
  • base_path (Any) (defaults to: $::kibana::params::base_path)
  • log_file (Any) (defaults to: $::kibana::params::log_file)


93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'manifests/init.pp', line 93

class kibana (
  $version                = $::kibana::params::version,
  $base_url               = $::kibana::params::base_url,
  $ca_cert                = $::kibana::params::ca_cert,
  $install_path           = $::kibana::params::install_path,
  $tmp_dir                = $::kibana::params::tmp_dir,
  $port                   = $::kibana::params::port,
  $bind                   = $::kibana::params::bind,
  $es_url                 = $::kibana::params::es_url,
  $es_preserve_host       = $::kibana::params::es_preserve_host,
  $kibana_index           = $::kibana::params::kibana_index,
  $elasticsearch_username = $::kibana::params::elasticsearch_username,
  $elasticsearch_password = $::kibana::params::elasticsearch_password,
  $default_app_id         = $::kibana::params::default_app_id,
  $pid_file               = $::kibana::params::pid_file,
  $plugins                = $::kibana::params::plugins,
  $request_timeout        = $::kibana::params::request_timeout,
  $shard_timeout          = $::kibana::params::shard_timeout,
  $ping_timeout           = $::kibana::params::ping_timeout,
  $startup_timeout        = $::kibana::params::startup_timeout,
  $ssl_cert_file          = $::kibana::params::ssl_cert_file,
  $ssl_key_file           = $::kibana::params::ssl_key_file,
  $verify_ssl             = $::kibana::params::verify_ssl,
  $base_path              = $::kibana::params::base_path,
  $log_file               = $::kibana::params::log_file,
) inherits kibana::params {

  if !is_integer($port) {
    fail("Class['kibana']: port must be an integer.  Received: ${port}")
  }
  if !is_integer($request_timeout) or $request_timeout < 1 {
    fail("Class['kibana']: request_timeout must be an integer greater than 0.  Received: ${$request_timeout}")
  }
  if !is_integer($shard_timeout) or $shard_timeout < 0 {
    fail("Class['kibana']: shard_timeout must be an integer 0 or greater.  Received: ${$shard_timeout}")
  }
  validate_absolute_path($install_path)
  validate_absolute_path($tmp_dir)
  validate_absolute_path($pid_file)
  validate_bool($es_preserve_host)
  validate_bool($verify_ssl)

  if ( $ssl_cert_file != undef) {
    validate_absolute_path($ssl_cert_file)
  }

  if ( $ssl_key_file != undef) {
    validate_absolute_path($ssl_key_file)
  }

  class { '::kibana::install': } ->
  class { '::kibana::config': } ~>
  class { '::kibana::service': }

  # automagically install plugins
  if is_hash($plugins) {
    create_resources(kibana::plugin, $plugins)
  }

  Class['kibana::install'] ~> Class['kibana::service']
}