openstack-ansible-ops/elk_metrics_6x
Kevin Carter dd00104cc1 Add filebeat support
This change adds all of the filebeat support we'd need to ingest data
throughout an environment.

Change-Id: I27a4ee678f020805bbc0adc72081685fbe9cecb4
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-04-12 10:41:18 -05:00
..
conf.d Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00
env.d Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00
templates Add filebeat support 2018-04-12 10:41:18 -05:00
vars Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00
common_task_install_elk_repo.yml Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00
installAuditbeat.yml Update README, beat deployment, and configs 2018-04-12 02:59:55 -05:00
installElastic.yml Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00
installFilebeat.yml Add filebeat support 2018-04-12 10:41:18 -05:00
installKibana.yml Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00
installLogstash.yml Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00
installMetricbeat.yml Update README, beat deployment, and configs 2018-04-12 02:59:55 -05:00
installPacketbeat.yml Update README, beat deployment, and configs 2018-04-12 02:59:55 -05:00
readme.rst Update README, beat deployment, and configs 2018-04-12 02:59:55 -05:00
site.yml Update elk 6.x playbooks 2018-04-11 03:11:44 -05:00

Install ELK with beats to gather metrics

tags

openstack, ansible

About this repository

This set of playbooks will deploy elk cluster (Elasticsearch, Logstash, Kibana) with topbeat to gather metrics from hosts metrics to the ELK cluster.

Process

Clone the elk-osa repo

cd /opt
git clone https://github.com/openstack/openstack-ansible-ops

Copy the env.d file into place

cd /opt/openstack-ansible-ops/elk_metrics_6x
cp env.d/elk.yml /etc/openstack_deploy/env.d/

Copy the conf.d file into place

cp conf.d/elk.yml /etc/openstack_deploy/conf.d/

In elk.yml, list your logging hosts under elastic-logstash_hosts to create the elasticsearch cluster in multiple containers and one logging host under kibana_hosts to create the kibana container

vi /etc/openstack_deploy/conf.d/elk.yml

Create the containers

cd /opt/openstack-ansible-playbooks
openstack-ansible lxc-containers-create.yml -e 'container_group=elastic-logstash:kibana'

install master/data elasticsearch nodes on the elastic-logstash containers

cd /opt/openstack-ansible-ops/elk_metrics_6x
openstack-ansible installElastic.yml

Install Logstash on all the elastic containers

cd /opt/openstack-ansible-ops/elk_metrics_6x
openstack-ansible installLogstash.yml

Install Kibana, nginx reverse proxy and metricbeat on the kibana container

cd /opt/openstack-ansible-ops/elk_metrics_6x
openstack-ansible installKibana.yml

Install Metricbeat everywhere to start shipping metrics to our logstash instances

cd /opt/openstack-ansible-ops/elk_metrics_6x
openstack-ansible installMetricbeat.yml

Optional | conigure haproxy endpoints

Edit the /etc/openstack_deploy/user_variables.yml file and add fiel following lines

haproxy_extra_services:
 - service:
      haproxy_service_name: kibana
      haproxy_ssl: False
      haproxy_backend_nodes: "{{ groups['kibana'] | default([]) }}"
      haproxy_port: 81  # This is set using the "kibana_nginx_port" variable
      haproxy_balance_type: tcp
  - service:
      haproxy_service_name: elastic-logstash
      haproxy_ssl: False
      haproxy_backend_nodes: "{{ groups['elastic-logstash'] | default([]) }}"
      haproxy_port: 5044  # This is set using the "logstash_beat_input_port" variable
      haproxy_balance_type: tcp
  - service:
      haproxy_service_name: elastic-logstash
      haproxy_ssl: False
      haproxy_backend_nodes: "{{ groups['elastic-logstash'] | default([]) }}"
      haproxy_port: 9201  # This is set using the "elastic_hap_port" variable
      haproxy_check_port: 9200  # This is set using the "elastic_port" variable
      haproxy_backend_port: 9200  # This is set using the "elastic_port" variable
      haproxy_balance_type: tcp

Optional | run the haproxy-install playbook

cd /opt/openstack-ansible/playbooks/
openstack-ansible haproxy-install.yml --tags=haproxy-service-config

Trouble shooting

If everything goes bad, you can clean up with the following command

openstack-ansible lxc-containers-destroy.yml --limit=kibana:elastic-logstash_all