Skip to content

Ansible FluentD Callback Plugin

This repository provides a callback plugin that ships Ansible output via FluentD to an indexer as configured via FLuentD.

Ansible section

Install fluent-logger-python

1
pip install fluent-logger

Append the following to the [defaults] section of your ansible.cfg

1
2
callback_plugins   = <path_to_callback_plugins_folder>
callback_whitelist = fluentd

Put the fluentd plugin from this git repository into the path_to_callback_plugins_folder as defined above.

This plugin makes use of the following environment variables:

  • FLUENTD_SERVER (optional): defaults to localhost
  • FLUENTD_PORT (optional): defaults to 24224
  • FLUENTD_TYPE (optional): defaults to ansible

FluentD section

Basic fluentd testing config

1
2
3
4
<source>
  @type forward
  port 24224
</source>

Shipping logs to elasticsearch

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<source>
  @type forward
  port 24224
</source>

<match app.ansible>
  @type elasticsearch
  logstash_format true
  host 127.0.0.1
  port 9200
  include_tag_key true
  tag_key @log_name
  index_name ansible
  type_name ansible
  reconnect_on_error true
</match>

Elasticsearch

This repository contains a file titled ansible.json. This template can be loaded into your elasticsearch cluster to provide a nice mapping for the ansible data.

List available templates

1
curl -s -XGET localhost:9200/_template
Load the template
1
curl -s -XPUT 'http://localhost:9200/_template/ansible' -d@ansible.json