1 搭建过程
Logstash采用源码包方式启动,无需安装,解压配置就可以启动,logstash需要jdk1.8支持
1.1 配置目录
主配置文件:logstash-5.6.11home/config/jvm.options
Log4j配置文件:$logstash-5.6.11home/config/log4j2.properties
在config目录下创建一个conf目录,用来装我们自己定义的配置文件
以下为我的配置文件
1.2 配置文件解释
[root@kafka11 conf]# cat tomcat.conf
input {
kafka {
bootstrap_servers => "10.10.4.11:9092,10.10.4.12:9092,10.10.4.13:9092"
#指定kafka集群ip和端口
topics => "epg"
#指定消费的topic
group_id => "elk"
#指定消费者组,同一个topic要使用同一个组,不然会重复消费
}
filter {
#消息截取字段
json {
source => "message"
}
mutate {
gsub => ["message", "\n", ""]
#换行
}
if [project_tag] == "tomcat_access" {
#判断project_tag标签,不同的标签可以通过不同的截取分出不同的字段
grok {
match => { "message" => "%{IP:clent_ip} (?:-|%{USER:logic_user}) (?:-|%{USER:verification_user}) \[%{TIMESTAMP_ISO8601:timestamp}\] \[(?:%{WORD:http_verb} %{NOTSPACE:request_url}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\] %{NUMBER:status} \[(?:-|%{NOTSPACE:request_url_2})\] \[%{GREEDYDATA:agent}\] (?:-|%{NUMBER:curl_size}) (?:-|%{NUMBER:responsetime})"}
#截取内容
}
}
date {
match => ["timestamp", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "@timestamp"
#时间转换,时间戳为UTC时间,转换成UTC+8的北京时间。
}
}
output {
if [project_tag] == "catalina" {
elasticsearch {
hosts => ["10.10.4.11:9200","10.10.4.12:9200","10.10.4.13:9200"]
index => "catalina_log_%{+YYYY-MM-dd}"
}
stdout{codec => rubydebug}
}
[root@kafka11 conf]# cat nginx.conf
input {
kafka {
bootstrap_servers => "10.10.4.11:9092,10.10.4.12:9092,10.10.4.13:9092"
topics => "nginx_access"
group_id => "elk"
type => "nginx_access"
}
}
filter {
json {
source => "message"
}
json {
#source => "message"
# remove_field => "message"
}
mutate {
convert => ["upstreamresponse_time", "float"]
convert => ["requesttime","float"]
}
date {
match => ["timestamp", "ISO8601"]
target => "@timestamp"
timezone => "UTC"
}
}
output {
elasticsearch {
hosts => ["10.10.4.11:9200","10.10.4.12:9200","10.10.4.13:9200"]
index => "nginx_access_%{+YYYY-MM-dd}"
}
stdout{codec => "rubydebug"}
#解码语句
}
2 相关命令
1、启动命令
./bin/logstash -f /data/logstash-5.6.11/config/conf/tomcat.conf --path.data=./tomcat_pid/ &
注意:如果一台logstash需要启动多个进程。需要--path.data参数,不然会报错
这样启动可以显示相关日志,收取的日志也可以看到,能判断截取字段是否生效。
2、后台运行
nohup ./bin/logstash -f /data/logstash-5.6.11/config/conf/tomcat.conf --path.data=./tomcat_pid/ & > /dev/null 2>&1
网友评论