logstash #10
Description
Installs the logstash indexer. Initially stand alone version with a dependency on elasticsearch as the backend provider.
- Tags:
- ops ›
Logstash
This charm provides LogStash. logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching)
Supported I/O
Inputs : File - /var/log/syslog and some others Redis - configured to use redis as a message bus from logstash agents Outputs : embedded - embedded elasticsearch ... this is fine for starting off testing, but should really use a real cluster elasticsearch - creation relationship with elasticsearch charm
Usage
example 1 - Just the Indexer + Kibana
juju deploy cs:trusty/logstash
juju deploy cs:precise/kibana
juju add-relation kibana logstash
juju expose kibana
example 2 - Indexer + 2 x ElasticSearch + Kibana
juju deploy cs:trusty/elasticsearch
juju add-unit elasticsearch
juju deploy cs:trusty/logstash
juju add-relation logstash elasticsearch
juju deploy cs:trusty/kibana
juju add-relation kibana elasticsearch:rest
juju expose kibana
example 3 - Agent + Indexer + 2 x ElasticSearch + Kibana
juju deploy cs:trusty/elasticsearch
juju add-unit elasticsearch
juju deploy cs:trusty/logstash-indexer
juju add-relation elasticsearch:cluster logstash-indexer
juju deploy --repository=logstash local:precise/kibana
juju add-relation elasticsearch:rest kibana
juju expose kibana
juju deploy --repository=logstash local:precise/logstash-agent
juju add-relation logstash-agent logstash-indexer:input
example 4 - python-logstash + Indexer + 2x ElasticSearch + Kibana
juju deploy cs:trusty/elasticsearch
juju add-unit elasticsearch
juju deploy cs:trusty/logstash-indexer
juju add-relation elasticsearch:cluster logstash-indexer
juju deploy cs:trusty/kibana
juju add-relation elasticsearch:rest kibana
juju expose kibana
juju expose logstash-indexer
$ python3
>>> import logging, logstash
>>> logger = logging.getLogger()
>>> logger.addHandler(
... logstash.LogstashHandler('<ip-of-indexer>', port=5959, version=1))
>>> logger.info('Hello Logstash!!!')
Caveats
The charm will fetch the logstash complete archive every time.
The charm has not been tested for scale and clustering, as each unit installs a stand-alone redis-daemon, it should be treated as a stand alone instance. This is inhereted behavior from the precise Logstash charm.
Configuration
The charm supports installation from anywhere that python requests can reach and understand. By default it will install a recent revision (1.4.2 as of this writing) from the elasticsearch.org site. this is configurable with 2 options
juju set logstash logstash-source="https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz" logstash-sum="d59ef579c7614c5df9bd69cfdce20ed371f728ff"
There is also a configuration option to add arbitrary packages pre-installation of logstash. The format is a space separated list.
juju set logstash extra-packages='vim byobu'
Contact Information
- Upstream website: logstash.net
- Upstream bug tracker: Logstash Jira
Configuration
- extra-config
- (string) Base64-encoded custom configuration content.
- extra-packages
- (string) Space separated list of extra apt packages to install.
- logstash-source
- (string) The logstash binary file to install to this charm.
- https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz
- logstash-sum
- (string) The checksum value for the logstash file.
- d59ef579c7614c5df9bd69cfdce20ed371f728ff
- nagios_check_cert_params
- (string) The parameters to pass to the nrpe plugin "check_tcp --ssl" to check certificate expiration date.
- -D 30,14 -H 127.0.0.1 -p 5043
- nagios_check_procs_params
- (string) The parameters to pass to the nrpe plugin check_procs.
- -a /opt/logstash/lib/logstash/runner.rb -c 1:1
- nagios_check_tcp_params
- (string) The parameters to pass to the nrpe plugin check_tcp.
- --ssl -H localhost -p 5043 -c 0.3
- nagios_context
- (string) Used by the nrpe subordinate charms. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
- juju
- nagios_servicegroups
- (string) A comma-separated list of nagios servicegroups. If left empty, the nagios_context will be used as the servicegroup
- ssl_cert
- (string) Base64-encoded SSL certificate
- ssl_key
- (string) Base64-encoded SSL key