brooklyn.catalog: version: 1.0.0-SNAPSHOT iconUrl: https://static-www.elastic.co/assets/blte39224bc57d3e015/icon-logstash.svg items: - id: logstash-standalone name: "Logstash server" description: "Single Logstash server" item: type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess provisioning.properties: osFamily: ubuntu brooklyn.config: install.version: "2.4.0" logstash.config.input: input { file { path => "/var/log/*" } } logstash.config.filter: '' logstash.config.output: $brooklyn:formatString: - | output { elasticsearch { hosts => %s } } - $brooklyn:config("logstash.elasticsearch.hosts") logstash.config.dir: /etc/logstash/conf.d shell.env: LOGSTASH_VERSION: $brooklyn:config("install.version") INPUT_CONFIG: $brooklyn:config("logstash.config.input") FILTER_CONFIG: $brooklyn:config("logstash.config.filter") OUTPUT_CONFIG: $brooklyn:config("logstash.config.output") CONFIG_DIR: $brooklyn:config("logstash.config.dir") ELASTICSEARCH_HOSTS: $brooklyn:config("logstash.elasticsearch.hosts") install.command: | #Update the system sudo apt-get update # Download the cert and repository wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://packages.elastic.co/logstash/2.4/debian stable main" | sudo tee -a /etc/apt/sources.list sudo apt-get update && sudo apt-get -y install openjdk-8-jre logstash # add a config file for logstash sudo mkdir -p ${CONFIG_DIR} echo "${INPUT_CONFIG} ${FILTER_CONFIG} ${OUTPUT_CONFIG}" | sudo tee ${CONFIG_DIR}/01-basic.conf launch.command: sudo systemctl start logstash.service stop.command: sudo systemctl stop logstash.service checkRunning.command: sudo systemctl status logstash.service - id: logstash-child name: "Logstash Child" description: | Logstash server to be embedded as a child of a SoftwareProcess that publishes its 'log.location' as a sensor. Callers should configure 'logstash.elasticsearch.hosts' (if using ES) or 'logstash.config.output'. item: type: logstash-standalone brooklyn.config: logstash.elasticsearch.host: 127.0.0.1:9200 # must be supplied by caller!