部署Windows 版ELK 6.2.3

  • 内容
  • 评论
  • 相关

Windows Server 2016 安装过程略,防火墙关闭。

准备环境:Python 2.7 (汉化kibana用)

Notepad (编辑yml配置文件格式好看)

Chrome

Java 8(不然Elastic 提示安装不上)

Nssm (安装kibana为服务用)

7z:压缩下载下来的zip包,感觉要比Widnows 自带的快。

用到的软件

Elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.msi

Kibana:https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-windows-x86_64.zip

Winlogbeat:

https://artifacts.elastic.co/downloads/beats/winlogbeat/winlogbeat-6.3.2-windows-x86_64.zip

NSSM:http://www.nssm.cc/release/nssm-2.24.zip

Kibana_Hanization:https://github.com/anbai-inc/Kibana_Hanization 汉化包

这边解释一下为什么用这几个软件

在原先的ELK架构里边是这样的:

Logstash——>Elastic——>Kibana

Logstash充当日志收集,Elastic充当日志汇集、Kibana充当数据展示,这个我们都很熟悉了。

但是,后来出现了Beats家族,省去了Logstash日志过滤的工作,Beats家族术业有专攻,系统日志专门收集系统日志(Filebeta),网络日志专门收集网络日志(Packetbeat),性能指标专门收集性能指标(Metricbeat)。

现在的架构一般是这样的:

Filebeat(linux日志客户端)——>Elastic——>Kibana

Winlogbeat(Windows日志客户端)——>Elastic——>Kibana

相对于Logstash,beats更加轻量级。

安装Elastic

常规的下一步,下一步,完成。

这里要注意2个地方,1个是Memory,这个内存指的是Java虚拟机JVM内存,不能调最大,不然会报错。

Network host:0.0.0.0

插件要联网才能安装,这边无法连接外网,不勾选。

安装完成的同时,内存也开始上来了,会在服务里面注册一个Elasticsearch的服务。

本地连接测试OK

由于之前配置Network host 为0.0.0.0所有主机访问,所以内网访问也可以。

Elastic的配置文件隐藏起来了,路径是这个:C:\ProgramData\Elastic\Elasticsearch\config

安装Kibana

解压Kibana和汉化包Kibana_Hanization-master到桌面(我喜欢拷贝到桌面然后解压),文件名千万不要改,汉化的时候会报错。

需要注意的是安装Python 2.7 需要添加路径,不然cmd输入python命令无效。

解压到桌面打开cmd,cd切换到汉化包目录,

然后使用命进行汉化

python main.py C:\Users\Administrator\Desktop\kibana-6.3.2-windows-x86_64

等个几分钟,会提示汉化完成,提示语翻译完成显示乱码,不要紧。

汉化完成以后,把kibana-6.3.2-windows-x86_64的文件为改为kibana,剪切到C:\Program Files目录下(个人习惯)。

Kibana 的配置文件在同名目录下 C:\Program Files\kibana\config

如图配置以下几个参数,把注释符#去掉,IP修改为本机IP就可以了,然后关闭保存。

双击C:\Program Files\kibana\bin目录下的kibana.bat执行

出现就是中文版,有网络的朋友也可以不汉化,使用浏览器的Gogole翻译插件就可以。

由于事先配置过了,内网机器也可以访问到。

由于官方没有出kibana的MSI安装文件,使用批处理bat文件运行有个不好的地方就是系统重启或者莫名的关闭,kibana就起不来了。

这里要用到一个第三方注册服务的工具NSSM

首先把kibana cmd窗口关闭,然后把下载好的NSSM解压出来,把nssm.exe放到kibana 启动文件目录下C:\Program Files\kibana\bin

打开cmd,cd 切换到此目录

使用命令 nssm install kibana 按回车,会弹出来nssm对话框

然后使用Path 右边的…按钮浏览到目录下的bat文件,点击打开

点击打开之后,NSSM会自动把Startup directory路径补上,直接点击Install service。

cmd 窗口和NSSM软件窗口同时会提示安装成功的提示,同时在服务列表里面注册好了Kibana服务,把它启动就OK了

启动过后大概会等10秒钟时间,才能刷新网页。

安装Winlogbeat

Winlogbeat是Windows平台上收集系统日志的程序,不要用Filebeat。

首先把下载下来的winlogbeat-6.3.2-windows-x86_64 解压到桌面,然后改名为winlogbeat,剪切到C:\Program Files目录下,然后使用powershell 命令切换到目录下

cd ‘C:\Program Files\winlogbeat’

注意powershell 与 cmd 切换路径不同的地方在于需要在路径上添加一对单引号

使用命令 .\ install-service-winlogbeat.ps1 进行安装

这样就安装成功了,会在服务列表里面注册一个winlogbeat的服务。

会有提示不允许安装的情况,按照提示运行允许安装的命令就可以了。

在目录下编辑配置文件winlogbeat.yml

修改这个参数就可以了,其他不用改,然后保存。然后启动服务。

创建索引

回到Kibana,在系统管理——Kibana——索引模式

输入winlogbeat-*,点击下一步

下拉菜单里面选择@timestamp,点击创建

创建完成

返回发现里面,就能看到了。然后可以在搜索栏进行关键字搜索了。

有朋友可能对于创建索引格式不太理解,大致讲解一下,比如我这边用的是winlogbeat程序,创建索引的时候就使用winlogbeat-*语法,如果是logstash收集的日志,就使用logstas-*语法,类似的还有metricbeat-*,heartbeat-*,packetbeat-*等。

其他索引

由于是收集到的Windows系统日志,在可选字段里面还有很多其他字段可以添加,类似于我们在百度和Google搜索的时候使用的组合关键字,比如把id添加上去。

效果就是这样的

展开其中1条记录的内容格式

打开系统监控

默认是不打开的,点击打开就可以了。

要等20秒左右才能打开。

这边要解释一下为什么默认的索引状态是Green,而添加后的索引状态是Yellow。

查看了相关的文章和参考书上的说明之后,大致是这样的:由于我这边Elastic、Kibana、winlogbeat都安装在同一台机器上面(不要问我为什么,每个公司的架构不一样),Elastic有一个分片的概念,有点像我们的群集,索引有点像群集上的角色。也就是说系统提示我们群集目前是有单点故障风险的,需要我们引起注意,所以有的文章会把2台Elastic搭建成为群集模式来实现索引的高可用。这个概念我们运维人员了解一下就可以了,一般情况下索引目录不会很多的。

Windows 版ELK教程就到这里。

顺便吐槽一下市面上出版的ELK相关的书籍很烂,都没有入门级的书,讲的太高端了,完全看不懂。安装和使用都要使用者一步一步摸索着来,ELK是好东西,希望有学者或者是业内人士给我们运维人员(不是开发哦)出一些实实在在的好书。

下一篇:CentOS 7 部署ELK .3.2教程,敬请期待。Coming Soon……