Deploying an ELK Cluster with Application Centric Deployment

Starting with orcharhino 5.7, you can deploy applications via the in-house developed application-centric deployment (short: ACD) plugin. ACD allows you to deploy multi-host applications with the click of a button based on Ansible playbooks and application definitions. Refer to the application-centric deployment guide for more information.

Requirements for this example

  • orcharhino configured to deploy hosts running CentOS 7
  • configured host group for CentOS 7, including necessary content for hosts, e.g. packages that will be installed via an Ansible task

  • one time root access to orcharhino via ssh to put the Ansible playbook into /etc/foreman/plugins/foreman_acd/ansible-playbooks/

  • orcharhino enabled to perform smart proxy functionality with remote execution for its subnet

Preparations in the terminal

  1. Download the ACD playbook from github.

    ssh root@orcharhino.example.com
    cd /tmp/
    wget https://github.com/ATIX-AG/acd_playbook_for_elk/archive/main.zip
    unzip -d /etc/foreman/plugins/foreman_acd/ansible-playbooks/ main.zip
    rm -f /tmp/main.zip
    
  2. View list of files and note the path of the directory and the Ansible playbook.

    ls /etc/foreman/plugins/foreman_acd/ansible-playbooks/acd_playbook_for_elk-main/
    /etc/foreman/plugins/foreman_acd/ansible-playbooks/acd_playbook_for_elk-main/
    play_elastic.yml
    

Set up Ansible playbook in the management UI

  1. Navigate to Applications > Ansible Playbooks and click the New Ansible Playbook button.
  2. Enter a name and both the path and name of the Ansible playbook file as shown above.

  3. Click the Import groups button to import Ansible group variables after submitting the Ansible playbook to orcharhino

Set up application definition

  1. Navigate to Applications > App Definitions and click the New Application Definition button.

  2. Enter a name and select the Ansible playbook from the step earlier.

  3. Define two services: elastic and kibana.


    You may set the limit of elastic nodes higher than one.
    We recommend using a host group with CentOS 7 for both services and at least two GiB of memory for the elastic nodes.

  4. Click Submit to save your application definition to orcharhino.

The two steps above are usually handled by an administrative user. Once this has been prepared, users with restricted rights can conveniently define and deploy multi-host applications as follows:

Define an application instance

  1. Navigate to Applications > App Instances and click the New Application Instance button.
  2. Enter a name and select the application definition from the step earlier.

  3. Using the + sign, add hosts to the two services from the application definition.

In this example, we create four hosts: three elastic nodes and one kibana node.

Deploy an application instance

  1. Navigate to Applications > App Instances and click the Deploy button.
    Grab a cup of coffee while your hosts are being deployed and configured.
    This process might take a while depending on your environment, compute resource provider, and network connectivity.
  2. View the last deployment by clicking the Show Report link.

You now have a fully functional ELK cluster consisting of three elastic nodes ready to store data and one kibana node to visualize your data. Navigate to http://kibana.example.com:5601/ and start adding data to your ELK cluster. Refer to the orcharhino documentation for more information.