Files
playbooks-retailor/roles/elasticsearch/templates/pipeline-nginx.conf.j2
T

54 lines
1.4 KiB
Django/Jinja

# ansible_managed
input {
beats {
port => 5045
}
}
filter {
grok {
match => [ "message" , "%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}"]
overwrite => [ "message" ]
}
mutate {
rename => { "extra_fields" => "real_ip" }
gsub => [ "real_ip", "\"", "" ] # remove qoutes
gsub => [ "real_ip", " ", "" ] # remove whitespace
# fix
convert => ["http.response.status_code", "integer"]
convert => ["http.response.body.bytes", "integer"]
convert => ["responsetime", "float"]
remove_field => ["host.containerized"]
}
geoip {
source => "real_ip"
target => "geoip"
fields => ["city_name", "region_name", "country_name", "region_iso_code", "country_code2", "location"]
}
date {
match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]
remove_field => [ "timestamp" ]
}
}
output {
elasticsearch {
# Reach Elasticsearch over the shared docker network using its service name.
hosts => ["{{ 'https' if elk_tls_enabled else 'http' }}://{{ elk_elasticsearch_client_host }}:9200"]
{% if elk_effective_security_enabled %}
user => "logstash_system"
password => "{{ elk_logstash_system_password }}"
{% endif %}
{% if elk_tls_enabled %}
ssl_enabled => true
# Public CA (Let's Encrypt) - trusted by Logstash's default JVM trust
# store already, no custom CA needs to be supplied here.
{% endif %}
index => "weblogs-%{+YYYY.MM}"
}
}