83a64509c5
Beat set is using a loop to ship both templates and dashboards using different commands. This is being done to ensure no data is lost or mis-setup during index creation. Packetbeat only needs to be installed on hosts All of the beats are now using standard field templates. Change-Id: Ie6220eb94a12780ad122ba367bf7654d97c212e8 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
82 lines
2.0 KiB
YAML
82 lines
2.0 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"
|