ELK Stack插件——eventlog插件管理Windows日志教程
由于公司大部分服务器都是Windows系统,偏偏相关文档又非常少,不断踩坑,终于完成了一个半成品,至少可以正常收集Windows系统日志到ES中,并且通过Kibana展示了(还存在中文乱码以及grok过滤的问题后面再研究),下面是在Windows下部署Logstash的详细文档
--------------------安装JDK--------------------
Logstash需要JDK的支持才能运行,所以先安装JDK 1.8
1、JDK 直接到官网下载即可,安装步骤太简单,一直下一步没有什么好说的,所以略过了
2、安装好JDK后需要配置环境变量,Windows下是在系统-高级系统设置里,如图
2、然后选择“高级”选项卡,点击”环境变量”
3、新建变量JAVA_HOME,值就是JDK安装路径
4、新建变量CLASSPATH,变量值为“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”(引号内的内容),如图
5、编辑PATH变量,在变量最开始增加内容"%JAVA_HOME%\bin;"
6、重启系统,然后CMD-运行java -version可以看到java版本代表安装成功
--------------------部署Logstash--------------------
1、要使用Logstash监控Windows日志需要用到一个eventlog插件,所以我们在Windows服务器上部署了Logstash并保证标准输入输出是正常后,就要安装该插件,首先查看下Logstash是否正常运行
logstash -e 'input { stdin { } } output { stdout {} }'
2、eventlog插件的安装方法
logstash-plugin.bat install logstash-input-eventlog
3、然后给Logstash生成一个配置文件,大致如下:
input { eventlog { type => 'WinEventLog' logfile => ["Application", "System", "Security"] } } output{ elasticsearch{ hosts=> ["10.254.15.69:9200"] index => "winevent-%{+YYYY.MM.dd}" } }
4、后台运行Logstash
logstash-5.3.0\bin\logstash.bat -f C:\logstash-5.3.0\logstash.conf
5、在Kibana里创建索引,这里Index列里输入的信息就是配置文件里配置的index名称,由于第一次操作时没有选择时间戳Time-field name,所以create按钮是灰色的
选择时间戳,然后点击create创建索引
--------------------中文乱码问题--------------------
由于Windows系统日志有中文的存在,在Kibana界面中会成乱码,如图:
一开始是用公司的服务器在测试,使用codec转换了多个字符编码都没有解决。怀疑是公司服务器系统环境问题,于是在自己电脑上跑了虚拟机测试,结果两次测试得到了解决,终于显示了中文:
配置文件简化版,第一次使用UTF-8编码依然乱码,且发现Logstash端出现提示说使用了不一致的编码“[logstash.codecs.plain] Received an event that has a different character encoding than you configured.:expected_charset=>"UTF-8"}”:
于是换成GB2312,再次测试就成功了,配置文件简化版如下:
input { file { type => "test" path => "c:/weblog/*.log" start_position => "beginning" codec => plain { charset => "GB2312" } } } output{ elasticsearch{ hosts=> ["192.168.0.100:9200"] index => "test-%{+YYYY.MM.dd}" } }
评论
北京北京
回复logstash-input-eventlog这个插件是不是消除了?