mirror of
https://github.com/Febbweiss/docker-log-centralizer.git
synced 2026-03-04 14:25:35 +00:00
Feature: add rsyslog multiline logs
This commit is contained in:
@@ -8,6 +8,10 @@ services:
|
||||
image: febbweiss/apache-log-generator
|
||||
volumes:
|
||||
- ./logs/apache:/var/log/apache
|
||||
java_log_generator:
|
||||
image: febbweiss/java-log-generator
|
||||
volumes:
|
||||
- ./logs/java:/var/log/java
|
||||
random_log_generator: # Star Wars quote generator
|
||||
image: davidmccormick/random_log_generator
|
||||
command: python log_generator.py --logFile /var/log/random/random.log
|
||||
@@ -33,6 +37,14 @@ services:
|
||||
- ./logs/apache:/var/log/apache
|
||||
links:
|
||||
- shipper
|
||||
rsyslog:
|
||||
image: camptocamp/rsyslog-bin
|
||||
volumes:
|
||||
- ./rsyslog/conf.d:/etc/rsyslog-confd
|
||||
- ./rsyslog/rsyslog.conf:/etc/rsyslog.conf
|
||||
- ./logs/java:/var/log/java
|
||||
links:
|
||||
- shipper
|
||||
####################
|
||||
# Logstash shipper #
|
||||
####################
|
||||
|
||||
@@ -23,6 +23,12 @@ input {
|
||||
topics => ["apache-forwarder"]
|
||||
client_id => "logstash_indexer_1"
|
||||
}
|
||||
kafka {
|
||||
codec => json{}
|
||||
bootstrap_servers => "kafka:9092"
|
||||
topics => ["javalog"]
|
||||
client_id => "logstash_indexer_1"
|
||||
}
|
||||
}
|
||||
|
||||
filter {
|
||||
@@ -130,6 +136,12 @@ output {
|
||||
index => "apache-%{+YYYYMM}"
|
||||
}
|
||||
}
|
||||
if [type] == "javalog" {
|
||||
elasticsearch {
|
||||
hosts => ["elasticsearch:9200"]
|
||||
index => "javalog-%{+YYYYMM}"
|
||||
}
|
||||
}
|
||||
if [type] == "random-forwarder" {
|
||||
elasticsearch {
|
||||
hosts => ["elasticsearch:9200"]
|
||||
|
||||
@@ -2,12 +2,33 @@ input {
|
||||
beats {
|
||||
port => 5044
|
||||
}
|
||||
udp {
|
||||
port => 10514
|
||||
type => "syslog"
|
||||
}
|
||||
lumberjack {
|
||||
port => 5043
|
||||
ssl_key => "/ssl/selfsigned.key"
|
||||
ssl_certificate => "/ssl/selfsigned.crt"
|
||||
}
|
||||
}
|
||||
|
||||
filter {
|
||||
if [type] == "syslog" {
|
||||
mutate {
|
||||
gsub => [ "message", "\t", "\\t" ]
|
||||
}
|
||||
if ![programname] {
|
||||
json {
|
||||
source => "message"
|
||||
}
|
||||
}
|
||||
mutate {
|
||||
replace => [ "type", "%{programname}" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
kafka {
|
||||
codec => json
|
||||
|
||||
11
rsyslog/conf.d/rsyslog-json.conf
Normal file
11
rsyslog/conf.d/rsyslog-json.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
template(name="ls_json"
|
||||
type="list"
|
||||
option.json="on") {
|
||||
constant(value="{")
|
||||
constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc3339")
|
||||
constant(value="\",\"message\":\"") property(name="msg")
|
||||
constant(value="\",\"host\":\"") property(name="hostname")
|
||||
constant(value="\",\"programname\":\"") property(name="programname")
|
||||
constant(value="\",\"procid\":\"") property(name="procid")
|
||||
constant(value="\"}")
|
||||
}
|
||||
9
rsyslog/conf.d/rsyslog.conf
Normal file
9
rsyslog/conf.d/rsyslog.conf
Normal file
@@ -0,0 +1,9 @@
|
||||
module(load="imfile" PollingInterval="10" mode="inotify") #needs to be done just once
|
||||
|
||||
input(type="imfile"
|
||||
File="/var/log/java/*.log"
|
||||
Tag="javalog"
|
||||
PersistStateInterval="100"
|
||||
Severity="info"
|
||||
startmsg.regex="^[[:digit:]]{1,2}-[[:digit:]]{1,2}-[[:digit:]]{1,4} [[:digit:]]{1,2}:[[:digit:]]{1,2}:[[:digit:]]{1,2}"
|
||||
)
|
||||
3
rsyslog/rsyslog.conf
Normal file
3
rsyslog/rsyslog.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
$IncludeConfig /etc/rsyslog-confd/*.conf
|
||||
|
||||
*.* @shipper:10514;ls_json
|
||||
Reference in New Issue
Block a user