ac286b0ac3
* Added options for the rollback plan so that if a rollback is executed all beat packages will be removed. * additional updates to streamline elk and fix container bindmounts, the use of group information for metric and heartbeat information. * Readme information has been fixed Change-Id: Icd070259db5b19d289d10033b1f055125f56e18c Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
93 lines
2.3 KiB
YAML
93 lines
2.3 KiB
YAML
---
|
|
- name: Install Metricsbeat
|
|
hosts: all
|
|
become: true
|
|
vars:
|
|
haproxy_ssl: false
|
|
|
|
vars_files:
|
|
- vars/variables.yml
|
|
|
|
pre_tasks:
|
|
- include_tasks: common_task_install_elk_repo.yml
|
|
|
|
- name: Ensure Metricsbeat is installed
|
|
apt:
|
|
name: metricbeat
|
|
state: "{{ elk_package_state | default('present') }}"
|
|
update_cache: true
|
|
tags:
|
|
- package_install
|
|
|
|
- name: exit playbook after uninstall
|
|
meta: end_play
|
|
when:
|
|
- elk_package_state | default('present') == 'absent'
|
|
|
|
tasks:
|
|
- name: Check for apache
|
|
stat:
|
|
path: /etc/apache2
|
|
register: apache2
|
|
|
|
- name: Check for httpd
|
|
stat:
|
|
path: /etc/httpd
|
|
register: httpd
|
|
|
|
- name: Check for nginx
|
|
stat:
|
|
path: /etc/nginx/nginx.conf
|
|
register: nginx
|
|
|
|
- name: Check for uwsgi
|
|
stat:
|
|
path: /etc/uwsgi
|
|
register: uwsgi
|
|
|
|
- name: Set discovery facts
|
|
set_fact:
|
|
apache_enabled: "{{ (apache2.stat.exists | bool) or (httpd.stat.exists | bool) }}"
|
|
nginx_enabled: "{{ nginx.stat.exists | bool }}"
|
|
uwsgi_enabled: "{{ uwsgi.stat.exists | bool }}"
|
|
|
|
post_tasks:
|
|
- name: Drop metricbeat conf file
|
|
template:
|
|
src: templates/metricbeat.yml.j2
|
|
dest: /etc/metricbeat/metricbeat.yml
|
|
|
|
- name: Enable and restart metricbeat
|
|
systemd:
|
|
name: "metricbeat"
|
|
enabled: true
|
|
state: restarted
|
|
|
|
|
|
- name: Load Metricsbeat Dashboards
|
|
hosts: all[0]
|
|
become: true
|
|
vars_files:
|
|
- vars/variables.yml
|
|
tasks:
|
|
- name: Load templates
|
|
shell: >-
|
|
{% set IP_ARR=[] %}
|
|
{% for host in groups['elastic-logstash'] %}
|
|
{% if IP_ARR.insert(loop.index,hostvars[host]['ansible_host']) %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% set elasticsearch_hosts = [IP_ARR | map('regex_replace', '$', ':' ~ elastic_port|string()) | map('regex_replace', '$', '"') | map('regex_replace', '^', '"') | list | join(',' )] %}
|
|
metricbeat setup
|
|
{{ item }}
|
|
-E 'output.logstash.enabled=false'
|
|
-E 'output.elasticsearch.hosts={{ elasticsearch_hosts }}'
|
|
-e -v
|
|
with_items:
|
|
- "--template"
|
|
- "--dashboards"
|
|
register: templates
|
|
until: templates | success
|
|
retries: 3
|
|
delay: 2
|