Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。
一、原理Input
可以从文件中、存储中、数据库中抽取数据,Input有两种选择一个是交给Filter进行过滤、修剪。另一个是直接交给Output
Filter
能够动态地转换和解析数据。可以通过自定义的方式对数据信息过滤、修剪
Output
提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。
二、安装使用 1.安装wget https://artifacts.elastic.co/downloads/logstash/logstash-6.0.1.rpm yum install -y ./logstash-6.0.1.rpm登录后复制 2.Logstash配置文件
vim /etc/logstash/logstash.yml path.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日志文件
yum install httpd echo "Hello world" > /var/www/html/index.html # 安装httpd,创建首页用于测试登录后复制
vim /etc/logstash/conf.d/test.conf input { 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前面 Configuration OK # 表示测试OK登录后复制 6.启动logstash
在当前会话运行logstash后不要关闭这个会话暂时称其为会话1,再打开一个新的窗口为会话2
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf登录后复制
启动以后在会话2中使用curl命令进行测试
curl 172.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" 200 12 "-" "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.conf input { 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 # 测试配置文件 Configuration OK /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf # 启动Logstash登录后复制
测试
每个执行10次172.18.68.14,位Logstash的地址
curl 127.0.0.1 curl 172.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:s Z"] remove_field => "timestamp" } }登录后复制
监控Tomcat
仅仅列了filter配置块,input与output参考上一个配置
filter { grok { match => { "message" => "%{HTTPD_COMMONLOG}" } remove_field => "message" } date { match => ["timestamp","dd/MMM/YYYY:H:m:s Z"] remove_field => "timestamp" } }登录后复制 五、Filebeat
现在已经搭建成在节点安装Logstash并发送到Elasticsearch中去,但是Logstash是基于Java开发需要运行在JVM中,所以是一个重量级采集工具,仅仅对于一个日志采集节点来说使用Logstash太过重量级,那么就可以使用一个轻量级日志收集工具Filebeat来收集日志信息,Filebeat同一交给Logstash进行过滤后再Elasticsearch。这些在接下来的文章在进行讲解,先放一张架构图吧。
以上就是详解Elasticsearch的基友Logstash的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 详解Elasticsearch的基友Logstash
发表评论 取消回复