本次安装在win10 环境下
安装参考文章:
https://blog.csdn.net/c365666025/article/details/79558671
https://blog.csdn.net/u013066244/article/details/60751188
不过文章开头没有提到一定要先安装 jdk 环境,win10 下的 jdk 安装配置参考:https://blog.csdn.net/yx1214442120/article/details/55098380
感谢前人的分享。
尽管有无数别人成功的案例,但自己安装时还是难免遇到问题,下面我细数自己遇到的问题。
logstash 安装
错误1:
如文章开头所说,找到安装方案之后埋头就干,结果在 powershell 运行 logstash -f helloword.conf
时报错了:
错误:找不到或无法加载主类 Files\Java\jdk1.8.0_181\lib;C:\Program
解决方法 : 到你的 logstash 解压目录下进入bin,我的是
D:\elk\logstash-6.3.2\logstash-6.3.2\bin
,修改logstash.bat 批处理文件
把所有 %CLASSPATH%
替换成 "%CLASSPATH%"
, 我的文件中有两处,位于55 和 86行,就不贴图了。到此,重新运行,不报这个错了,但是,新的错误还是有的
错误2:
满怀期待的重新运行,光荣的报错了:
- 错误: main ERROR Unable to create file sys:ls.logs/logstash−” role=”presentation”>sys:ls.logs/logstash−sys:ls.logs/logstash−{sys:ls.log.format}.log java.io.IOException: 文件名、目录名或卷标语法不正确…….main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@4278a03f]…….
报错太多,占了好几屏,直接上一部分图吧:
- 解决方法: 这满屏的错误整个人都傻了,不过解决方案也是超简单的,参考了 github上的问题 https://github.com/elastic/logstash/issues/8744 ,应该是我的运行目录不对,我是在
D:\elk\logstash-6.3.2\logstash-6.3.2\config>
下运行,该目录底下包含了 log4j2 文件,所以报错了。
换了目录再执行,还是有错
错误3:
错误: Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>”LogStash::ConfigurationError”, :message=>”Expected one of #, if, \”, ‘, } at line 2, column 1 (byte 8) after input{\n”, :backtrace=>[“D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/compiler.rb:42:in
compile_imperative'", "D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/compiler.rb:50:in
compile_graph’”, “D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/compiler.rb:12:inblock in compile_sources'", "org/jruby/RubyArray.java:2486:in
map’”, “D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/compiler.rb:11:incompile_sources'", "D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/pipeline.rb:49:in
initialize’”, “D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/pipeline.rb:167:ininitialize'", "D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/pipeline_action/create.rb:40:in
execute’”, “D:/elk/logstash-6.3.2/logstash-6.3.2/logstash-core/lib/logstash/agent.rb:305:in `block in converge_state’”]
-解决方法: 这个报错比较明显了,配置文件 helloworld.conf 作的妖,当我们使用
logstash -e 'input { stdin { } } output { stdout {} }'
命令,输入内容,屏幕上就会显示输入的内容,成功启动如下图:
那现在来看看为什么我的配置文件出问题了,对比了以上命令的conf 内容,发现我的配置文件
input{ stdin{} } output { stdout { codec=>rubydebug } }
用以上命令执行也是成功的,说明不是内容有问题,那就是格式的问题了,我是直接从安装那个网站拷贝过来贴在 sublime 里面的。然后照着内容自己重新写了一份,再执行,居然就成功了,看着内容是一样的,但是复制过来贴在编辑器里和自己照着写的就是不一样。看来,以后看到命令还是不能偷懒呀,最后放上我启动logstash成功的图图。
elasticsearch 安装
这个配置好环境变量之后完全没毛病了,成功截图:
kibana 安装
配置好环境变量,跟着参考文章走就可以了,写好 logstash 的 input 和 output ,效果如下。
安装成功之后就要考虑如何使用了,可以参考官方文档 : https://www.elastic.co/guide/index.html
还有前人博客 :
https://www.cnblogs.com/xing901022/p/4802822.html
https://blog.csdn.net/datadev_sh/article/details/79040318
https://blog.csdn.net/tianyaleixiaowu/article/details/76610036
另外过滤中的正则格式可以使用工具 : https://tool.lu/regex/