首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
分布式日志收集之Logstash 笔记(一)
时间:
2015-11-05 12:13:45
阅读:
223
评论:
0
收藏:
0
[点我收藏+]
标签:
(一)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
(二)logstash的的安装
logstash的目前的最新版本是2.0.0,建议安装在Linux平台,虽然它也支持Windows平台,但可能会有问题
下载:
wget https://download.elastic.co/logstash/logstash/logstash-2.0.0.tar.gz
解压:
tar -zxvf logstash-2.0.0.tar.gz
进入根目录,执行bin/logstash -h 可查看帮助文档
参数介绍如下:
使用命令模板:
/bin/logstash 命令参数 选项
选项:
-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 打印帮助
(三)logstash的数据处理模型
(1)input =》 output
(2)input =》 filter =》 output
其中input常用的输入源有:file,syslog,redis,log4j,apache log或nginx log,或者其他一些自定义的log格式,业务log,搜索log,订单log等等
filter常用的选项有:
grok:支持正则提取任何非结构化数据或结构化数据,其中logstash内置120多种正则,比如常见的时间,ip,用户名,等等也支持自定义正则解析
mutate:修改字段名,删除,更新等操作,转换字段类型等
drop: 删除某些时间,如debug
clone:拷贝一份事件副本,用来添加或删除字段
geoip : 通过ip获取地理位置信息,在做kibana区域统计图非常炫
ruby: 支持原生的ruby代码,操作事件,实现强大的其他功能
output常用的输出有:
elasticsearch 比较常用
file:写入文件
redis:写入队列
hdfs:写入HDFS,需插件支持
zabbix: zabbix监控
mongodb:写入mongodb库
除此之外还有个编码插件codecs也比较常用
常用来处理json数据或者多行数据源
(四)logstash一些简单例子
(1)使用命令行命令调试:
[java]
view plain
copy
[search
@h3
logstash-
2.0
.
0
]$ bin/logstash -e
"input{stdin{}} output{stdout{}}"
Default settings used: Filter workers:
1
Logstash startup completed
hello
2015
-
11
-04T15:
16
:
02
.747Z h3 hello
test
2015
-
11
-04T15:
16
:
08
.108Z h3 test
(2)命令行参数仅适合简单的配置,如果配置比较多,我们一般会写入一个以.conf结尾的配置文件里,然后使用
-f命令加载,将(1)中的配置,写入hello.conf
然后使用bin/logstash -f hello.conf 执行加载,即可达到同样效果
(3)常用的数据模块
[java]
view plain
copy
<pre name=
"code"
class
=
"java"
>input{
.....
}
filter{
......
}
output{
.......
}
(4)监听文件,支持通配符,写入文件
[java]
view plain
copy
input{
file => [
"/var/log/file"
,
"/var/solr/log/*"
]
}
output{
file =>
"/sys/collect/log"
}
(5)logstash插件支持数据类型
[java]
view plain
copy
数组: path=> [
"a"
,
"b"
]
布尔:ssl_enable =>
true
字节:
my_bytes =>
"1113"
#
1113
bytes
my_bytes =>
"10MiB"
#
10485760
bytes
my_bytes =>
"100kib"
#
102400
bytes
my_bytes =>
"180 mb"
#
180000000
bytes
编码:
codec =>
"json"
哈希表:
match => {
"k1"
=>
"v1"
"k2"
=>
"v2"
"k3"
=>
"v3"
}
数值:
port=>
33
密码:
pwd=>
"password"
路径:
path=>
"/tmp/logstash"
字符串:
name =>
"hello wordld"
注释:
input{
# 号开头,与shell脚本注释一样
}
分布式日志收集之Logstash 笔记(一)
标签:
原文地址:http://my.oschina.net/u/1027043/blog/526182
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!