mirror of https://github.com/vimagick/dockerfiles
add fluent-bit
This commit is contained in:
parent
f6785ff64e
commit
b348f436e6
|
@ -347,6 +347,7 @@ A collection of delicious docker recipes.
|
|||
- [x] audreyt/ethercalc
|
||||
- [x] flogo/flogo-docker
|
||||
- [x] mher/flower
|
||||
- [x] fluent/fluent-bit
|
||||
- [x] friendica
|
||||
- [x] ghost
|
||||
- [x] gitlab/gitlab-ce
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
fluent-bit
|
||||
==========
|
||||
|
||||
[Fluent Bit][1] is a fast Log Processor and Forwarder for Linux, Windows, Embedded
|
||||
Linux, MacOS and BSD family operating systems. It's part of the Graduated
|
||||
Fluentd Ecosystem and a CNCF sub-project.
|
||||
|
||||
|
||||
```bash
|
||||
$ mkdir -p data/{etc,var}
|
||||
$ wget -P data/etc https://github.com/fluent/fluent-bit/raw/master/conf/fluent-bit.conf \
|
||||
https://github.com/fluent/fluent-bit/raw/master/conf/parsers.conf \
|
||||
https://github.com/fluent/fluent-bit/raw/master/conf/plugins.conf
|
||||
$ docker-compose up -d
|
||||
$ docker-compose logs --tail 10 -f
|
||||
```
|
||||
|
||||
[1]: https://github.com/fluent/fluent-bit
|
|
@ -0,0 +1,93 @@
|
|||
[SERVICE]
|
||||
# Flush
|
||||
# =====
|
||||
# set an interval of seconds before to flush records to a destination
|
||||
flush 1
|
||||
|
||||
# Daemon
|
||||
# ======
|
||||
# instruct Fluent Bit to run in foreground or background mode.
|
||||
daemon Off
|
||||
|
||||
# Log_Level
|
||||
# =========
|
||||
# Set the verbosity level of the service, values can be:
|
||||
#
|
||||
# - error
|
||||
# - warning
|
||||
# - info
|
||||
# - debug
|
||||
# - trace
|
||||
#
|
||||
# by default 'info' is set, that means it includes 'error' and 'warning'.
|
||||
log_level info
|
||||
|
||||
# Parsers File
|
||||
# ============
|
||||
# specify an optional 'Parsers' configuration file
|
||||
parsers_file parsers.conf
|
||||
|
||||
# Plugins File
|
||||
# ============
|
||||
# specify an optional 'Plugins' configuration file to load external plugins.
|
||||
plugins_file plugins.conf
|
||||
|
||||
# HTTP Server
|
||||
# ===========
|
||||
# Enable/Disable the built-in HTTP Server for metrics
|
||||
http_server On
|
||||
http_listen 0.0.0.0
|
||||
http_port 2020
|
||||
|
||||
# Storage
|
||||
# =======
|
||||
# Fluent Bit can use memory and filesystem buffering based mechanisms
|
||||
#
|
||||
# - https://docs.fluentbit.io/manual/administration/buffering-and-storage
|
||||
#
|
||||
# storage metrics
|
||||
# ---------------
|
||||
# publish storage pipeline metrics in '/api/v1/storage'. The metrics are
|
||||
# exported only if the 'http_server' option is enabled.
|
||||
#
|
||||
storage.metrics on
|
||||
|
||||
# storage.path
|
||||
# ------------
|
||||
# absolute file system path to store filesystem data buffers (chunks).
|
||||
#
|
||||
storage.path /fluent-bit/var
|
||||
|
||||
# storage.sync
|
||||
# ------------
|
||||
# configure the synchronization mode used to store the data into the
|
||||
# filesystem. It can take the values normal or full.
|
||||
#
|
||||
# storage.sync normal
|
||||
|
||||
# storage.checksum
|
||||
# ----------------
|
||||
# enable the data integrity check when writing and reading data from the
|
||||
# filesystem. The storage layer uses the CRC32 algorithm.
|
||||
#
|
||||
# storage.checksum off
|
||||
|
||||
# storage.backlog.mem_limit
|
||||
# -------------------------
|
||||
# if storage.path is set, Fluent Bit will look for data chunks that were
|
||||
# not delivered and are still in the storage layer, these are called
|
||||
# backlog data. This option configure a hint of maximum value of memory
|
||||
# to use when processing these records.
|
||||
#
|
||||
# storage.backlog.mem_limit 5M
|
||||
|
||||
[INPUT]
|
||||
name cpu
|
||||
tag cpu.local
|
||||
|
||||
# Read interval (sec) Default: 1
|
||||
interval_sec 1
|
||||
|
||||
[OUTPUT]
|
||||
name stdout
|
||||
match *
|
|
@ -0,0 +1,126 @@
|
|||
[PARSER]
|
||||
Name apache
|
||||
Format regex
|
||||
Regex ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
|
||||
Time_Key time
|
||||
Time_Format %d/%b/%Y:%H:%M:%S %z
|
||||
|
||||
[PARSER]
|
||||
Name apache2
|
||||
Format regex
|
||||
Regex ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>.*)")?$
|
||||
Time_Key time
|
||||
Time_Format %d/%b/%Y:%H:%M:%S %z
|
||||
|
||||
[PARSER]
|
||||
Name apache_error
|
||||
Format regex
|
||||
Regex ^\[[^ ]* (?<time>[^\]]*)\] \[(?<level>[^\]]*)\](?: \[pid (?<pid>[^\]]*)\])?( \[client (?<client>[^\]]*)\])? (?<message>.*)$
|
||||
|
||||
[PARSER]
|
||||
Name nginx
|
||||
Format regex
|
||||
Regex ^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")
|
||||
Time_Key time
|
||||
Time_Format %d/%b/%Y:%H:%M:%S %z
|
||||
|
||||
[PARSER]
|
||||
# https://rubular.com/r/IhIbCAIs7ImOkc
|
||||
Name k8s-nginx-ingress
|
||||
Format regex
|
||||
Regex ^(?<host>[^ ]*) - (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*) "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<request_length>[^ ]*) (?<request_time>[^ ]*) \[(?<proxy_upstream_name>[^ ]*)\] (\[(?<proxy_alternative_upstream_name>[^ ]*)\] )?(?<upstream_addr>[^ ]*) (?<upstream_response_length>[^ ]*) (?<upstream_response_time>[^ ]*) (?<upstream_status>[^ ]*) (?<reg_id>[^ ]*).*$
|
||||
Time_Key time
|
||||
Time_Format %d/%b/%Y:%H:%M:%S %z
|
||||
|
||||
[PARSER]
|
||||
Name json
|
||||
Format json
|
||||
Time_Key time
|
||||
Time_Format %d/%b/%Y:%H:%M:%S %z
|
||||
|
||||
[PARSER]
|
||||
Name docker
|
||||
Format json
|
||||
Time_Key time
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L
|
||||
Time_Keep On
|
||||
# --
|
||||
# Since Fluent Bit v1.2, if you are parsing Docker logs and using
|
||||
# the Kubernetes filter, it's not longer required to decode the
|
||||
# 'log' key.
|
||||
#
|
||||
# Command | Decoder | Field | Optional Action
|
||||
# =============|==================|=================
|
||||
#Decode_Field_As json log
|
||||
|
||||
[PARSER]
|
||||
Name docker-daemon
|
||||
Format regex
|
||||
Regex time="(?<time>[^ ]*)" level=(?<level>[^ ]*) msg="(?<msg>[^ ].*)"
|
||||
Time_Key time
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L
|
||||
Time_Keep On
|
||||
|
||||
[PARSER]
|
||||
Name syslog-rfc5424
|
||||
Format regex
|
||||
Regex ^\<(?<pri>[0-9]{1,5})\>1 (?<time>[^ ]+) (?<host>[^ ]+) (?<ident>[^ ]+) (?<pid>[-0-9]+) (?<msgid>[^ ]+) (?<extradata>(\[(.*?)\]|-)) (?<message>.+)$
|
||||
Time_Key time
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
|
||||
Time_Keep On
|
||||
|
||||
[PARSER]
|
||||
Name syslog-rfc3164-local
|
||||
Format regex
|
||||
Regex ^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$
|
||||
Time_Key time
|
||||
Time_Format %b %d %H:%M:%S
|
||||
Time_Keep On
|
||||
|
||||
[PARSER]
|
||||
Name syslog-rfc3164
|
||||
Format regex
|
||||
Regex /^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$/
|
||||
Time_Key time
|
||||
Time_Format %b %d %H:%M:%S
|
||||
Time_Keep On
|
||||
|
||||
[PARSER]
|
||||
Name mongodb
|
||||
Format regex
|
||||
Regex ^(?<time>[^ ]*)\s+(?<severity>\w)\s+(?<component>[^ ]+)\s+\[(?<context>[^\]]+)]\s+(?<message>.*?) *(?<ms>(\d+))?(:?ms)?$
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L
|
||||
Time_Keep On
|
||||
Time_Key time
|
||||
|
||||
[PARSER]
|
||||
# https://rubular.com/r/0VZmcYcLWMGAp1
|
||||
Name envoy
|
||||
Format regex
|
||||
Regex ^\[(?<start_time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)? (?<protocol>\S+)" (?<code>[^ ]*) (?<response_flags>[^ ]*) (?<bytes_received>[^ ]*) (?<bytes_sent>[^ ]*) (?<duration>[^ ]*) (?<x_envoy_upstream_service_time>[^ ]*) "(?<x_forwarded_for>[^ ]*)" "(?<user_agent>[^\"]*)" "(?<request_id>[^\"]*)" "(?<authority>[^ ]*)" "(?<upstream_host>[^ ]*)"
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
|
||||
Time_Keep On
|
||||
Time_Key start_time
|
||||
|
||||
[PARSER]
|
||||
# https://rubular.com/r/17KGEdDClwiuDG
|
||||
Name istio-envoy-proxy
|
||||
Format regex
|
||||
Regex ^\[(?<start_time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)? (?<protocol>\S+)" (?<response_code>[^ ]*) (?<response_flags>[^ ]*) (?<response_code_details>[^ ]*) (?<connection_termination_details>[^ ]*) (?<upstream_transport_failure_reason>[^ ]*) (?<bytes_received>[^ ]*) (?<bytes_sent>[^ ]*) (?<duration>[^ ]*) (?<x_envoy_upstream_service_time>[^ ]*) "(?<x_forwarded_for>[^ ]*)" "(?<user_agent>[^\"]*)" "(?<x_request_id>[^\"]*)" (?<authority>[^ ]*)" "(?<upstream_host>[^ ]*)" (?<upstream_cluster>[^ ]*) (?<upstream_local_address>[^ ]*) (?<downstream_local_address>[^ ]*) (?<downstream_remote_address>[^ ]*) (?<requested_server_name>[^ ]*) (?<route_name>[^ ]*)
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
|
||||
Time_Keep On
|
||||
Time_Key start_time
|
||||
|
||||
[PARSER]
|
||||
# http://rubular.com/r/tjUt3Awgg4
|
||||
Name cri
|
||||
Format regex
|
||||
Regex ^(?<time>[^ ]+) (?<stream>stdout|stderr) (?<logtag>[^ ]*) (?<message>.*)$
|
||||
Time_Key time
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
|
||||
Time_Keep On
|
||||
|
||||
[PARSER]
|
||||
Name kube-custom
|
||||
Format regex
|
||||
Regex (?<tag>[^.]+)?\.?(?<pod_name>[a-z0-9](?:[-a-z0-9]*[a-z0-9])?(?:\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)_(?<namespace_name>[^_]+)_(?<container_name>.+)-(?<docker_id>[a-z0-9]{64})\.log$
|
|
@ -0,0 +1,2 @@
|
|||
[PLUGINS]
|
||||
# Path /path/to/out_gstdout.so
|
|
@ -0,0 +1,10 @@
|
|||
version: "3.8"
|
||||
services:
|
||||
fluent-bit:
|
||||
image: fluent/fluent-bit:2.1
|
||||
ports:
|
||||
- "2020:2020"
|
||||
volumes:
|
||||
- ./data/etc:/fluent-bit/etc
|
||||
- ./data/var:/fluent-bit/var
|
||||
restart: unless-stopped
|
Loading…
Reference in New Issue