Logstash分析APP日志

Logstash分析APP日志

#准备日志,此处我只是收集了一台服务器中的app日志,可以收集多台
#此处的jar文件在我的资源中免费下载
[root@web01 ~]# ls
 app-dashboard-1.0-SNAPSHOT.jar
[root@web01 ~]# java -jar app-dashboard-1.0-SNAPSHOT.jar &>/var/log/app.log
[root@web01 ~]# tail -f /var/log/app.log 
[INFO] 2021-07-04 22:20:06 [cn.oldxu.dashboard.Main] - DAU|1576|搜索|2021-07-04 08:18:01
[INFO] 2021-07-04 22:20:08 [cn.oldxu.dashboard.Main] - DAU|4206|加入购物车|2021-07-04 09:05:08
[INFO] 2021-07-04 22:20:09 [cn.oldxu.dashboard.Main] - DAU|8291|查看订单|2021-07-04 17:11:07
[INFO] 2021-07-04 22:20:11 [cn.oldxu.dashboard.Main] - DAU|7144|使用优惠券|2021-07-04 21:07:06

#先将日志输出到控制台,下一步看怎么转换
[root@logstash-node1 conf.d]# cat input_filebeat_app_output_es.conf 
input {
       http {
                port => 7474
   }
}

output {
       stdout {
                codec =>rubydebug
    }
}

#启动logstash
[root@logstash-node1 conf.d]# /usr/share/logstash/bin/logstash -f input_filebeat_app_output_es.conf -r

发送日志

在这里插入图片描述

在这里插入图片描述

#根据需求在改文件
#下面是我们将需要转换的信息转为json,将不需要的信息移除掉
[root@logstash-node1 conf.d]# cat input_filebeat_app_output_es.conf 
input {
       http {
                port => 7474
   }
}

filter {
         mutate {
                  split => {message => "|"}
                  add_field => {
                            "UserID" => "%{[message][1]}"
                            "Action" => "%{[message][2]}"
                            "Date" => "%{[message][3]}"
           }
       }

        date {
		match => ["Date","yyyy-MM-dd HH:mm:ss"]
		target => "@timestamp"
		timezone => "Asia/Chongqing"
	}
        mutate {
		#remove_field => ["message","Date"]
		add_field => { "target_index" => "logstash-app-%{+YYYY.MM.dd}" }
	}
  }

output {
       stdout {
                codec =>rubydebug
    }

}

发送消息

在这里插入图片描述

在这里插入图片描述

下面我们将这些信息输入到ES集群中

#filebeat配置
[root@web01 ~]# cat /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/app.log


output.logstash:
  hosts: ["10.0.0.151:5044"]
[root@web01 ~]# systemctl restart filebeat
#logstash配置
[root@logstash-node1 conf.d]# cat input_filebeat_app_output_es.conf
input {
        beats  {
                port => 5044
   }
}

filter {
         mutate {
                  split => {message => "|"}
                  add_field => {
                            "UserID" => "%{[message][1]}"
                            "Action" => "%{[message][2]}"
                            "Date" => "%{[message][3]}"
           }
       }

        date {
		match => ["Date","yyyy-MM-dd HH:mm:ss"]
		target => "@timestamp"
		timezone => "Asia/Chongqing"
	}
        mutate {
		#remove_field => ["message","Date"]
		add_field => { "target_index" => "logstash-app-%{+YYYY.MM.dd}" }
	}
  }

output {
       #这是输出到控制台,如果不用可以删除
       stdout {
                codec =>rubydebug
    }
       elasticsearch {
                 hosts => ["10.0.0.161:9200","10.0.0.162:9200","10.0.0.163:9200"]
                 index => "%{[target_index]}"
  }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值