ELK Stack插件——eventlog插件管理Windows日志教程

TangLu 运维 2017-06-17 10127 1

由于公司大部分服务器都是Windows系统,偏偏相关文档又非常少,不断踩坑,终于完成了一个半成品,至少可以正常收集Windows系统日志到ES中,并且通过Kibana展示了(还存在中文乱码以及grok过滤的问题后面再研究),下面是在Windows下部署Logstash的详细文档

--------------------安装JDK--------------------

Logstash需要JDK的支持才能运行,所以先安装JDK 1.8

1、JDK 直接到官网下载即可,安装步骤太简单,一直下一步没有什么好说的,所以略过了

2、安装好JDK后需要配置环境变量,Windows下是在系统-高级系统设置里,如图

jdk1.png

2、然后选择“高级”选项卡,点击”环境变量”

jdk2.png

3、新建变量JAVA_HOME,值就是JDK安装路径

jdk3.png

4、新建变量CLASSPATH,变量值为“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”(引号内的内容),如图

jdk4.png

5、编辑PATH变量,在变量最开始增加内容"%JAVA_HOME%\bin;"

jdk5.png

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按钮是灰色的

eventlog1.png

选择时间戳,然后点击create创建索引

eventlog2.png

6、然后Kibana里已经可以收集到系统日志了eventlog3.png

--------------------中文乱码问题--------------------

由于Windows系统日志有中文的存在,在Kibana界面中会成乱码,如图:

luanma1.png

一开始是用公司的服务器在测试,使用codec转换了多个字符编码都没有解决。怀疑是公司服务器系统环境问题,于是在自己电脑上跑了虚拟机测试,结果两次测试得到了解决,终于显示了中文:

luanma2.png

配置文件简化版,第一次使用UTF-8编码依然乱码,且发现Logstash端出现提示说使用了不一致的编码“[logstash.codecs.plain] Received an event that has a different character encoding than you configured.:expected_charset=>"UTF-8"}”:

luanma3.png

于是换成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}"
    }
}



评论

精彩评论
2017-11-15 09:42:31

logstash-input-eventlog这个插件是不是消除了?