openstack-ansible-ops/elk_metrics_6x/installMetricbeat.yml
Kevin Carter 5c10c12a37
Update stack and add heartbeat
Heartbeat has been enabled which will allow us to check the uptime of
hosts and services.

Stack updates have been made to correct a couple templating issues and
reduce template sizes by using includes where we have common config.

Change-Id: I47e32ac4b4ce8ca3ea572d8384660011af7cde6a
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-04-18 01:30:29 -05:00

86 lines
2.1 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: present
update_cache: true
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