logstash-初涉
来源:互联网 发布:全国地图软件下载 编辑:程序博客网 时间:2024/05/18 16:55
logstash是一个分布式日志收集框架
分布式:把一个系统根据功能分模块分在多个服务器上运行,就叫分布式。
它的功能很强大,可以用来支持canal等项目。
首先,顾名思义,logstash就是一个日志收集的框架。你去官网上把Logstash下载下来,进行配置,就可以用了。
进入bin目录下,logstash的启动命令为: logstash -f conf/test.conf #后面跟的参数是配置文件的所在地址和文件名。
其中在配置文件text.conf中,主要分为input,filter,output三部分。
input:输入可以源自于某个文件,它可以监听log文件的状态,捕获到新增的log信息。因为logstash被ElasticSearch收购了,所以输入好像用ElasticSearch也很和谐。
filter过滤器:它可以将log根据不同的格式过滤,对log进行格式转换。
output:输出到某个存储系统,或临时中转系统,如mysql,redis,mq(消息中间件)等等。
配置output到mq的配置文件:
output {rabbitmq {exchange => "exchaneg-name"exchange_type => "topic"host => "121.40.30.150"key => "routting-key-name"user => "user-name"password => "password"port => "your-port"vhost => "vhost"connection_timeout => "3000"}}
其中filter中:
if:可以使用If条件,搭配drop{}方法,丢弃掉不符合格式的Log.
if里面可以使用#, in, not , ==, !=, <=, >=, <, >, =~, !~, and, or, xor, nand这几类判断符号。
=~后面加正则表达式
grok:是logstash中比较经典的东西,可以随心的从原本log中获取到有价值的信息,并按照你想要的格式对其进行格式的重新排列。
我所做的项目由于逻辑简单 并没有用起来grok这个东西,只使用了
grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}
意为把获取的log封装一下。grok使用的是自己的正则,它的正则规律在grok-pattern文件中进行定义,你也可以自定义一下正则表达式。举个例子,对于下面这条日志:
55.3.244.1 GET /index.html 15824 0.043
可以这样解析:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
将会得到这样的结果
* client: 55.3.244.1* method: GET* request: /index.html* bytes: 15824* duration: 0.043
其中IP,WORD,NUMBER等都是在grok-pattern文件里面定义过的正则,可以直接用来使用,非常方便。- logstash-初涉
- Logstash
- LogStash
- Logstash
- logstash
- logstash
- Logstash
- logstash安装
- 安装logstash
- Logstash+syslog
- Logstash-1
- LogStash入门教程
- 安装logstash
- ELK -Logstash
- logstash安装
- logstash部署
- 安装Logstash
- logstash Codec
- 栈练习代码
- 知识重要,还是解决问题重要
- This version of Android Studio is incompatible with the Gradle Plugin used. Try disabling Instant R
- 插入排序
- 思考:如何让自己更有价值
- logstash-初涉
- 队列练习代码
- 亲自解决STM32 HardFault_Handler错误记录
- jvm内存模型
- ZooKeeper应用场景
- android studio xml 快捷键设置
- 【C/C++开发】TinyXml操作(含源码下载)
- 远程部署war包项目遇到的问题解决方案
- 笔记--