弹性搜索Kibana - 安装为Windows服务

57

如何将 Elastic Kibana(它只是一个批处理文件)安装为 Windows 服务?

很可能需要依赖 ElasticSearch 进程(这假设我在同一台服务器上运行)。


5
使用 NSSM 链接 - Sangram Chavan
也许你应该更改“正确答案”的标志?看起来sc create不再起作用了,但nssm仍然可以。 - Christian
4个回答

72
下面的命令将创建一个名为“ElasticSearch Kibana 4.0.1”的服务,并使其依赖于ElasticSearch,以便它不会尝试过早启动。
sc create "ElasticSearch Kibana 4.0.1" binPath= "{path to batch file}" depend= "elasticsearch-service-x64" 

9
请注意,在 binpath= 后应有一个空格 - 这是 sc 实用程序命令行格式所必需的。如果没有空格,则命令无效,服务将无法创建。 - Alexander
3
"depend"参数(以及您想要传递给sc.exe的任何其他参数)也是如此。它们需要像[paramName] =“param value”这样进行格式化。 - Greg M.
7
如果你在 Powershell 中运行,请用 "sc.exe" 替换 "sc",即 sc.exe create ...(因为在 Powershell 中,sc 默认为 set-content 的别名)。 - Mark
6
我已经安装了一个服务,但它没有启动。有什么方法来排除这个问题吗? - Muhammad Rehan Saeed
24
我有相同的问题 - Kibana 启动并运行,但服务会出现错误,并被标记为“未运行”,即使 Kibana 仍在后台运行。 - samjudson
显示剩余6条评论

52

Kibana 4.6.1附带的kibana.bat文件不适合直接使用sc create(服务启动失败)。我像这样使用nssm

  1. nssm install kibana461
  2. UI:选择kibana.bat作为应用程序路径
  3. UI:在"I/O"选项卡上为标准输出和错误选择一个日志文件
  4. UI:在“Dependencies”选项卡上输入elasticsearch241(或者你叫它什么)
  5. UI:"安装服务"
  6. sc start kibana461

我在使用已接受答案中提到的“sc”时遇到了相同的问题。按照这里描述的使用NSSM的方法适用于我。 - Jobbo
server2016,kibana 5.3.4。无法使用sc,但可以使用nssm。完全不错! - Anders Juul
运行得非常好,所以感谢您。尽管您需要创建在I/O选项卡中指定的日志文件。空文件即可。如果没有这些文件,服务将无法启动。 - Frederik Struck-Schøning
我认为只需要存在文件夹即可,我从未创建过任何文件。 - Christian

14

我选择延迟开始,而不是建立依赖关系。

  1. 首先使用 sc 命令(来自 jhilden)。

    sc create "Elasticsearch Kibana 4.4.2" binPath= "C:\kibana-4.4.2-windows\bin\kibana.bat"
    
  2. 打开 services.msc 并找到新的服务。

  3. 右键点击该服务,选择 属性
  4. 更改为 自动 (延迟启动)
  5. 如果还没有这样做,请将 Elasticsearch 更改为 自动

services

这将确保当计算机启动时,Elasticsearch 将开始运行,且 Kibana 将在此之后不久启动(大约在此问题发布后2分钟左右)。


1
这有什么优势超过依赖关系? - Henry Ing-Simmons
1
我在我的回答中链接了一个相关的问题。其中关键部分是:“设置为自动的服务将在启动过程中启动,而设置为延迟启动的服务将在启动后不久启动。” 在我的情况下,我希望Elasticsearch在服务器启动时立即启动并专注于它,然后我们可以在启动后启动Kibana并分配资源。 - styfle
我正在遵循Kibana 7.6.2的这种方法,但是我收到了这个错误消息:“错误1053:服务未能及时响应启动或控制请求”。有什么想法吗? - Annie

9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接