[SERVICE] # Flush # ===== # set an interval of seconds before to flush records to a destination flush 5 # 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 Off 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 /tmp/storage # 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 # ========= # aero logs # ========= # Date |Time |PID |TID |Log Type|Component|Module |Source File |Source Line|Free Text # 2021-11-24|14:40:04.865|1889|2329|0008 |gsr50 |ncr.aero.deviceaccess.framework|FWFrameworkAPI.cpp|123 |AeroInitialise EXIT, Return Value [0], refCount [1] # 2021-11-24|14:40:06.981|1889|2329|0001 |gsr50 |ncr.aero.deviceaccess.framework|FWFrameworkAPI.cpp|132 |AeroFinalise ENTRY should be error here # 2021-11-24|14:40:06.981|1889|2329|0008 |gsr50 |ncr.aero.deviceaccess.framework|FWFrameworkAPI.cpp|152 |AeroFinalise EXIT, Return Value [0] # 2021-11-24|14:40:37.763|2804|2992|0002 |gsr50 |ncr.aero.deviceaccess.framework|FWFrameworkAPI.cpp|110 |AeroInitialise ENTRY should be warning here # 2021-11-24|14:40:37.763|2804|2992|0008 |gsr50 |ncr.aero.deviceaccess.framework|FWFrameworkAPI.cpp|123 |AeroInitialise EXIT, Return Value [0], refCount [1] # [INPUT] Name tail Tag aero.* Path /usr/local/ncr/aero/logs/*.log # gsr50.datalog.log appears to be a binary file Exclude_Path /usr/local/ncr/aero/logs/gsr50.datalog.log #Read_from_Head true [FILTER] Name modify Match aero.* Hard_rename log message [FILTER] Name parser Match aero.* Key_Name message Parser aero Parser json # Add ERROR as the 'severity' field for log level 0001 [FILTER] Name modify Match aero.* Condition Key_value_matches level 0001 Add severity ERROR # Add WARNING as the 'severity' field for log level 0002 [FILTER] Name modify Match aero.* Condition Key_value_matches level 0002 Add severity WARNING # Set all log messages that aren't 0001 or 0002 to be DEBUG for the 'severity' field [FILTER] Name modify Match aero.* Condition Key_value_does_not_match level 0001|0002 Add severity DEBUG # example on how to exclude certain messages #[FILTER] # Name grep # Match aero.* # Exclude level 0008 # example of how to only capture aero errors(0001) and warnings(0002) [FILTER] Name grep Match aero.* regex level 0001|0002 # example of how to add hostname as part of the jsonPayload for all INPUT sources [FILTER] Name record_modifier Match * Record hostname ${HOSTNAME} # ============= # platform logs # ============= [INPUT] Name tail Tag platform.* Path /usr/local/ncr/platform/logs/*.log Exclude_Path /usr/local/ncr/platform/logs/*Install*.log #Read_from_Head true # ======================== # sco deviceServerCTM logs # ======================== [INPUT] Name tail Tag ncr_scot_device.* Path /usr/local/ncr_scot/deviceServerCTM/Logs/SSCODeviceServer.log #Read_from_Head true multiline.parser sco-device-server-regex [FILTER] Name modify Match ncr_scot_device.* Hard_rename log message # ======================== # sco launchpad logs # ======================== [INPUT] Name tail Tag ncr_scot_launchpad.* Path /usr/local/ncr_scot/launchpad/Logs/launchpadnet.log #Read_from_Head true # ======================== # scoxendpoint logs # ======================== [INPUT] Name tail Tag ncr_scot_scoxendpoint.* Path /usr/local/ncr_scot/scoxendpoint/Logs/scoxEndpoint.log #Read_from_Head true # ======================== # scoxui logs # ======================== [INPUT] Name tail Tag ncr_scot_scoxeui.* Path /usr/local/ncr_scot/scoxui/Logs/*.log #Read_from_Head true # stdout can be used for troubleshooting when running fluent-bit manually, e.g. # /opt/td-agent-bit/bin/td-agent-bit -c /etc/td-agent-bit/td-agent-bit.conf # [OUTPUT] # name stdout # match * [OUTPUT] Name stackdriver Match * resource global severity_key severity # use 'net.dns.mode TCP' to fix timeout errors such as # [2021/12/02 09:57:28] [ warn] [net] getaddrinfo(host='logging.googleapis.com', err=12): Timeout while contacting DNS servers # ref: https://github.com/fluent/fluent-bit/issues/4050 net.dns.mode TCP # creds.json is the google service account key. For an NCR Edge k8s environment this # would be the contents of the gcp-creds secret in the monitoring namespace google_service_credentials /etc/td-agent-bit/creds.json