/ansible-kafka

Primary LanguageJinjaApache License 2.0Apache-2.0

humio.kafka

DEPRECATED. This repo will no longer get any updates. Please consider using humio-operator to install and manage Logscale https://library.humio.com/falcon-logscale-self-hosted/installation-containers-kubernetes.html.

Kafka installer for running together with Humio

Requirements

This role must have access to an installation of Zookeeper

Role Variables

See the defaults.

On machines without internet access the kafka_mirror variable can be set to "master" to copy the Kafka tarball from the master's files directory

kafka_mirror: "master"

Rack Awareness

Kafka supports rack awareness if you specify which rack each Kafka node is in. This can be done by setting the broker.rack setting in Kafka. This is configured in this Ansible role via the kafka_broker_rack variable. To have this work properly, make sure each rack or datacenter is defined as a group in your inventory and the appropriate machines are assigned. You can then either set the kafka_broker_rack variable directly inside the inventory or you can create a group_vars file for each of the rack/datacenter groups that defines it appropriately.

By default, all Kafkas are assigned to a single rack named dc1.

Dependencies

Java 9 must be installed. humio.java role is recommended

Example Playbook

- hosts: servers
  become: true
  vars:
    zookeeper_hosts:
      - zookeeper_id: 1
        ip: "{{ ansible_default_ipv4.address }}"
  roles:
    - role: humio.java
    - role: AnsibleShipyard.ansible-zookeeper
    - role: humio.kafka

Troubleshooting

If you're forced to interrupt the ansible run during the Install Kafka from remote step, you may run into a situation where the tarball that's being fetched and unarchived was interrupted during the unarchive phase. If this step is interrupted while the tarball is still being fetched (e.g., a timeout), then you're fine to simply re-run the playbook again. If it happens during the unarchive phase, you will need to manually clear the /usr/lib/kafka_{{ kafka_scala_version }}-{{ kafka_version }} directory before running the playbook again (this stage checks for the existance of that directory to skip the step in future runs).

License

Apache 2.0