community.general.logstash callback – Sends events to Logstash
Note
This callback plugin is part of the community.general collection (version 14.0.0).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.general.
You need further requirements to be able to use this callback plugin,
see Requirements for details.
To use it in a playbook, specify: community.general.logstash.
Callback plugin
This plugin is a notification callback. It sends information for a playbook run to other applications, services, or systems. See Callback plugins for more information on callback plugins.
Synopsis
This callback reports facts and task events to Logstash https://www.elastic.co/products/logstash.
Requirements
The below requirements are needed on the local controller node that executes this callback.
whitelisting in configuration
logstash (Python library)
Parameters
Parameter |
Comments |
|---|---|
PEM-formatted file containing the CA certificate used to validate the Logstash server. This option is used only with Configuration:
|
|
PEM-formatted certificate chain file for TLS client authentication. This option is used only with Configuration:
|
|
PEM-formatted private key file for TLS client authentication. The key can also be included in Configuration:
|
|
Logging format. Used with all Choices:
Configuration:
|
|
HTTP request path, for example when sending events through a reverse proxy. This option is used only with Default: Configuration:
|
|
Password for HTTP Basic authentication. This option is used only with Configuration:
|
|
Port on which Logstash is listening. Used with all Default: Configuration:
|
|
Executes command before run and adds its result to the Configuration:
|
|
Transport protocol to use when sending events to Logstash. Choices:
Configuration:
|
|
Number of retries for HTTP 429 (Too Many Requests) responses. Uses exponential backoff with jitter between attempts. This option is used only with Default: Configuration:
|
|
Address of the Logstash server. Used with all Default: Configuration:
|
|
Maximum time in seconds to wait for an HTTP request to complete. This option is used only with Default: Configuration:
|
|
Message type. Used with all Default: Configuration:
|
|
Username for HTTP Basic authentication. This option is used only with Configuration:
|
|
Whether to validate the TLS certificate of the Logstash server. This option is used only with Choices:
Configuration:
|
Note
Configuration entries listed above for each entry type (Ansible variable, environment variable, and so on) have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up. The entry types are also ordered by precedence from low to high priority order. For example, an ansible.cfg entry (further up in the list) is overwritten by an Ansible variable (further down in the list).
Examples
ansible.cfg: |
# Enable Callback plugin
[defaults]
callback_whitelist = community.general.logstash
[callback_logstash]
server = logstash.example.com
port = 5000
protocol = tcp
pre_command = git rev-parse HEAD
type = ansible
ansible.cfg (HTTPS with Basic authentication): |
# Store the password in ANSIBLE_CALLBACK_LOGSTASH_PASSWORD or a secrets manager, not in this file
[defaults]
callbacks_enabled = community.general.logstash
[callback_logstash]
protocol = https
server = logstash.example.com
port = 8080
http_path = /
username = ansible
11-input-http.conf: |-
# Enable Logstash HTTP Input
input {
http {
port => 8080
user => "${LOGSTASH_HTTP_USER}"
password => "${LOGSTASH_HTTP_PASSWORD}"
ssl_enabled => true
ssl_certificate => "/etc/logstash/server.crt"
ssl_key => "/etc/logstash/server.pkcs8.key"
}
}
11-input-tcp.conf: |-
# Enable Logstash TCP Input
input {
tcp {
port => 5000
codec => json
add_field => { "[@metadata][beat]" => "notify" }
add_field => { "[@metadata][type]" => "ansible" }
}
}