--- - name: Install Logstash hosts: elastic-logstash become: true vars_files: - vars/variables.yml environment: "{{ deployment_environment_variables | default({}) }}" tasks: - name: Set quarter memory fact set_fact: q_mem: "{{ ansible_memtotal_mb // 4 }}" - name: Set logstash facts set_fact: elastic_heap_size: "{{ ((q_mem | int) > 30720) | ternary(30720, q_mem) }}" when: - elastic_heap_size is undefined - include_tasks: common_task_install_elk_repo.yml - name: Configure systcl vm.max_map_count=262144 on container hosts sysctl: name: "vm.max_map_count" value: "262144" state: "present" reload: "yes" delegate_to: "{{ physical_host }}" tags: - sysctl - name: Ensure mount directories exists file: path: "/openstack/{{ inventory_hostname }}/logstash" state: "directory" delegate_to: "{{ physical_host }}" - name: logstash datapath bind mount lxc_container: name: "{{ inventory_hostname }}" container_command: | [[ ! -d "/var/lib/logstash" ]] && mkdir -p "/var/lib/logstash" container_config: - "lxc.mount.entry=/openstack/{{ inventory_hostname }}/logstash var/lib/logstash none bind 0 0" delegate_to: "{{ physical_host }}" when: - physical_host != inventory_hostname - container_tech | default('lxc') == 'lxc' - name: Ensure Java is installed apt: name: openjdk-8-jre state: present install_recommends: yes update_cache: yes - name: Ensure Logstash is installed apt: name: logstash state: present update_cache: yes - name: Drop Logstash conf for beats input template: src: templates/02-beats-input.conf.j2 dest: /etc/logstash/conf.d/02-beats-input.conf - name: Drop Logstash conf for beats input template: src: templates/10-syslog-filter.conf.j2 dest: /etc/logstash/conf.d/10-syslog-filter.conf - name: Drop Logstash conf for beats output template: src: templates/30-elasticsearch-output.conf.j2 dest: /etc/logstash/conf.d/30-elasticsearch-output.conf - name: Drop elasticsearch conf file template: src: "{{ item.src }}" dest: "{{ item.dest }}" with_items: - src: templates/jvm.options.j2 dest: /etc/logstash/jvm.options tags: - config - name: Ensure logstash ownership file: path: /var/lib/logstash owner: logstash group: logstash recurse: true - name: Enable and restart logstash systemd: name: "logstash" enabled: true state: restarted