elasticsearch(五)大型分布式日志采集系统ELK

前言

在生产环境中,有多台服务器,如果需要通过日志定位项目的bug的话,需要在每台服务器上使用传统的命令方式查询,例如

tail -n 300 my-application.log | grep 'node-1'           关键字搜

tail 100f my-application.log                                  实时搜

等,这样的效率非常低下。如果服务器很多的话,每台进行查询是非常麻烦的。所以就需要对日志进行集中化的管理,与此同时日志的集中,也会导致统计和检索的难度飙升。ELK就是为了解决这些问题。

 

 

E

elasticsearch,存放日志,可以快速查询。

 

 

L

Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用,如搜索等;logstash带有一个web界面,搜索和展示所有日志;一般工作为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各个节点日志进行过滤、修改等操作并发送elasticsearch上。

核心流程:Logstash事件处理有三个阶段:inputs-->filters-->outputs。是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,包括所有可以抛出来的日志类型。

 

下载地址

https://www.elastic.co/cn/downloads/past-releases#logstash

我是下载的6.4.2的tar版本

下载好之后复制到linux服务器解压

 tar -zxvf logstash-6.4.2.tar.gz

在config配置文件夹里新建配置文件test.conf

input {
    # 从文件读取日志信息 输送到控制台
    file {
        path => "/usr/local/elasticsearch-6.4.2/logs/my-application.log"
        codec => "json" ## 以JSON格式读取日志
        type => "elasticsearch"   #这里只是一个命名,我们读取的是es日志文件,所以命名为elasticsearch
        start_position => "beginning"
    }
	
}

# filter {
#
# }

output {
    # 标准输出 
    # stdout {}
    # 输出进行格式化,采用Ruby库来解析日志   
     stdout { codec => rubydebug }
}

这个配置文件的作用是指定读取日志文件,配置输出方式;这里我们是读取es的日志文件,然后直接格式化后输出。

 

启动logstash

./bin/logstash -f ./config/test.conf

 

启动成功之后再启动一下es,可以发现es打印的日志,在logstash中也以json的形式打印了。

可以发现打印的日志是有时间戳的,之后设置logstash将日志存在es里,用es模糊查询是可以很快很方便的查询到日志的。

 

 

将日志输出到es,需要修改配置文件test.conf

input {
    # 从文件读取日志信息 输送到控制台
    file {
        path => "/usr/local/elasticsearch-6.4.2/logs/my-application.log"
        codec => "json" ## 以JSON格式读取日志
        type => "elasticsearch"
        start_position => "beginning"
    }
}

# filter {
#
# }

output {
    # 标准输出 
    # stdout {}
    # 输出进行格式化,采用Ruby库来解析日志   
     stdout { codec => rubydebug }
	 #输出到es
	 elasticsearch {
        hosts => ["192.168.0.108:9200"]     #es地址
        index => "es-%{+YYYY.MM.dd}"        #自动创建索引,默认是doc类型,索引名称为es-年月日
    }	 
}

 

重新启动logstash

可以看到有create_mapping这些字眼,说明成功了。

 

 

 

 

 

K

使用kibana图形界面展示es日志信息。

 

根据日期索引查看全部日志

 

 

 

模糊搜索日志

 

 

 

 

使用kibana的discover分析数据

 

 

 

 

 

总结

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值