文档章节

Logstash收集日志

wncode
 wncode
发布于 2016/05/05 09:57
字数 746
阅读 888
收藏 3

Logstash 的介绍

logstash是一种分布式日志收集框架,开发语言是JRuby,当然是为了与Java平台对接,不过与Ruby语法兼容良好,非常简洁强大,经常与ElasticSearch,Kibana配置,组成著名的ELK技术栈,非常适合用来做日志数据的分析。

当然它可以单独出现,作为日志收集软件,你可以收集日志到多种存储系统或临时中转系统,如MySQL,redis,kakfa,HDFS, lucene,solr等并不一定是ElasticSearch。

官网下载地址:https://www.elastic.co/downloads/logstash 

官网文档地址:https://www.elastic.co/guide/en/logstash/current/index.html 

中文文档地址:http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html

Logstash 的安装

Logstash 的安装非常简单,直接官网下载对应的版本(需要和 Elasticsearch 的版本匹配)解压缩即可

# tar -zxvf logstash-2.3.2.tar.gz

测试启动

# cd logstash/
# cd bin/
# ./logstash -e 'input { stdin { } } output { stdout {} }'

启动成功提示

Settings: Default pipeline workers: 4
Pipeline main started

Logstash配置

  启动logstash收集需要创建自定义conf配置文件 

   通常 Logstash 的一个配置文件含 input{},filter{},output{} 三部分,该三部分的作用也很好理解,一个配置输入源,一个配置过滤规则,一个配置输出;

   其每个部分又可以配置各种不同的插件,所有插件的说明请参考官网文档的说明

   三部分我觉得最难的配置就是filter了,需要配置grok插件

   在dir下创建一个文件,文件名随意

   将dir加入grok路径: patterns_dir => "./dir"

   将想要增加的SYNTAX写入: SYNTAX_NAME regexp

   使用方法和使用默认SYNTAX相同:%{SYNTAX_NAME:SEMANTIC}

#log4j日志
# 2016-04-10 07:19:16-|INFO|-Root WebApplicationContext: initialization started
MYTIMESTAMP 20%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}
MYLOG %{MYTIMESTAMP:mytimestamp}-\|%{LOGLEVEL:level}\|-%{JAVALOGMESSAGE:logmsg}
 
SERVER_LOG %{DATA:year}-%{DATA:month}-%{DATA:day}\ %{DATA:hour}\:%{DATA:min}\:%{DATA:sec}\ %{DATA:level}\ %{DATA:class} -{ip:%{DATA:ip},url:%{DATA:url},param:%{DATA:param},return:%{DATA:return},cost:%{BASE10NUM:cost}
 
#tomcatAccess日志
ACCESSIP (?:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})
ACCESSTIMESTAMP %{MONTHDAY}\/%{MONTH}\/20%{YEAR}:%{HOUR}:%{MINUTE}:%{SECOND} %{ISO8601_TIMEZONE}
HTTPMETHOD (GET|POST|PUT|DELETE)
PRJNAME ([^\s]*)
HTTPVERSION (https?\/[0-9]{1}\.[0-9]{1})
STATUSCODE ([0-9]{3})
# 192.168.1.101 - - [10/Apr/2016:08:31:34 +0800] "GET /spring-mvc-showcase HTTP/1.1" 302 -
ACCESSLOG %{ACCESSIP:accIP}\s-\s\-\s\[%{ACCESSTIMESTAMP:accstamp}\]\s"%{HTTPMETHOD:method}\s\/%{PRJNAME:prjName}\s%{JAVALOGMESSAGE:statusCode}

  创建.conf文件

input {
  file {
   type=>"xx_server_log"
   path=>"/opt/software/apache-tomcat-7.0.59/logs/catalina.out"
 }
}
filter {
        if [type] == "xx_server_log" {
           grok {
                 match => [ "message","%{SERVER_LOG}"]
                 patterns_dir => ["/opt/conf/logstash"]
                 remove_field => ["message"]
          }
        }
}
output {
   redis{
   host => '10.4.8.5' #redis服务器地址
   key => 'logstash:redis'
   datatype => 'list'
  }
  stdout{     #调试方便可以在输出到stdout,判断grok解析是否正确.如果tag中没有出现grok failure字样,说明解析正确。
        codec=>json
  }
}

