首页 > 代码库 > Logstash笔记(一)

Logstash笔记(一)

(一)含义:    

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

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


(二)安装

1,下载和安装。通过官网进行下载目前最新的版本 https://www.elastic.co/cn/downloads/logstash

[root@localhost local]# wget https://artifacts.elastic.co/downloads/logstash/lo
gstash-5.4.0.tar.gz
--2017-05-22 17:05:29--  https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.tar.gz
Resolving artifacts.elastic.co... 174.129.40.40, 184.72.234.88, 184.73.227.9, ...
Connecting to artifacts.elastic.co|174.129.40.40|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 92546670 (88M) [application/x-gzip]
Saving to: “logstash-5.4.0.tar.gz”
100%[======================================>] 92,546,670  9.10M/s   in 14s     
2017-05-22 17:05:44 (6.52 MB/s) - “logstash-5.4.0.tar.gz” saved [92546670/92546670]
[root@localhost local]# tar xf logstash-5.4.0.tar.gz

2,常用的命令

[root@localhost local]# logstash/bin/logstash -V
logstash 2.2.2

常用的选项有:

选项: 
    -f , 指定加载一个后缀为.conf文件的logstash配置模块 
    -e  , 命令行指定参数 , 通常用来调试 
    -w,  指定logstash的工作线程数 
    -l,   指定logstash的默认日志写入到一个文件中,如果不指定,默认是标准输出 
    --quiet                       静默模式,仅仅只有error级别信息输出 
    --verbose                   info级别的log输出 
    --debug                      debug 级别的log输出. 
    -V, --version                查看logstash的版本 
    -p, --pluginpath PATH         加载自定义的logstash插件 
    -t, --configtest               检查logstash配置是否有效 
    -h, --help                    打印帮助 


(三)常用的模型

(1)input => output

(2)input => filter => output

 

具体的解释如下:

 a . input常用的输入源有:file ,syslog,redis,log4j,tomcat_log,nging.log,以及各种业务log


 b.filter常用的选项有:

grok:支持正则提取任何非结构化数据或结构化数据,其中logstash内置120多种正则,比如常见的时间,ip,用户名,等等也支持自定义正则解析 
mutate:修改字段名,删除,更新等操作,转换字段类型等 
drop: 删除某些时间,如debug 
clone:拷贝一份事件副本,用来添加或删除字段 
geoip : 通过ip获取地理位置信息,在做kibana区域统计图非常酷炫 
ruby: 支持原生的ruby代码,操作事件,实现强大的其他功能


 c.output常用的输出选项有:

elasticsearch 比较常用 
file:写入文件 
redis:写入队列 
hdfs:写入HDFS,需插件支持 
zabbix: zabbix监控 
mongodb:写入mongodb库 

codecs:编码插件,常用来处理json数据或者多行数据源 


(四)常见的操作

(1),-e使用命令行调试。结束已ctrl+d直接结束:

[root@localhost logstash]# /usr/local/logstash/bin/logstash -e "input{stdin{}} 
output{stdout{}}" 
Settings: Default pipeline workers: 1
Logstash startup completed
hello world
2017-05-22T09:28:04.364Z localhost.localdomain hello world
test
2017-05-22T09:28:52.170Z localhost.localdomain test

(2),-f调试。如果配置比较多的话,可以写成以.conf结尾的配置文件里,然后使用-f 命令进行加载。

[root@localhost etc]# vim hello.conf
input{stdin{}}
output{stdout{}}
[root@localhost etc]# /usr/local/logstash/bin/logstash -f hello.conf --configte
st
Configuration OK
[root@localhost etc]# /usr/local/logstash/bin/logstash -f hello.conf 
Settings: Default pipeline workers: 1
Logstash startup completed
hello world
2017-05-22T09:40:23.044Z localhost.localdomain hello world


本文出自 “清风明月” 博客,请务必保留此出处http://liqingbiao.blog.51cto.com/3044896/1928343

Logstash笔记(一)