Windows环境下ELK简单搭建记录

 前言

  ELK已经是一套成熟的日志解决方案,虽然出现了好久,今日才终于研究了一下,不过是在windows平台上安装的。

搭建步骤

  • 下载软件
  • 安装软件
  • 修改配置文件
  • 启动软件
  • 集成测试

下载软件

  首先从官网下载三个软件。我下载的是 6.2.3版本的,最好都统一,否则会出现小问题。官网地址:https://www.elastic.co/

  

安装软件

  分别将上文中的ELK三个压缩包解压到相应的文件夹下。(我的电脑文件夹是C:/elk/)

  

  由于logstashkibana都需要配置elasticsearchserver url,所以先配置了elasticsearch。

  打开 elasticsearch-6.2.3/config 文件夹,打开elasticsearch.yml,配置一下基本信息:

cluster.name: <集群名称>
node.name: <当前节点名称>
network.host: <本机IP或者localhost>
http.port: 9200

  使用cmd命令安装elasticsearch service

  

  安装完成之后启动es服务。打开 host:9200 测试一下es是否安装成功。

  

  下面安装logstash。

  进入到 C:\elk\logstash-6.2.3\config 文件夹下新建log.config文件。这里我选择的输入源是file,然后filter处理日志中的jsonoutputelasticsearch和控制台。log.config文件配置如下:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
input {
  file {
     type => "log"
     path => "C:/logs/*.log"
     codec => plain{
          charset => "UTF-8"
    }
     start_position => "beginning"
  }
}
filter {
    ruby {
        将@timestamp转换为服务器时间,否则会是UTC时间(慢8个小时)
     code => "event.timestamp.time.localtime"
     }
     json{
        解析日志中的json格式到log字段,移除message字段和host
        source => "message"
        target => "log"
        remove_field => ["message"]
        remove_field => ["host"]
    }
}
 
output {
    stdout {
       codec => rubydebug
    }
    elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "logs"
    }
}

  下面打开cmd运行命令: 

  

  等待启动即可,如果报错了,看一下报错信息即可。logstash能正常解析日志。

  

  最后安装kibana。

  同样进入 config文件夹。配置kibana.yml 配置elasticsearch.url和host.name即可。端口默认是5601。

  cmd  bin/kibana 启动

    

  打开浏览器,正常出现kibana界面。

  到目前为止,ELK已经基本配置完了。

集成测试

  因为 logstash 配置的是采集 C:/logs文件夹下的日志文件。写一个简单的程序写入日志,日志内容如下:

  

  正如上文中logstash输出一样,logstash正常采集到了日志,并且解析了日志中的json串。下面打开elasticsearch看一下是否有数据

  

  如上图所示,是有数据的,最后使用kibana配置一下index即可。(由于kibana我也不太会用,所以不做详细介绍了)

总结

  总体而言安装过程中的配置过程还不是很难,但是要做到很复杂的日志处理或者其他的功能那么就需要下功夫了。这里我只是简单的做了一个搭建工作。想要深入了解ELK体系的使用还是需要下功夫的!!

  另外,logstash的  input  output  filter 配置还是有很多门道的,相当复杂,本来我试了用filebeat作为input,但是老是报 Invalid Frame Type 后来我就没在理他了,大概日志文件的编码不对吧(我也不清楚)。

  以上就是windows下搭建简单的ELK的具体过程了。如有问题或者不当之处,欢迎留言咨询。

  

 

posted @   丶Pz  阅读(506)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示

目录

目录

X
+

"大爷常来玩呀"

微信支付