# 1.FileBeat
## 1. 1 读取Java日志
**1. 配置input读取Java日志**
日志格式不同,通过`multiline`分隔合并确定是一条日志,如下:
```
2021-12-07 09:14:23.645 INFO 6 --- [io-10006-exec-4] com.yqcx.cp.core.filter.UserCPFilter : traceId=ef82e6f6b33a4e5e8d43ad77eecd91b7,URL:【http://localhost:8080/sysEquType/validateName】,耗时:【199】ms
2021-12-07 09:14:24.875 INFO 6 --- [io-10006-exec-5] com.yqcx.cp.core.filter.UserCPFilter : not allowedPath url [/sysEquType/validateName]
2021-12-07 09:14:24.875 INFO 6 --- [io-10006-exec-5] com.yqcx.cp.core.filter.UserCPFilter : UserCPFilter dealWithUser userId [1400279509741273090]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@15f227b] was not registered for synchronization because synchronization is not active
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@6f914542] will not be managed by Spring
==> Preparing: SELECT id,`name`,code,pid,company_id AS companyId,disable_flag AS disableFlag,disable_time AS disableTime,create_time AS createTime,create_user AS `createUser`,modified_time AS modifiedTime,modified_user AS modifiedUser FROM sys_equ_type WHERE (name = ? AND company_id = ?)
==> Parameters: eeeeeeeeeee(String), 1368801562103226369(Long)
<== Total: 0
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@15f227b]
2021-12-07 09:14:24.884 ERROR 6 --- [io-10006-exec-5] c.f.a.c.e.OpsGlobalExceptionHandler : 运行时异常:
java.lang.NullPointerException: null
at java.util.Objects.requireNonNull(Objects.java:203)
at com.faw_qm.ad_ops.close_test.controller.SysEquTypeController.validateName(SysEquTypeController.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
```
如下通过日期开始区分为一条日志,跨行合并,并简单输出到控制台
```
filebeat.inputs:
- type: log
enabled: true
paths:
- /root/*.log
multiline.type: pattern
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
output:
console:
codec.json:
pretty: true
escape_html: true
```
启动,先不后台启动
```
/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml
```
成功读取到日志,并且按照日期分隔日志
![](https://img.kancloud.cn/86/5c/865c802c2b3bd0bd0d6372e45031ac3a_1154x424.png)
## 1.2 输出到logstash
**1.修改output配置**
```
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /root/*.log
multiline.type: pattern
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
output:
#console:
# codec.json:
# pretty: true
# escape_html: true
logstash:
enabled: true
hosts: ["192.168.56.10:5044"]
```
**2. 后台启动**
```
systemctl start filebeat
```
# 2. logstash
## 2.1 接收filebeat传入数据
logstash配置filebeat传入,并控制台打出测试
```
input {
beats {
port => 5044
}
}
output {
stdout {
codec => rubydebug
}
}
```
同样不要后台启动,使得可以观察到控制台打印
```
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/filebeat.conf
```
可以看到控制台打印
![](https://img.kancloud.cn/b2/06/b206ac4bda936858187814fa0e7e65a1_980x666.png)
## 2.2 配置输出到es
```
vim /etc/logstash/conf.d/filebeat.conf
input {
beats {
port => 5044
}
}
output {
# stdout {
# codec => rubydebug
# }
elasticsearch {
hosts => ["http://192.168.56.10:9200"]
#user => "elastic"
#password => "qEnNfKNujqNrOPD9q5kb"
index => "sys-log-%{+YYYY.MM.dd}"
}
}
```
![](https://img.kancloud.cn/12/b8/12b8978c9a5b0a4d0372027290d319f5_1909x1006.png)
在es中存储如下
![](https://img.kancloud.cn/85/d7/85d78ad7ad4c26a4a3ef39876a9f2ebb_865x619.png)
异常日志(跨行也正常收集了)
# 3. logstash过滤数据
## 3.1 时间和无用字段
- springcloud
- springcloud的作用
- springboot服务提供者和消费者
- Eureka
- ribbon
- Feign
- feign在微服务中的使用
- feign充当http请求工具
- Hystrix 熔断器
- Zuul 路由网关
- Spring Cloud Config 分布式配置中心
- config介绍与配置
- Spring Cloud Config 配置实战
- Spring Cloud Bus
- gateway
- 概念讲解
- 实例
- GateWay
- 统一日志追踪
- 分布式锁
- 1.redis
- springcloud Alibaba
- 1. Nacos
- 1.1 安装
- 1.2 特性
- 1.3 实例
- 1. 整合nacos服务发现
- 2. 整合nacos配置功能
- 1.4 生产部署方案
- 环境隔离
- 原理讲解
- 1. 服务发现
- 2. sentinel
- 3. Seata事务
- CAP理论
- 3.1 安装
- 分布式协议
- 4.熔断和降级
- springcloud与alibba
- oauth
- 1. abstract
- 2. oauth2 in micro-service
- 微服务框架付费
- SkyWalking
- 介绍与相关资料
- APM系统简单对比(zipkin,pinpoint和skywalking)
- server安装部署
- agent安装
- 日志清理
- 统一日志中心
- docker安装部署
- 安装部署
- elasticsearch 7.x
- logstash 7.x
- kibana 7.x
- ES索引管理
- 定时清理数据
- index Lifecycle Management
- 没数据排查思路
- ELK自身组件监控
- 多租户方案
- 慢查询sql
- 日志审计
- 开发
- 登录认证
- 链路追踪
- elk
- Filebeat
- Filebeat基础
- Filebeat安装部署
- 多行消息Multiline
- how Filebeat works
- Logstash
- 安装
- rpm安装
- docker安装Logstash
- grok调试
- Grok语法调试
- Grok常用表达式
- 配置中常见判断
- filter提取器
- elasticsearch
- 安装
- rpm安装
- docker安装es
- 使用
- 概念
- 基础
- 中文分词
- 统计
- 排序
- 倒排与正排索引
- 自定义dynamic
- 练习
- nested object
- 父子关系模型
- 高亮
- 搜索提示
- kibana
- 安装
- docker安装
- rpm安装
- 整合
- 收集日志
- 慢sql
- 日志审计s
- 云
- 分布式架构
- 分布式锁
- Redis实现
- redisson
- 熔断和降级