docker-compose.yml 配置文件编写详解请看:https://blog.youkuaiyun.com/qq_36148847/article/details/79427878
将应用日志打到logstash中
version: "3"
services:
#project_name_log#:
image: #images#
# replicas: 2
# resources:
# limits:
# cpus: '1.50'
# memory: 1.5G
# reservations:
# cpus: '0.25'
# memory: 20M
container_name: #project_name#
restart: always
environment:
- DUBBO_IP_TO_REGISTRY=#deploy_host#
volumes:
- /usr/local/#project_name_log#/logs:/data/WEBLOG/
ports:
- #toport#:#port#
logging: //logstash收集日志
driver: gelf
options:
gelf-address: udp://192.168.6.38:12209
[root@test conf.d]# cat htjf_pof_apps_chtfundtest_12210.conf
input {
gelf {
type => htjf_pof_apps_chtfundtest
port => 12210
# codec => json {charset => ["UTF-8"]}
codec=> multiline {
pattern => "^%{YEAR}.*"
negate => true
what => "previous"
}
}
}
filter {
if [type] == "htjf_pof_apps_chtfundtest" {
grok {
patterns_dir => [ "/etc/logstash/patterns.d" ]
# match => { "message" => "%{TOMCATLOG1}" }
#match => { "message" => "%{TOMCATLOG2}" }
match => [ "message", "%{TIMESTAMP_ISO8601:timestamp}\s+\[(?<thread_name>.+?)\]\s+%{LOGLEVEL:level}\s+(?<thread_class>(?:[A-Za-z0-9_. -]+\(.*\)))\s+\-\s+(?<message>(.*))","message", "%{TIMESTAMP_ISO8601:timestamp}\s+%{THREADID:threadId}\s+%{LOGGERTYPE:authuser}\s+\[%{THREADNAME:threadname}\]\s+%{LOGLEVEL:level}\s+%{THREADCLASS:threadclass}\s+\-\s+%{JAVAMESSAGE:javameassage}"]
remove_field => ["message"]
remove_field => ["timestamp"]
remove_field => ["session"]
remove_field => ["port"]
remove_field => ["host"]
}
}
date {
match => [
"log_time","MMM dd HH:mm:ss"
]
target => ["log_time110"]
locale => "en"
timezone => "Asia/Shanghai"
}
}
output {
elasticsearch {
hosts => ["192.168.6.xxx:9200","192.168.6.xxx:9200","192.168.6.xxx:9200"]
#manage_template => true
index => "logstash-log4j-htjf_pof_apps_chtfundtest_%{+YYYY-MM}"
# codec => json
user => xxx
password => xxxx
}
stdout { codec => rubydebug }