您当前的位置: 首页 >  windows

寒冰屋

暂无认证

  • 0浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Beats与Jenkins日志读取在Windows上的基本实现

寒冰屋 发布时间:2019-12-10 21:48:53 ,浏览量:0

目录

介绍

ELK的基础

安装

安装Elastic Search作为服务

安装Logstash作为服务

安装Kibana作为服务

安装WinLogbeat作为服务

安装Jenkins插件

配置Kibana以显示日志

兴趣点

介绍

这是一篇基础文章,解释了使用Jenkins和Windows日志事件安装和配置ELK的详细信息。

ELK的基础

ELK代表Elastic Search,Logstash和Kibana。

  1. Elastic Search是基于Lucene的搜索索引器。
  2. Logstash用于存储日志,并将其串行提供给Elastic Search。
  3. 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。

安装Jenkins插件

现在,您已经安装了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中看到。

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.1775s