Send puppet reports to ElasticSearch.
send_report_to_es [-h|--help] <directory>
-h/--help Show this help text and exit
directory A directory containing JSON reports. The script will walk the directory recursively, process all JSON files it finds, and submit the report data to ElasticSearch in a single bulk transaction.
Configuration is read from the file specified in the environment
variable PUPPET_ES_CONFIG
(defaults to /etc/puppet_es.conf
) and
uses ConfigParser syntax. A sample configuration file is included as
etc/puppet_es.conf.example.
``on_error`` (optional) What to do with the report files when we encounter a parse error or an ElasticSearch error. Possible values:
delete
Delete the file off diskarchive
Move the file to the directory specified inarchive_dir
ignore
Leave the file as-is (default)
``on_success`` (optional) What to do with the report file after successfully posting to ElasticSearch. Possible values:
delete
Delete the file off diskarchive
Move the file to the directory specified inarchive_dir
ignore
Leave the file as-is (default)
``archive_dir`` (conditionally required) The directory to move files
into when archive
is set for on_error
or on_success
. Has no
effect if neither of those is set to archive
, and is required if
either is set to archive
.
``host`` (required) The fully qualified domain name for connecting to ElasticSearch over HTTP.
``port`` (required) The port for connecting to ElasticSearch over HTTP.
``index`` (optional) The index name to send data to. This can be a
Python formatted string in the Formatter
style, with the following
available variables:
certname
the certname the report is fromfqdn
the fqdn of the node this script is running onisoday
the ISO day number for the reportisoweek
the ISO week number for the reportisoyear
the ISO year number for the reportday
the numerical day of the year for the reportmonth
the numerical month of the year for the reportyear
the year for the report
Defaults to 'puppet-{isoyear}.{isoweek}'
``level`` (optional) What message level to log. Valid options are
those defined by the Python 2.7 logging
module. Defaults to
WARNING
.
``stderr`` (optional) Boolean value about whether to print log
messages to stderr
. Defaults to false
.
``syslog`` (optional) Boolean value about whether to print log
messages to syslog. Defaults to true
.
``file`` (optional) Filename for a file to write log messages into. Defaults to an empty value, meaning do not log to a file.
An example ElasticSearch template that supports the format this script uses can be found at etc/puppet_template.json.