Windows环境下ELK简单搭建记录
前言
ELK已经是一套成熟的日志解决方案,虽然出现了好久,今日才终于研究了一下,不过是在windows平台上安装的。
搭建步骤
- 下载软件
- 安装软件
- 修改配置文件
- 启动软件
- 集成测试
下载软件
首先从官网下载三个软件。我下载的是 6.2.3版本的,最好都统一,否则会出现小问题。官网地址:https://www.elastic.co/
安装软件
分别将上文中的ELK三个压缩包解压到相应的文件夹下。(我的电脑文件夹是C:/elk/)
由于logstash和kibana都需要配置elasticsearch的server 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处理日志中的json,output到elasticsearch和控制台。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的具体过程了。如有问题或者不当之处,欢迎留言咨询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?