【日志平台】-Logstash篇

一、前言

Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。

顾名思义,Logstash 收集数据对象就是日志文件。由于日志文件来源多(如:系统日志、服务器 日志等),且内容杂乱,不便于人类进行观察。因此,我们可以使用 Logstash 对日志文件进行收集和统一过滤,变成可读性高的内容,方便开发者或运维人员观察,从而有效的分析系统/项目运行的性能,做好监控和预警的准备工作等。

二、安装

logstash-2.1.1.tar.gz

三、组成结构

ogstash 通过管道进行运作,管道有两个必需的元素,输入和输出,还有一个可选的元素,过滤器。

输入插件从数据源获取数据,过滤器插件根据用户指定的数据格式修改数据,输出插件则将数据写入到目的地。如下图:

四、Logstash时区8小时问题

时区问题的解释

很多中国用户经常提一个问题:为什么@timestamp比我们早了8个小时?怎么修改成北京时间?

其实,Elasticsearch内部,对时间类型字段,是统一采用UTC时间,存成long长整形数据的!对日志统一采用UTC时间存储,是国际安全/运维界的一个通识——欧美公司的服务器普遍广泛分布在多个时区里——不像中国,地域横跨五个时区却只用北京时间。

对于页面查看,ELK的解决方案是在Kibana上,读取浏览器的当前时区,然后在页面上转换时间内容的显示。

所以,建议大家接受这种设定。否则,即便你用.getLocalTime修改,也还要面临在Kibana上反过去修改,以及Elasticsearch原有的["now-1h" TO"now"]这种方便的搜索语句无法正常使用的尴尬。

logstash-2.3.2\vendor\bundle\jruby\1.9\gems\logstash-core-event-2.3.2-java\lib\logstash 63行

修改为:

次方法无效

比较合理的解决方式:

通过配置logstash的filter处理

在filter最后添加

使用命令测试:logstash agent -f../conf/app.conf

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180420G1NTIO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券