您的位置:首页 > 其它

logstash的安装和使用

2018-01-31 12:01 302 查看

1 、 logstash简介:

logstashj是一个数据分析软件,主要目的是分析log日志。整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是view层。

首先将数据传给logstash,它将数据进行过滤和格式化(转成JSON格式),然后传给Elasticsearch进行存储、建搜索的索引,kibana提供前端的页面再进行搜索和图表可视化,它是调用Elasticsearch的接口返回的数据进行可视化。logstash和Elasticsearch是用Java写的,kibana使用node.js框架。


官网logstash的介绍

2、安装使用

# 解压安装包到/opt目录下
[root@bgsbtsp0006-dqf software]# tar -xf logstash-5.2.2.tar.gz -C /opt/

#改变宿主权限
[root@bgsbtsp0006-dqf opt]# chown -R bfd.bfd logstash-5.2.2/*

#运行logstash插件,input模块是输入(接受数据的流入)  out模块是输出(将数据输出到某地方)
[bfd@bgsbtsp0006-dqf logstash-5.2.2]# ./bin/logstash -e 'input {stdin{} } output {{stdout}}'


stdin {}   #可以从标准输入读数据
stdout {}   # 标准输出




codes模块是将输出的内容按照某种格式输出,可以rubydebug,也可以是json,我们看看输出的是什么格式的内容。

./bin/logstash -e 'input {stdin{} } output {stdout{codec =>rubydebug} }'






logstash的input插件模块的官网地址

logstash的outputput插件模块的官网地址

3、可以写到es中去,首先得先安装了es,以及es-head插件,前面博客有写到。上面的两个链接也有该部分内容。

./bin/logstash -e 'input {stdin{} } output { elasticsearch {hosts => ["172.18.1.22:9200"] index => "logstash-%{+YYYY.MM.dd}"} }'




我们在es-head插件页面中发现会生成一个索引:实时写 立马就可以在es_head中看到数据



4、对于像一些多行日志处理multiline的使用。



写到文件中就是下面的格式

input{
file{
path => ["/opt/logstash-5.2.2/nohup.out"]
type => "logstash-log"
start_position => "beginning"
}
file{
path => ["/opt/elasticsearch/logs/bfd_cluster.log"]
type => "es-log"
# 从日志的开始位置读取
start_position => "beg
ba39
inning"
# 将多行日志变成一行,下面是匹配的格式。
codec => multiline {
# 遇到以这个开头[的就会形成一个事件。
pattern => "^\["
negate => true
#匹配到和上面的行合并成一条
what => "previous"
}
}
}

filter{
#暂时未讲到
}

output{
# 这里要加if判断,不然容易写到一起去。
if [type] == "logstash-log" {
elasticsearch {
hosts => ["172.18.1.22:9200"]
index => "logstash-log-%{+YYYY.MM}"
}
}

if [type] == "es-log" {

elasticsearch {
hosts => ["172.18.1.22:9200"]
index => "es-log-%{+YYYY.MM.dd}"
}
}
}


es官网上讲到codec以及multiline多行日志变一行的介绍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: