Logstash笔记(一)

(一)含义:

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

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

(二)安装

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

[[email protected] 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]
[[email protected] local]# tar xf logstash-5.4.0.tar.gz

2,常用的命令

[[email protected] 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直接结束:

[[email protected] 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 命令进行加载。

[[email protected] etc]# vim hello.conf
input{stdin{}}
output{stdout{}}
[[email protected] etc]# /usr/local/logstash/bin/logstash -f hello.conf --configte
st
Configuration OK
[[email protected] 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
时间: 2024-10-22 04:48:12

Logstash笔记(一)的相关文章

Logstash笔记(二) ----input插件

在"hello World" 示例中,我们已经见到并介绍了Logstash 的运行流程和配置的基础语法. 请记住一个原则:Logstash 配置一定要有一个 input 和一个 output.在演示过程中,如果没有写明 input,默认就会使用 "hello world" 里我们已经演示过的 input/stdin ,同理,没有写明的 output 就是 output/stdout 如果有什么问题的话,请查看该文档:http://udn.yyuap.com/doc/

Logstash笔记(四) ----output插件

(一),标准输出 和之前 inputs/stdin 插件一样,outputs/stdout 插件也是最基础和简单的输出插件.同样在这里简单介绍一下,作为输出插件的一个共性了解 配置事例: output {     stdout {         codec => rubydebug         workers => 2     } } ==等同于 output {     stdout {         codec => rubydebug {         }        

Logstash笔记(二)-----grok插件的正则表达式来解析日志

(一)简介: 丰富的过滤器插件的存在是 logstash 威力如此强大的重要因素.名为过滤器,其实提供的不单单是过滤的功能,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去! Grok 是 Logstash 最重要的插件.你可以在 grok 里预定义好命名正则表达式,在稍后(grok参数或者其他正则表达式里)引用它. 大多数Linux使用人员都有过用正则表达式来查询机器中相关文件或文件里内容的经历,在Grok里,我们也是使用正

logstash笔记(一)——redis&es

下载地址: https://www.elastic.co/downloads 版本:logstash-2.2.2 两台linux虚拟机,一台windows宿主机 shipper: 192.168.220.128 (centos7) indexer: 192.168.220.129 (centos7) broker(redis2.6): 192.168.220.1(windows) 部署一个elasticsearch-1.6.0 shipper配置: input{ stdin{}}output{

分布式日志收集之Logstash 笔记(一)

(一)logstash是什么? logstash是一种分布式日志收集框架,开发语言是JRuby,当然是为了与Java平台对接,不过与Ruby语法兼容良好,非常简洁强大,经常与ElasticSearch,Kibana配置,组成著名的ELK技术栈,非常适合用来做日志数据的分析. 当然它可以单独出现,作为日志收集软件,你可以收集日志到多种存储系统或临时中转系统,如MySQL,redis,kakfa,HDFS, lucene,solr等并不一定是ElasticSearch. 官网下载地址:https:/

Logstash(一) 基本

Introduction Logstash is an open source data collection engine with real-time pipelining capabilities. Logstash can dynamically unify data from disparate sources and normalize the data into destinations of your choice. Cleanse and democratize all you

ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack

最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收

logstash 使用笔记

logstash.conf的配置文件 一.监控日志文件,匹配关键字,输出到指定文件/发送邮件. input { file { path => ["你的日志文件"] } } filter { if ([message] !~ "你的匹配关键字") { drop {} } if [loglevel] == "debug" { drop { percentage => 40 } } } output { stdout{ codec =>

ELK 学习笔记之 Logstash基本语法

Logstash基本语法: 处理输入的input 处理过滤的filter 处理输出的output 区域 数据类型 条件判断 字段引用 区域: Logstash中,是用{}来定义区域 区域内,可以定义插件 一个区域内可以定义多个插件 数据类型: 条件判断: 字段引用: