Logstash有什么用
这篇文章主要介绍了Logstash有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Logstash 的作用就是一个数据收集器,将各种格式各种渠道的数据通过它收集解析之后格式化输出到 Elasticsearch ,最后再由 Kibana 提供的比较友好的 Web 界面进行汇总、分析、搜索。
Input
可以从文件中、存储中、数据库中抽取数据,Input有两种选择一个是交给Filter进行过滤、修剪。另一个是直接交给Output
Filter
能够动态地转换和解析数据。可以通过自定义的方式对数据信息过滤、修剪
Output
提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。
1.安装
wgethttps://artifacts.elastic.co/downloads/logstash/logstash-6.0.1.rpmyuminstall-y./logstash-6.0.1.rpm
2.Logstash配置文件
vim/etc/logstash/logstash.ymlpath.data:/var/lib/logstash#数据存放路径path.config:/etc/logstash/conf.d/*.conf#其他插件的配置文件,输入输出过滤等等path.logs:/var/log/logstash#日志存放路径
3.Logstash中的JVM配置文件
Logstash是一个基于Java开发的程序,需要运行在JVM中,可以通过配置jvm.options来针对JVM进行设定。比如内存的最大最小、垃圾清理机制等等。这里仅仅列举最常用的两个。
JVM的内存分配不能太大不能太小,太大会拖慢操作系统。太小导致无法启动。
vim/etc/logstash/jvm.options#logstash有关JVM的配置-Xms256m#logstash最大最小使用内存-Xmx1g
4.最简单的日志收集配置
安装一个httpd用于测试,配置Logstash收集Apache的accless.log日志文件
yuminstallhttpdecho"Helloworld">/var/www/html/index.html#安装httpd,创建首页用于测试vim/etc/logstash/conf.d/test.confinput{file{#使用file作为数据输入path=>['/var/log/httpd/access_log']#设定读入数据的路径start_position=>beginning#从文件的开始处读取,end从文件末尾开始读取}}output{#设定输出的位置stdout{codec=>rubydebug#输出至屏幕}}
5.测试配置文件
logstash是自带的命令但是没有再环境变量中,所以只能使用绝对路径来使用此命令。
/usr/share/logstash/bin/logstash-t-f/etc/logstash/conf.d/test.conf#测试执行配置文件,-t要在-f前面ConfigurationOK#表示测试OK
6.启动logstash
在当前会话运行logstash后不要关闭这个会话暂时称其为会话1,再打开一个新的窗口为会话2
/usr/share/logstash/bin/logstash-f/etc/logstash/conf.d/test.conf
启动以后在会话2中使用curl命令进行测试
curl172.18.68.14
然后在回到之前的会话1可以看到输出的信息
{"@version"=>"1","host"=>"logstash.shuaiguoxia.com","path"=>"/var/log/httpd/access_log","@timestamp"=>2017-12-10T14:07:07.682Z,"message"=>"172.18.68.14--[10/Dec/2017:22:04:44+0800]\"GET/HTTP/1.1\"20012\"-\"\"curl/7.29.0\""}
至此最简单的Logstash配置就已经完成了,这里仅仅是将收集到的直接输出没有进行过滤或者修剪。
三、Elasticsearch与Logstash上面的配置时Logsatsh从日志文件中抽取数据,然后输出至屏幕。那么在生产中往往是将抽取的数据过滤后输出到Elasticsearch中。下面讲解Elasticsearch结合Logstash
Logstash抽取httpd的access.log文件,然后经过过滤(结构化)之后输出给Elasticsearch Cluster,在使用Head插件就可以看到抽取到的数据。(Elasticsearch Cluster与Head插件搭建请查看前两篇文章)
配置Logstash
vim/etc/logstash/conf.d/test.confinput{file{path=>['/var/log/httpd/access_log']start_position=>"beginning"}}filter{grok{match=>{"message"=>"%{COMBINEDAPACHELOG}"}remove_field=>"message"}}output{elasticsearch{hosts=>["http://172.18.68.11:9200","http://172.18.68.12:9200","http://172.18.68.13:9200"]index=>"logstash-%{+YYYY.MM.dd}"action=>"index"document_type=>"apache_logs"}}
启动Logstash
/usr/share/logstash/bin/logstash-t-f/etc/logstash/conf.d/test.conf#测试配置文件ConfigurationOK/usr/share/logstash/bin/logstash-f/etc/logstash/conf.d/test.conf#启动Logstash
测试
每个执行10次172.18.68.14,位Logstash的地址
curl127.0.0.1curl172.18.68.14
验证数据
使用浏览器访问172.18.68.11:9100(Elastisearch 安装Head地址,前面文章有讲)
选择今天的日期,就能看到一天内访问的所有数据。
监控Nginx日志
仅仅列了filter配置块,input与output参考上一个配置
filter{grok{match=>{"message"=>"%{HTTPD_COMBINEDLOG}\"%{DATA:realclient}\""}remove_field=>"message"}date{match=>["timestamp","dd/MMM/YYYY:H:m:sZ"]remove_field=>"timestamp"}}
监控Tomcat
仅仅列了filter配置块,input与output参考上一个配置
filter{grok{match=>{"message"=>"%{HTTPD_COMMONLOG}"}remove_field=>"message"}date{match=>["timestamp","dd/MMM/YYYY:H:m:sZ"]remove_field=>"timestamp"}}五、Filebeat
现在已经搭建成在节点安装Logstash并发送到Elasticsearch中去,但是Logstash是基于Java开发需要运行在JVM中,所以是一个重量级采集工具,仅仅对于一个日志采集节点来说使用Logstash太过重量级,那么就可以使用一个轻量级日志收集工具Filebeat来收集日志信息,Filebeat同一交给Logstash进行过滤后再Elasticsearch。这些在接下来的文章在进行讲解,先放一张架构图吧。
感谢你能够认真阅读完这篇文章,希望小编分享的“Logstash有什么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。