es+fluentd+kibana使用实战
环境搭建1.es安装选用版本6.6.22.kibana安装选用版本6.6.23.fluentd安装选用版本td-agent3.7.1td-agent.conf中配置说明fluentd官网https://docs.fluentd.org/parser/multiline###### Output descriptions:### Treasure Data (http://www.treasure-
·
- 环境搭建
1.es安装
选用版本6.6.2
2.kibana安装
选用版本6.6.2
3.fluentd安装
选用版本td-agent3.7.1
td-agent.conf中配置说明
fluentd官网
https://docs.fluentd.org/parser/multiline
####
## Output descriptions:
##
# Treasure Data (http://www.treasure-data.com/) provides cloud based data
# analytics platform, which easily stores and processes data from td-agent.
# FREE plan is also provided.
# @see http://docs.fluentd.org/articles/http-to-td
#
# This section matches events whose tag is td.DATABASE.TABLE
## match tag=debug.** and dump to console
#tag类型匹配 这里表示匹配test
<match test.**>
#表示写入es
@type elasticsearch
#是否开启logstash日志格式化
logstash_format true
#flush时间间隔
flush_interval 10s
#es连接ip
host localhost
#es连接端口号
port 9200
#在es创建得index名称 这里使用tag-时间
index_name ${tag}-%Y.%m.%d
#在es创建得type 这里使用tag-时间
type_name ${tag}-%Y.%m.%d
logstash_prefix ${tag}
include_tag_key true
tag_key @log_name
<buffer tag, time>
#默认单位s s/m/h 多久会产生一个chunk
timekey 1h
#默认单位s s/m/h 是指当前chunk 结束了以后,延迟多长时间,才把该chunk flush到文件里
timekey_wait 10
</buffer>
</match>
####
## Source descriptions:
##
## built-in TCP input
## @see http://docs.fluentd.org/articles/in_forward
#监听tcp 默认ip localhost port 24224 可通过tcp得方式发送日志到fluentd
<source>
@type forward
@id input_forward
</source>
## built-in UNIX socket input
#<source>
# type unix
#</source>
# HTTP input
# POST http://localhost:8888/<tag>?json=<json>
# POST http://localhost:8888/td.myapp.login?json={"user"%3A"me"}
# @see http://docs.fluentd.org/articles/in_http
#可接受http类型得日志发送请求 默认ip localhost
<source>
@type http
@id input_http
#端口8888
port 8888
#限制大小32m
body_size_limit 32m
#限制超时时间10s
keepalive_timeout 10s
</source>
## live debugging agent
<source>
@type debug_agent
@id input_debug_agent
bind 127.0.0.1
port 24230
</source>
#tail类型读取日志文件
<source>
@type tail
#文件路径(自定义)
path /suns/log/td-agent/*.test.log
#记录读取位置得文件(自定义)
pos_file /suns/log/td-agent/test.log.pos
#没有读取记录时是否从头开始读
read_from_head true
#多行匹配筛选日志(这里为自定义日志)
<parse>
@type multiline
format_firstline /^Begin:/ #这里时指以Begin:这一行为开始
format1 /^Url:(?<Url>.*)/ #这里是匹配Url忽略:
format2 /^RequestParams:(?<RequestParams>.*)/ #这里匹配RequestParams忽略:
format3 /^ResponseResults:(?<ResponseResults>.*)/ #这里匹配ResponseResults忽略:
format4 /^Cost:(?<Cost>.*)/ #这里匹配Cost忽略:
format5 /^End/
</parse>
tag test
</source>
单行匹配示例
#单行匹配
<source>
@type tail
#文件路径(自定义)
path /app/full-cycle-chain2.0/logs/*.log
#记录读取位置得文件(自定义)
pos_file /app/full-cycle-chain2.0/pos/test.log.pos
#没有读取记录时是否从头开始读
read_from_head true
#单行匹配筛选日志(这里为自定义日志)
format /^(?<access_time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\s+\[(?<traceid>.{0,100})\]\s+\[(?<app_trace_id>.{0,100})\]\s+\[(?<level>\S+)\]\s+\[(?<thread_id>\S+)\]\s+(?<message>.*)$/
tag checkorder-server
</source>
kibana操作
1.查看索引
2.创建索引模式
3.Discover查看日志监控
4.可创建可视化(可选)
5.创建仪表盘(可选)
- es head安装
参考https://blog.csdn.net/weixin_33092023/article/details/80765775 - 从springboot项目直接发送日志到fluentd
1.引入依赖
<dependency>
<groupId>org.fluentd</groupId>
<artifactId>fluent-logger</artifactId>
<version>0.3.3</version>
</dependency>
- 本地调用远程fluent服务
//service-a.ServiceController tag前缀
private static FluentLogger log = FluentLogger.getLogger(“service-a.ServiceController”,“192.168.181.99”,24224);
然后调用log.log方法指定tag,日志级别和日志内容。
也可在日志得xml文件中指定apperder来发送(具体可查看官网)
更多推荐
已为社区贡献1条内容
所有评论(0)