@type tail
@id xray_server_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-server-service.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-server-service.log.pos"
tag jfrog.xray.server.service
@type none
@type tail
@id xray_persist_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-persist-service.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-persist-service.log.pos"
tag jfrog.xray.persist.service
@type none
@type tail
@id xray_indexer_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-indexer-service.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-indexer-service.log.pos"
tag jfrog.xray.indexer.service
@type none
@type tail
@id xray_analysis_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-analysis-service.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-analysis-service.log.pos"
tag jfrog.xray.analysis.service
@type none
@type tail
@id xray_router_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/router-service.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/router-service.log.pos"
tag jfrog.xray.router.service
@type none
@type tail
@id xray_router_traefik_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/router-traefik.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/router-traefik.log.pos"
tag jfrog.xray.router.traefik
@type regexp
expression ^(?[^ ]*) \[(?[^\]]*)\] \[(?[^\]]*)\] \[(?[^\]]*)\] \[(?.*)\] \[(?.*)\] -(?.+)$
@type tail
@id xray_router_request_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/router-request.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/router-request.log.pos"
tag jfrog.xray.router.request
@type json
@type tail
@id xray_request_tail
path "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-request.log"
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/xray-request.log.pos"
tag jfrog.xray.xray.request
@type regexp
expression ^(?[^|]*)\|(?[^|]*)\|(?[^|]++)\|(?[^\|]*)\|(?[^\|]*)\|(?[^\|]*)\|(?[^\|]*)\|(?[^\|]*)\|(?[^\|]*)\|(?[^\|]*)\|(?.*)$
# STRIP COLOR CODES FROM SERVICE LOGS
@type record_transformer
enable_ruby true
message ${record["message"].gsub(/\e\[([;\d]+)?m/, '')}
# FIELD EXTRACT SERVICE LOG
@type parser
key_name message
@type multiline
format_firstline /\d{4}-\d{1,2}-\d{1,2}/
format1 /^(?[^ ]*) \[(?[^\]]*)\] \[(?[^\]]*)\] \[(?[^\]]*)\] \[(?.*)\] \[(?.*)\] (?.*)$/
@type record_transformer
hostname "#{Socket.gethostname}"
log_source ${tag}
###JFROG METRICS Plugin
@type jfrog_metrics
@id metrics_http_jfrt
tag jfrog.metrics.xray
interval 5s
metric_prefix 'jfrog.xray'
jpd_url "#{ENV['JF_JPD_URL']}"
username "#{ENV['JF_JPD_USER_NAME']}"
apikey "#{ENV['JF_JPD_API_KEY']}"
token "#{ENV['JF_JPD_TOKEN']}"
target_platform "ELASTIC"
########################
# ELASTIC OUTPUT METRICS
########################
@type elasticsearch
@id elasticsearch_metrics
host "#{ENV['ELASTIC_HOST']}"
port "#{ENV['ELASTIC_PORT']}"
user "#{ENV['ELASTIC_USER']}"
password "#{ENV['ELASTIC_PASSWORD']}"
scheme "#{ENV['ELASTIC_SCHEME']}"
ssl_verify "#{ENV['ELASTIC_SSL_VERIFY']}"
index_name unified-metrics-xray
include_tag_key true
type_name fluentd
logstash_format false
include_timestamp true
#END ELASTIC OUTPUT
########################
# ELASTIC OUTPUT LOGS
########################
@type elasticsearch
@id elasticsearch
host "#{ENV['ELASTIC_HOST']}"
port "#{ENV['ELASTIC_PORT']}"
user "#{ENV['ELASTIC_USER']}"
password "#{ENV['ELASTIC_PASSWORD']}"
scheme "#{ENV['ELASTIC_SCHEME']}"
ssl_verify "#{ENV['ELASTIC_SSL_VERIFY']}"
index_name unified-xray
include_tag_key true
type_name fluentd
logstash_format false
#END ELASTIC OUTPUT