目录
介绍
ELK的基础
安装
安装Elastic Search作为服务
安装Logstash作为服务
安装Kibana作为服务
安装WinLogbeat作为服务
安装Jenkins插件
配置Kibana以显示日志
兴趣点
介绍这是一篇基础文章,解释了使用Jenkins和Windows日志事件安装和配置ELK的详细信息。
ELK的基础ELK代表Elastic Search,Logstash和Kibana。
- Elastic Search是基于Lucene的搜索索引器。
- Logstash用于存储日志,并将其串行提供给Elastic Search。
- Kibana是搜索索引的UI表示,用于在Elastic Search中进行设置。
您可以直接在elastic search中加载数据。所有这三个工具都可以单独使用。但是最好将它们一起使用。
工具堆栈的问题之一是安全性。如果需要,您需要手动附加安全层。就像Kibana一样,可以直接访问。但是,如果需要用户授权(例如SSO,LDAP)或自己的授权,则需要附加代理进行授权。在本文的此处,我们将不作赘述。
您可以直接将日志加载到Elastic Search。对于本文档,我们将仅介绍基础知识。
安装链接下载工具。我们暂时不使用Docker。
- Elastic Search: https://www.elastic.co/downloads/elasticsearch download WINDOWS shaasc
- Logstash: https://www.elastic.co/downloads/logstash download ZIP shaasc
- Kibana: https://www.elastic.co/downloads/kibana download WINDOWS shaasc
- NSSM: https://nssm.cc/download download nssm 2.24 (2014-08-31)
- Winlogbeats: https://www.elastic.co/downloads/beats/winlogbeat WINDOWS 64-BIT shaasc
我们可以使用各种节拍,但是在本文档中,我们将仅使用filebeat和winlogbeat,我们将不对此进行详细介绍:
- https://www.elastic.co/downloads/beats
将所有zip文件解压缩到一个文件夹中。我在C:驱动器上将文件夹命名为ELK_Stack:
由于我们将使用Windows,因此我们需要这些应用程序作为服务运行。
安装Elastic Search作为服务Elastic Search带有一个批处理文件,该文件在命令提示符下运行时将安装服务。
cd /d C:\ELK_stack\elasticsearch\bin
elasticsearch-service.bat install.
C:\ELK_stack\elasticsearch\config有一个名为elasticsearch.yml的配置——其有默认值。默认情况下,elastic search 将在端口9200上运行。
这将在Windows中安装elastic search 作为服务:
安装Logstash作为服务解压缩文件后,在提取logstash的同一文件夹下创建一个名为Logstash_config.conf的文件。它可以在系统中的任何位置,但是为了更好的管理,我将其保留在此处。
C:\ELK_stack\logstash
该文件是JSON文件。
\\logstash_config.conf
input {
file {
path => "D:/jenkins_QA/jobs/**/log"
start_position => "beginning"
}
file{
path=>"\\s608109dl2nsqa\stars_qa\EE\ContinuousDeployment/*/*.log"
start_position => "beginning"
}
beats {
port => 5044
}
tcp {
id=>"Jenkins_Plugin"
port => 5045
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
stdout { codec => rubydebug }
}
然后打开命令提示符并运行以下命令:
cd /d C:\ELK_stack\logstash\bin
logstash-plugin install logstash-output-tcp
logstash-plugin install logstash-input-beats
记住我们下载了NSSM:
C:\ELK_stack\nssm\win64\nssm install
这将触发一个UI。如果要作为命令行运行,请随时尝试。
我在elastic search的依赖项中还有其他选项卡,但这是可选的。
现在转到服务管理器并启动服务。
Logstash现在正在运行,我们将在以后看到我们能做什么。
安装Kibana作为服务这很简单:
cd /d C:\ELK_stack\kibana\bin
dir kaibana.bat
Kibana.bat应该存在于:
C:\ELK_stack\nssm\win64\nssm install
这将触发一个UI。如果要作为命令行运行,请随时尝试。
您可以更改一些设置,但现在,我们将保持不变。
如果要查看配置,则位于以下位置:
C:\ELK_stack\kibana\config\kibana.yml
默认端口为5601,只要可以访问该端口,就可以从任何地方进行访问。理想情况下,应使用ngnix https://logz.io/blog/securing-elk-nginx/来运行kibana 。
但是我们不在这里详细介绍。
安装WinLogbeat作为服务将zip解压缩到其他服务器上,您将看到有一个Powershell脚本用于将winlogbeat作为服务安装。继续并运行install-service-winlogbeat.ps1。
安装该服务后,打开软件包中的配置文件winlogbeat.yml,并用Logstash的IP和您在logstash 配置中指定为beats 侦听器的端口修改第122行。在我们的例子中,我们使用5044。
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
转到服务并启动winlogbeat服务,它将开始将数据推送到logstash。
现在,您已经安装了logstash,并且想要将构建数据从Jenkins发送到Logstash。因此,首先安装:
- https://wiki.jenkins.io/display/JENKINS/Logstash+Pluginhttp:///pluginManager/installed
在这里,我们假设已经安装了Jenkins并运行其他插件。
现在,让我们在Jenkins中配置插件。
http:// /configure
这是我们在logstash_config.conf中为TCP输入配置的端口。
现在,所有的工作都将开始。
如果推送日志时出现问题,您将收到如下错误:
[logstash-plugin]: Failed to send log data: :5045.
[logstash-plugin]: No Further logs will be sent to : 5045.
java.net.ConnectException: Connection refused: connect
配置Kibana以显示日志
http://localhost:5601/app/kibana#/home?_g=()
一旦您看到了logstash的索引,我们就可以创建一个索引模式,以便我们获得期望的数据:
因此在索引名称中,输入logstash- *之类的内容。
现在,如果您转到仪表板,将会看到类似以下内容:
我在各个站点遇到的主要学习之一——有人提到已经安装了许多logstash。当我运行命令logstash-plugin list时,这总是给我一个巨大的列表。但是在我没有安装filebeats插件和tcp-output插件之前,无论我尝试什么,我都无法使它工作。现在,我的所有Jenkins构建日志都可以通过适当的搜索在Kibana中看到。