Logstash启动

# ./bin/logstash -f ./conf/access-log.conf

  解释: -f 后面指定的是配置文件

导入到es

以上我是将采集到的日志先放在redis缓存,再次通过logstash导入到es

input {
    redis{
      host => '10.4.8.5'
      key => 'logstash:redis'
      datatype => 'list'
    }
}
#日志在上面已经结构化了,可以不再解析。
#filter{
#}
output
{
 # stdout{}
  elasticsearch {
   host => '10.4.8.5'
   protocol => 'http'
   index => "logstash-%{type}"#设置在elasticsearch中的indexer名字,默认为logstash-%{yyyy.MM.dd}
  }
}

博客地址:http://my.oschina.net/wangnian

© 著作权归作者所有

wncode
粉丝 195
博文 118
码字总数 90639
作品 0
浦东
程序员
私信 提问
ELK的使用——Filebeat给Logstash采集日志

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aiTCR/article/details/82725686 为什么使用Filebeat给Logstash收集日志 Logstash本身也是能收集日志的,只不...

TTcccCarrie
2018/09/16
0
0
ELK日志收集平台部署

需求背景 一位朋友的公司研发最近有一些苦恼。由于他们公司的后台服务有三台,每当后台服务运行异常,需要看日志排查错误的时候,都必须开启3个ssh端口进行查看,研发们觉得很不方便,于是便...

icenycmh
2018/01/02
0
0
ELK 日志分析系统

转自:http://467754239.blog.51cto.com/4878013/1700828/ 一、简介 1、核心组成 ELK由Elasticsearch、Logstash和Kibana三部分组件组成; Elasticsearch是个开源分布式搜索引擎,它的特点有:...

老鹰a
2017/09/05
0
0
ELK实战之Kibana部署及message日志收集

一、Kibana安装 浏览器访问192.168.56.11:5601,如图:可以通过http://192.168.56.11:5601/status 来查看看是否正常,如果不正常,是无法进入到上图界面 二、通过配置logstash文件收集messa...

IT_外卖小哥
2017/12/27
0
0
ELK日志平台---老男孩教育笔记

环境的困境(原因) 1、开发人员不能登录线上服务器查看相信日志; 2、各个系统都有日志,日志数据分散难以查找; 3、日志数据量大,查询速度慢,或者数据不够及时。(状态码 400 的 top10)...

liqilong1991
2017/07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

还为PDF转Word抓狂?以下神器让你在职场倍受欢迎!

身在职场的你,是否一直在琢磨:如何能让自己在公司更受欢迎?如何才能在办公室里混个好人缘?如何在同事圈里留个好印象?其实,想要让自己成为受欢迎的人,只要让自己成为大家需要的人不就行...

foxit2world
30分钟前
7
0
AndServer+Service打造Android服务器实现so文件调用

so 文件调用 随着 Android 移动安全的高速发展,不管是为了执行效率还是程序的安全性等,关键代码下沉 native 层已成为基本操作。 native 层的开发就是通指的 JNI/NDK 开发,通过 JNI 可以实...

夜幕NightTeam
32分钟前
4
0
Docker下kafka学习三部曲之二:本地环境搭建

在上一章《 Docker下kafka学习,三部曲之一:极速体验kafka》中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来学习如何编写...

程序员欣宸
32分钟前
4
0
萌新推荐!不再为Excel转换PDF发愁,Aspose.Cells for .NET一步到位!

Aspose.Cells for .NET(点击下载)是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。 将Excel工作簿转换为...

mnrssj
33分钟前
6
0
对于绘画小白怎么画制服?该注意什么?

怎样制作学生服装?想必绘画初学者们常常会想的问题吧,不知道怎样才能画好人物的衣服,别着急,今日就在这儿讲一些关于如何绘画学生衣服校服的教程给我们!期望能够帮到你们! 轻便西装是不...

热爱画画的我
39分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部