在 Windows 7 上建立一个与互联网无关的 ELK(Elasticsearch + Logstash + Kibana)环境
背景:
在一些安全性要求严格的公司中,可能会限制互联网连接。即使在这样的环境下,我想使用ELK(Elasticsearch + Logstash + Kibana),所以我会记录下来。这个记录是参考了《如何在Windows服务器上安装Logstash与Kibana的IIS》。虽然这个记录中没有使用IIS,但大部分内容都是参考了该页面。
顺便一提,在我基本完成写备忘录后才注意到,除了无法直接下载文件和安装 Elasticsearch 插件之外,无论是在互联网连接下还是没有连接,步骤都没有差别……
安装
安装环境
-
- Windows 7 SP1 64bit 版
- ELK は C:\srv\ に配置する前提です。適宜読み換えてください。
准备
使用互联网连接环境下载以下文件,并以某种方式保存到目标计算机中:
– Java SE Development Kit 8
– jdk-8u45-windows-x64.exe
– Elasticsearch 1.6.0
– elasticsearch-1.6.0.zip
– Logstash 1.5.1
– logstash-1.5.1.zip
– Kibana 4.1.0
– kibana-4.1.0-windows.zip
– nssm 2.24 ※ 用于创建Windows服务的辅助工具
– nssm-2.24.zip
将保存的文件在以下的目录结构中展开。
运行Java 8安装程序进行安装。默认情况下,JDK将安装在C:\Program Files\Java\jdk1.8.0_45目录下。
C:\srv\
└ elasticsearch\
└ bin 等
└ kibana\
└ bin 等
└ logstash\
└ bin 等
└ nssm\
└ win64 等
安装Elasticsearch
将JDK的安装路径指定给环境变量JAVA_HOME。
通过控制面板→系统与安全→系统→系统详细设置→详细设置选项卡→环境变量按钮,按照这个路径找到系统环境变量的”新建”选项。
-
- 変数名: JAVA_HOME
- 変数値: C:\Program Files\Java\jdk1.8.0_45
输入”と”,然后按下 OK。
如果你不打算建立一个集群结构,那么请打开C:\srv\elasticsearch\config\elasticsearch.yml文件。
cluster.name: [任意のクラスタ名]
也许设置这个会很有帮助。此外,还可以通过仅使用 Elasticsearch 进行负载均衡。有关详细信息,请参阅《在多个 Elasticsearch 节点间进行负载均衡》。
当您打开命令提示符并转到 C:\srv\elasticsearch\bin 目录后,键入 elasticsearch 命令,Elasticsearch 将启动,您可以通过 http://localhost:9200 访问它。然而,您可以将其注册为 Windows 服务,并使 Elasticsearch 在操作系统启动时自动启动。
要将其注册为Windows服务,请使用管理员权限打开命令提示符,并转到C:\srv\elasticsearch\bin。
service install
敲击,如下所示即为成功。

因为在这个时候还没有启动。
service manager
打开服务管理器并点击启动按钮。另外,将启动类型设定为自动,在操作系统启动时自动启动。

让我们访问 http://localhost:9200 并确认是否存在 JSON 格式的响应。以上是 Elasticsearch 安装完成的步骤。
关于插件的安装,请参考页面底部的 Elasticsearch Plugin 安装部分。
Kibana 的安装
请在命令提示符下将Kibana移动到C:\srv\kibana\bin。
kibana
输入以上内容即可启动。访问 http://localhost:5601 即可立即使用Kibana。
要将Kibana注册为Windows服务,需要使用nssm工具。以管理员权限打开命令提示符,然后切换到C:\srv\nssm\win64目录中。
nssm install kibana
显示注册页面,并且
-
- Application タブ
Path: C:\srv\kibana\bin\kibana.bat
Startup directory: C:\srv\kibana\bin
Details タブ
Display name: Kibana
Startup type: Automatic
Dependencies タブ
This service depends on the following system components: elasticsearch-service-x64
输入以上内容并点击”安装服务”按钮,即可完成安装。
安装Logstash(Shipper)。
尽管本应优先在 Shipper 和 Elasticsearch 之间加入 Redis,但本笔记将省略此步骤。
同时,我们将创建一个名为 *.conf 的配置文件,将其放置在 C:\srv\logstash\config 目录中。
假设我们准备一个类似以下内容的logstash-sample.json文件。
input { stdin { } } output { elasticsearch { host => localhost } }
要启动Logstash,请打开命令提示符并切换到C:\srv\logstash\bin目录。
logstash agent -f ..\config\logstash-sample.conf
输入“と打つと”,会停留在以下画面中。

在这里,只需要尝试在命令提示符窗口中输入“test”,该内容也会反映在Elasticsearch中。为了确认,请访问http://localhost:9200/_search?pretty,将会返回以下类似的结果。
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "logstash-2015.06.18",
"_type" : "logs",
"_id" : "AU4HK92CYE_QZ5I4aXei",
"_score" : 1.0,
"_source":{"message":"test\r","@version":"1","@timestamp":"2015-06-18T14:56:31.678Z","host":"Dev-PC"}
} ]
}
}
请先按下Ctrl-C,然后输入Y,才能结束。
要将这些Shipper注册为Windows服务
logstash agent -f ..\config\logstash-sample.conf
准备一个名为run.bat的文件,将其保存在C:\srv\logstash\bin路径下。然后,使用具有管理员权限的命令提示符,切换到C:\srv\nssm\win64目录下。
nssm install logstash
展示注册页面。
-
- Application タブ
Path: C:\srv\logstash\bin\run.bat
Startup directory: C:\srv\logstash\bin
Details タブ
Display name: Logstash
Startup type: Automatic
Dependencies タブ
This service depends on the following system components: elasticsearch-service-x64
输入上述命令后,点击”安装服务”按钮,完成安装。
只需要一个选项,请将以下内容用中文翻译: ※根据此备忘录的配置文件,将标准输入设置为Input,即使将其服务化也没有意义,但是方法如下。请根据需要适时更改配置文件。
补充说明:更改Logstash的内存使用方法
要更改Logstash的使用内存,请打开C:\srv\logstash\bin\logstash.bat,并在SETLOCAL的底部进行修改。
set LS_MIN_MEM=256m
set LS_MAX_MEM=1g
请添加以下描述。
安装Elasticsearch插件.
要从本地文件安装插件,请打开命令提示符,然后切换到 C:\srv\elasticsearch\bin 目录。
plugin --url file:///path/to/plugin --install plugin-name
在终端上以某种方式下载 elasticsearch-head-master.zip 文件从 GitHub,并保存下来。
plugin --url file:///C:/Users/Dev/Downloads/elasticsearch-head-master.zip --install elasticsearch-head
输入 `http://localhost:9200/_plugin/head/` 就可以访问。关键是将路径中的反斜杠 “\” 替换为斜杠 “/”。