前言
在日常开发中日志记录是一个非常重要的环节,如果程序出现问题日志可以作为一个找出错误的依据,如果数据丢失日志也可以作为找回数据的重要手段,
再者在系统优化的时候可以根据日志复盘出系统的瓶颈点等等。总之日志记录在开发过程中是非常有必要且非常只要的一环。所以搭建一套日志记录分析平台
是程序员非常有必要掌握的技能之一。在业内有一套非常成熟的日志记录分析的解决方案:elk(Elasticsearch,Logstash,Kibana)。
简介
elk是由Elasticsearch,Logstash,Kibana三大组件搭建而成的。
一、Elasticsearch 是一个实时的分布式搜索和分析引擎,
它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎,使用Java语言编写。
二、Logstash 是一个具有实时渠道能力的数据收集引擎。使用 JRuby 语言编写。其作者是世界著名的运维工程师乔丹西塞 (JordanSissel)且有一下特点
- a.几乎可以访问任何数据
- b.可以和多种外部应用结合
- c.支持弹性扩展
三、Kibana是一款基于 Apache开源协议,使用 JavaScript语言编写,为 Elasticsearch提供分析和可视化的 Web 平台。它可以在Elasticsearch的索引中查找,交互数据,并生成各种维度的表图。
在整个过程中Logstash 做数据的收集,Elasticsearch做数据的存储和检索,Kibana做数据的展示和分析,三者结合形成一个完整的链路。那么接下来本文将阐述搭建一套单机版的elk的全过程。
第一步:准备环境。
win 10 + jdk 1.8
注:linux系统步骤类似操作方式差不多
第二步:下载相关组件
下载地址:https://www.elastic.co/cn/products/
下载后解压到文件夹中
第三步:分别启动三大组件
Elasticsearch
打开elasticsearch文件夹进入config,修改elasticsearch.yml文件,加入如下配置:
cluster.name: es_cluster #集群名称
node.name: node0 #节点名称
path.data: F:\elk\elasticsearch-7.15.0\data #数据存储位置
path.logs: F:\elk\elasticsearch-7.15.0\logs #日志存储位置
network.host: 127.0.0.1 #host
http.port: 9200 #端口
http.cors.enabled: true #开启跨域,如下是跨域设置
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"
保存修改的配置文件,进入elasticsearch\bin 执行elasticsearch.bat启动脚本
Logstash
打开logstash文件夹进入config,添加log4j_to_es.conf文件,并在文件中添加如下配置内容:
input {
tcp { #输入入方式为tcp模式,监听127.0.0.1的4560端口收集日志
host => "127.0.0.1"
port => 4560
}
}
output {
stdout {#设置标准输出编码器为:rubydebug
codec => rubydebug
}
elasticsearch{ #将收集的日志输出到elasticsearch中
hosts => ["localhost:9200"] #elasticsearch的host,可以是一个或多个es集群
index => "log4j-%{+YYYY.MM.dd}" #elasticsearch索引名称
document_type => "log4j_type" #elasticsearch的文档类型
}
}
保存相应的配置文件,并且进入到logstash\bin目录创建logstash-log4j.bat 批处理脚本文件,在文件中添加如下脚本
logstash -f ..\config\log4j_to_es.conf
保存,执行logstash-log4j.bat启动Logstash
Kibana
打开kibana文件夹进入config,打开kibana.yml文件,并在文件中添加如下配置内容:
i18n.locale: "zh-CN" #国际化,设置为中文
保存,执行kibana.bat启动Kibana
第三步:测试elk
运行 -> cmd -> 输入 telnet 127.0.0.1 4560 连接到logstash ->hello word! 回车
接下来在Logstash 中可以看到收集日志,在elasticsearch可视化根据中可以看到我们输入的hello word!数据。
第四步:在Kibana中分析日志
在浏览器输入:http://localhost:5601/app/home#/
添加es索引到Kibana
日志分析
完成!
手执烟火以谋生,心怀诗意以谋爱。
慢品人间烟火色,闲观万事岁月长。
------致上山人