
Fixes for this patchset: - split out elk-openstack-client.yml to match what's done elsewhere Fixes for patchset #11: - split out filebeat into separate role for openstack clients - update README.md to use elk-openstack-client.yml for this purpose - cleanup filebeat.yml.j2 to use correct syntax (no need for " anymore) Fixes for patchset #10: - add SELinux boolean "httpd_can_network_connect" - add libsemanage-python package dependency for booleans Fixes for patchset #9: - fix for RHEL7 clients, we need to specify remote EPEL rpm - RHEL7 clients need rpm_key module to import EPEL GPG key - switch to using uri module instead of curl for checking elasticsearch indices - add python-httplib2 dependency (needed for uri module) - use curl -XPOST instead of PUT for filebeat index template in elasticsearch Fixes from patchset #7 - remove unneeded rpm usage, switch to yum module - add logic to heapsize tuning so systems > 64G of memory will never exceed the 32G recommended heapsize - logic fix for prepopulating local logs into logstash - remove elasticsearch.yml, rpm provides this and we're not customizing it yet Fixes from patchset #6: - use yum repo Ansible module where we can - remove unecessary EPEL installation (only nginx needs it) - disable EPEL repo after installation to avoid OpenStack breakage This adds: (ELK Server) - Automated ELK stack deployment - SSL client generation - Heap size tuning (1/2 of available memory) - Firewall port additions (depending on active or not) - Supports either firewalld or iptables-services - Additional upstream Filebeat Kibana dashboards (ELK Client) - Sets up filebeat with appropriate SSL certificates - utilizes both hostnames and SubjectAltName support (for environments without DNS services). (Usage) ansible-playbook -i hosts install/elk.yml ansible-playbook -i hosts install/elk-client.yml --extra-vars 'elk_server=X.X.X.X' Change-Id: Iee29f985e0bbcdf706ad869f132d4c0f1593a6b6
384 lines
15 KiB
Django/Jinja
384 lines
15 KiB
Django/Jinja
################### Filebeat Configuration Example #########################
|
|
|
|
############################# Filebeat ######################################
|
|
filebeat:
|
|
# List of prospectors to fetch data.
|
|
prospectors:
|
|
# Each - is a prospector. Below are the prospector specific configurations
|
|
-
|
|
# Paths that should be crawled and fetched. Glob based paths.
|
|
# To fetch all ".log" files from a specific level of subdirectories
|
|
# /var/log/*/*.log can be used.
|
|
# For each file found under this path, a harvester is started.
|
|
# Make sure not file is defined twice as this can lead to unexpected behaviour.
|
|
paths:
|
|
- /var/log/*.log
|
|
- /var/log/messages
|
|
# foreman
|
|
- /var/log/foreman/*.log
|
|
- /var/log/foreman-proxy/*.log
|
|
# openstack
|
|
- /var/log/nova/*.log
|
|
- /var/log/neutron/*.log
|
|
- /var/log/cinder/*.log
|
|
- /var/log/keystone/*.log
|
|
- /var/log/horizon/*.log
|
|
- /var/log/glance/*.log
|
|
- /var/log/mariadb/*.log
|
|
- /var/log/rabbitmq/*.log
|
|
- /var/log/mongodb/*.log
|
|
- /var/log/ceilometer/*.log
|
|
- /var/log/ceph/*.log
|
|
- /var/log/heat/*.log
|
|
- /var/log/openvswitch/*.log
|
|
- /var/log/pcsd/*.log
|
|
- /var/log/puppet/*.log
|
|
- /var/log/redis/*.log
|
|
- /var/log/glusterfs/*.log
|
|
- /var/log/swift/*.log
|
|
|
|
# Configure the file encoding for reading files with international characters
|
|
# following the W3C recommendation for HTML5 (http://www.w3.org/TR/encoding).
|
|
# Some sample encodings:
|
|
# plain, utf-8, utf-16be-bom, utf-16be, utf-16le, big5, gb18030, gbk,
|
|
# hz-gb-2312, euc-kr, euc-jp, iso-2022-jp, shift-jis, ...
|
|
#encoding: plain
|
|
|
|
# Type of the files. Based on this the way the file is read is decided.
|
|
# The different types cannot be mixed in one prospector
|
|
#
|
|
# Possible options are:
|
|
# * log: Reads every line of the log file (default)
|
|
# * stdin: Reads the standard in
|
|
input_type: log
|
|
|
|
# Optional additional fields. These field can be freely picked
|
|
# to add additional information to the crawled log files for filtering
|
|
#fields:
|
|
# level: debug
|
|
# review: 1
|
|
|
|
# Set to true to store the additional fields as top level fields instead
|
|
# of under the "fields" sub-dictionary. In case of name conflicts with the
|
|
# fields added by Filebeat itself, the custom fields overwrite the default
|
|
# fields.
|
|
#fields_under_root: false
|
|
|
|
# Ignore files which were modified more then the defined timespan in the past
|
|
# Time strings like 2h (2 hours), 5m (5 minutes) can be used.
|
|
#ignore_older: 24h
|
|
|
|
# Type to be published in the 'type' field. For Elasticsearch output,
|
|
# the type defines the document type these entries should be stored
|
|
# in. Default: log
|
|
document_type: syslog
|
|
|
|
# Scan frequency in seconds.
|
|
# How often these files should be checked for changes. In case it is set
|
|
# to 0s, it is done as often as possible. Default: 10s
|
|
#scan_frequency: 10s
|
|
|
|
# Defines the buffer size every harvester uses when fetching the file
|
|
#harvester_buffer_size: 16384
|
|
|
|
# Setting tail_files to true means filebeat starts readding new files at the end
|
|
# instead of the beginning. If this is used in combination with log rotation
|
|
# this can mean that the first entries of a new file are skipped.
|
|
#tail_files: false
|
|
|
|
# Backoff values define how agressively filebeat crawls new files for updates
|
|
# The default values can be used in most cases. Backoff defines how long it is waited
|
|
# to check a file again after EOF is reached. Default is 1s which means the file
|
|
# is checked every second if new lines were added. This leads to a near real time crawling.
|
|
# Every time a new line appears, backoff is reset to the initial value.
|
|
#backoff: 1s
|
|
|
|
# Max backoff defines what the maximum backoff time is. After having backed off multiple times
|
|
# from checking the files, the waiting time will never exceed max_backoff idenependent of the
|
|
# backoff factor. Having it set to 10s means in the worst case a new line can be added to a log
|
|
# file after having backed off multiple times, it takes a maximum of 10s to read the new line
|
|
#max_backoff: 10s
|
|
|
|
# The backoff factor defines how fast the algorithm backs off. The bigger the backoff factor,
|
|
# the faster the max_backoff value is reached. If this value is set to 1, no backoff will happen.
|
|
# The backoff value will be multiplied each time with the backoff_factor until max_backoff is reached
|
|
#backoff_factor: 2
|
|
|
|
# This option closes a file, as soon as the file name changes.
|
|
# This config option is recommended on windows only. Filebeat keeps the files it's reading open. This can cause
|
|
# issues when the file is removed, as the file will not be fully removed until also Filebeat closes
|
|
# the reading. Filebeat closes the file handler after ignore_older. During this time no new file with the
|
|
# same name can be created. Turning this feature on the other hand can lead to loss of data
|
|
# on rotate files. It can happen that after file rotation the beginning of the new
|
|
# file is skipped, as the reading starts at the end. We recommend to leave this option on false
|
|
# but lower the ignore_older value to release files faster.
|
|
#force_close_files: false
|
|
|
|
#-
|
|
# paths:
|
|
# - /var/log/apache/*.log
|
|
# type: log
|
|
#
|
|
# # Ignore files which are older then 24 hours
|
|
# ignore_older: 24h
|
|
#
|
|
# # Additional fields which can be freely defined
|
|
# fields:
|
|
# type: apache
|
|
# server: localhost
|
|
#-
|
|
# type: stdin
|
|
# paths:
|
|
# - "-"
|
|
|
|
# General filebeat configuration options
|
|
#
|
|
# Event count spool threshold - forces network flush if exceeded
|
|
#spool_size: 1024
|
|
|
|
# Defines how often the spooler is flushed. After idle_timeout the spooler is
|
|
# Flush even though spool_size is not reached.
|
|
#idle_timeout: 5s
|
|
|
|
# Name of the registry file. Per default it is put in the current working
|
|
# directory. In case the working directory is changed after when running
|
|
# filebeat again, indexing starts from the beginning again.
|
|
#registry_file: .filebeat
|
|
|
|
# Full Path to directory with additional prospector configuration files. Each file must end with .yml
|
|
# These config files must have the full filebeat config part inside, but only
|
|
# the prospector part is processed. All global options like spool_size are ignored.
|
|
# The config_dir MUST point to a different directory then where the main filebeat config file is in.
|
|
#config_dir:
|
|
|
|
|
|
###############################################################################
|
|
############################# Libbeat Config ##################################
|
|
# Base config file used by all other beats for using libbeat features
|
|
|
|
############################# Output ##########################################
|
|
|
|
# Configure what outputs to use when sending the data collected by the beat.
|
|
# Multiple outputs may be used.
|
|
output:
|
|
|
|
### Elasticsearch as output
|
|
#elasticsearch:
|
|
logstash:
|
|
# Array of hosts to connect to.
|
|
# Scheme and port can be left out and will be set to the default (http and 9200)
|
|
# In case you specify and additional path, the scheme is required: http://localhost:9200/path
|
|
# IPv6 addresses should always be defined as: https://[2001:db8::1]:9200
|
|
hosts: ["{{ elk_server }}:5044"]
|
|
bulk_max_size: 1024
|
|
# Optional protocol and basic auth credentials. These are deprecated.
|
|
#protocol: "https"
|
|
#username: "admin"
|
|
#password: "s3cr3t"
|
|
|
|
# Number of workers per Elasticsearch host.
|
|
#worker: 1
|
|
|
|
# Optional index name. The default is "filebeat" and generates
|
|
# [filebeat-]YYYY.MM.DD keys.
|
|
#index: "filebeat"
|
|
|
|
# Optional HTTP Path
|
|
#path: "/elasticsearch"
|
|
|
|
# Proxy server URL
|
|
# proxy_url: http://proxy:3128
|
|
|
|
# The number of times a particular Elasticsearch index operation is attempted. If
|
|
# the indexing operation doesn't succeed after this many retries, the events are
|
|
# dropped. The default is 3.
|
|
#max_retries: 3
|
|
|
|
# The maximum number of events to bulk in a single Elasticsearch bulk API index request.
|
|
# The default is 50.
|
|
#bulk_max_size: 50
|
|
|
|
# Configure http request timeout before failing an request to Elasticsearch.
|
|
#timeout: 90
|
|
|
|
# The number of seconds to wait for new events between two bulk API index requests.
|
|
# If `bulk_max_size` is reached before this interval expires, addition bulk index
|
|
# requests are made.
|
|
#flush_interval: 1
|
|
|
|
# Boolean that sets if the topology is kept in Elasticsearch. The default is
|
|
# false. This option makes sense only for Packetbeat.
|
|
#save_topology: false
|
|
|
|
# The time to live in seconds for the topology information that is stored in
|
|
# Elasticsearch. The default is 15 seconds.
|
|
#topology_expire: 15
|
|
|
|
# tls configuration. By default is off.
|
|
tls:
|
|
# List of root certificates for HTTPS server verifications
|
|
certificate_authorities: ["/etc/pki/tls/certs/filebeat-forwarder.crt"]
|
|
|
|
# Certificate for TLS client authentication
|
|
#certificate: "/etc/pki/client/cert.pem"
|
|
|
|
# Client Certificate Key
|
|
#certificate_key: "/etc/pki/client/cert.key"
|
|
|
|
# Controls whether the client verifies server certificates and host name.
|
|
# If insecure is set to true, all server host names and certificates will be
|
|
# accepted. In this mode TLS based connections are susceptible to
|
|
# man-in-the-middle attacks. Use only for testing.
|
|
#insecure: true
|
|
|
|
# Configure cipher suites to be used for TLS connections
|
|
#cipher_suites: []
|
|
|
|
# Configure curve types for ECDHE based cipher suites
|
|
#curve_types: []
|
|
|
|
# Configure minimum TLS version allowed for connection to logstash
|
|
#min_version: 1.0
|
|
|
|
# Configure maximum TLS version allowed for connection to logstash
|
|
#max_version: 1.2
|
|
|
|
|
|
### Logstash as output
|
|
#logstash:
|
|
# The Logstash hosts
|
|
#hosts: ["localhost:5044"]
|
|
|
|
# Number of workers per Logstash host.
|
|
#worker: 1
|
|
|
|
# Optional load balance the events between the Logstash hosts
|
|
#loadbalance: true
|
|
|
|
# Optional index name. The default index name depends on the each beat.
|
|
# For Packetbeat, the default is set to packetbeat, for Topbeat
|
|
# top topbeat and for Filebeat to filebeat.
|
|
#index: filebeat
|
|
|
|
# Optional TLS. By default is off.
|
|
#tls:
|
|
# List of root certificates for HTTPS server verifications
|
|
#certificate_authorities: ["/etc/pki/root/ca.pem"]
|
|
|
|
# Certificate for TLS client authentication
|
|
#certificate: "/etc/pki/client/cert.pem"
|
|
|
|
# Client Certificate Key
|
|
#certificate_key: "/etc/pki/client/cert.key"
|
|
|
|
# Controls whether the client verifies server certificates and host name.
|
|
# If insecure is set to true, all server host names and certificates will be
|
|
# accepted. In this mode TLS based connections are susceptible to
|
|
# man-in-the-middle attacks. Use only for testing.
|
|
#insecure: true
|
|
|
|
# Configure cipher suites to be used for TLS connections
|
|
#cipher_suites: []
|
|
|
|
# Configure curve types for ECDHE based cipher suites
|
|
#curve_types: []
|
|
|
|
|
|
### File as output
|
|
#file:
|
|
# Path to the directory where to save the generated files. The option is mandatory.
|
|
#path: "/tmp/filebeat"
|
|
|
|
# Name of the generated files. The default is `filebeat` and it generates files: `filebeat`, `filebeat.1`, `filebeat.2`, etc.
|
|
#filename: filebeat
|
|
|
|
# Maximum size in kilobytes of each file. When this size is reached, the files are
|
|
# rotated. The default value is 10 MB.
|
|
#rotate_every_kb: 10000
|
|
|
|
# Maximum number of files under path. When this number of files is reached, the
|
|
# oldest file is deleted and the rest are shifted from last to first. The default
|
|
# is 7 files.
|
|
#number_of_files: 7
|
|
|
|
|
|
### Console output
|
|
# console:
|
|
# Pretty print json event
|
|
#pretty: false
|
|
|
|
|
|
############################# Shipper #########################################
|
|
|
|
shipper:
|
|
# The name of the shipper that publishes the network data. It can be used to group
|
|
# all the transactions sent by a single shipper in the web interface.
|
|
# If this options is not defined, the hostname is used.
|
|
#name:
|
|
|
|
# The tags of the shipper are included in their own field with each
|
|
# transaction published. Tags make it easy to group servers by different
|
|
# logical properties.
|
|
#tags: ["service-X", "web-tier"]
|
|
|
|
# Uncomment the following if you want to ignore transactions created
|
|
# by the server on which the shipper is installed. This option is useful
|
|
# to remove duplicates if shippers are installed on multiple servers.
|
|
#ignore_outgoing: true
|
|
|
|
# How often (in seconds) shippers are publishing their IPs to the topology map.
|
|
# The default is 10 seconds.
|
|
#refresh_topology_freq: 10
|
|
|
|
# Expiration time (in seconds) of the IPs published by a shipper to the topology map.
|
|
# All the IPs will be deleted afterwards. Note, that the value must be higher than
|
|
# refresh_topology_freq. The default is 15 seconds.
|
|
#topology_expire: 15
|
|
|
|
# Configure local GeoIP database support.
|
|
# If no paths are not configured geoip is disabled.
|
|
#geoip:
|
|
#paths:
|
|
# - "/usr/share/GeoIP/GeoLiteCity.dat"
|
|
# - "/usr/local/var/GeoIP/GeoLiteCity.dat"
|
|
|
|
|
|
############################# Logging #########################################
|
|
|
|
# There are three options for the log ouput: syslog, file, stderr.
|
|
# Under Windos systems, the log files are per default sent to the file output,
|
|
# under all other system per default to syslog.
|
|
logging:
|
|
|
|
# Send all logging output to syslog. On Windows default is false, otherwise
|
|
# default is true.
|
|
#to_syslog: true
|
|
|
|
# Write all logging output to files. Beats automatically rotate files if rotateeverybytes
|
|
# limit is reached.
|
|
#to_files: false
|
|
|
|
# To enable logging to files, to_files option has to be set to true
|
|
files:
|
|
# The directory where the log files will written to.
|
|
#path: /var/log/mybeat
|
|
|
|
# The name of the files where the logs are written to.
|
|
#name: mybeat
|
|
|
|
# Configure log file size limit. If limit is reached, log file will be
|
|
# automatically rotated
|
|
rotateeverybytes: 10485760 # = 10MB
|
|
|
|
# Number of rotated log files to keep. Oldest files will be deleted first.
|
|
#keepfiles: 7
|
|
|
|
# Enable debug output for selected components. To enable all selectors use ["*"]
|
|
# Other available selectors are beat, publish, service
|
|
# Multiple selectors can be chained.
|
|
#selectors: [ ]
|
|
|
|
# Sets log level. The default log level is error.
|
|
# Available log levels are: critical, error, warning, info, debug
|
|
#level: error
|