我们在开发项目时会进行日志分析,那我们会遇到:
1、日志量太大如何归档;
2、文本搜索太慢怎么办;
3、如何多维度查询;
那么我们可以使用一套集中式日志管理系统,来提高我们管理日志的效率,那么ELK为我们提供了一套解决方案。
ELK由ElasticSearch(ES)、Logstash和Kiabana三个开源工具组成。
ES是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,可以对日志进行收集、分析、并将其存储供以后使用。
kibana也是一个开源和免费的工具,他Kibana可以为Logstash和ES提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。
可以在ELK官网 https://www.elastic.co/下载最新版本的工具安装包,Windows环境选择后缀为zip格式的下载。如遇下载速度慢或下载中途停止,可以采用VPN代理下载或者云服务器下载。
首先我们需要准备并安装Java环境
Java是ELK三软件依赖的运行环境,读者可以在Oracle官网获取最新版的Java版本,由于只是运行不是开发,所以也可以只下载JRE。安装完成后配置安装完成后,配置JAVA_HOME和JRE_HOME环境变量。执行如下命令成功:
C:\Users\Windows>java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
Elasticsearch安装并使用
由于Logstash服务依赖ES服务,Kibana服务依赖Logstash和ES,所以ELK的服务启动顺序为:ES->Logstash->Kibana,为了配合服务启动顺序,我们安装顺序和启动顺序保持一致。
image.png
现在我们启动Elasticsearch,我们去安装目录下的bin目录打开
elasticsearch.bat文件
image.png
这样我们就已经启动好了,然后去浏览器访问一下,出现这个界面说明启动成功
image.png
安装head插件
- 下载nodejs,点击nodejs官网,在LTS下选择对应版本下载,如下图:
-
CMD进入dos命令界面,执行node -v查看是否成功
image.png
3.执行 npm install -g grunt-cli 安装grunt ,-g代表全局安装,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号
image.png
4.然后我们去elasticsearch安装目录下的config去修改elasticsearch.yml文件,在文件中加入
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
5.启动ES服务,这个可以在serrvices.msc上启动,也可在bin目录下输入elasticsearch-service start启动。
6.把head的源码clone过来,在此之前需要在git官网安装git,然后在ES的bin目录下执行git clone git://github.com/mobz/elasticsearch-head.git。
7.然后去elasticsearch\bin\elasticsearch-head目录下的Gruntfile.js修改head插件源码,找到connect的地方,修改如下:
connect: {
server: {
options: {
port: 9100,
hostname: '*',
base: '.',
keepalive: true
}
}
}
8.在elasticsearch-head目录下运行
npm install
grunt server
9.去网页输入localhost:9100,可查看集群状态,至此ES成功安装。
image.png
安装使用Logstash
进入logstash文件里的bin目录,创建一个文件logstash.conf文件
主要意思就是设置一个写入地址,然后把收集的日志传到Elasticsearch中。
input {
file {
path => ["E:/ELK/logs/localhost_access_log.*.txt"]
start_position => "beginning"
}
}
filter {
date {
match => [ "timestamp" , "YYYY-MM-dd HH:mm:ss" ]
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
}
stdout {
codec => rubydebug
}
}
然后再bin目录下进行启动
输入logstash.bat -f logstash.conf
出现这个就算是成功了。
image.png
安装使用kibana
到下载好的kibana的bin目录下执行kibana.bat命令就可以了,然后看一下启动日志,出现这个就算是大功告成。
在浏览器输入http://localhost:5601
image.png
网友评论