es+fluentd+kibana使用实战

  • 环境搭建
    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>
  1. 本地调用远程fluent服务
    //service-a.ServiceController tag前缀
    private static FluentLogger log = FluentLogger.getLogger(“service-a.ServiceController”,“192.168.181.99”,24224);
    然后调用log.log方法指定tag,日志级别和日志内容。
    也可在日志得xml文件中指定apperder来发送(具体可查看官网)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值