一、ELK介绍
1.1 elasticsearch
1.1.1 elasticsearch介绍
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
1.2 logstash
1.2.1 logstash 介绍
LogStash由JRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVM)上。不同于分离的代理端(agent)或主机端(server),LogStash可配置单一的代理端(agent)与其它开源软件结合,以实现不同的功能
1.3 kibana
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。
二、ELK安装
介绍windows 下的elk安装
下载地址 https://www.elastic.co/downloads
2.1 elasticsearch安装
下载好文件,进入bin目录 执行 elasticsearch.bat 即可,如下图
默认端口是9200,安装成功后浏览器输入 http://localhost:9200 就能看到下图结果(我自己端口改成了9202)
2.1.1 elasticsearch-head-master
这是一个 elasticsearch 可视化的一个插件 ,5.0版本 安装方法参考http://blog.csdn.net/yx1214442120/article/details/55102298
2.2 logstash 安装
首先建立一个收集数据的配置取名conf,在下好的logstash的bin目录下。
下面内容仅仅是为了例子的。。logstash还是比较复杂的,。大家可以根据自己文件规则 进行配置,自行网上查。
input {
file {
type => "json"
#指定监听的文件路径,注意必须是绝对路径
path => "E:\logstash-5.4.1\logstash-5.4.1\bin\3.txt"
start_position => beginning
}
}
filter {
#由于我的例子存储的是json字符串
json{
source => "message"
}
}
output {
#将数据输出到 elasticsearch
elasticsearch {
hosts => ["192.168.3.172:9202"]
index => "logstash-nginx-access-%{+YYYY-MM}"
document_type => "%{type}"
flush_size => 20000
idle_flush_time => 10
sniffing => true
template_overwrite => true
}
}
3.txt 里面的数据
{"Id":"1","Name":"zhangsan6","Class":"44","age":25}
{"Id":"1","Name":"zhangsan6","Class":"44","age":25}
{"Id":"1","Name":"df a 地方","Class":"44","age":25}
{"Id":"1","Name":"zhangsan6","Class":"44","age":25}
{"Id":"1","Name":"地方地方大师傅发士大夫士大夫","Class":"44","age":25}
{"Id":"1","Name":"zhangsan6","Class":"44","age":25}
{"Id":"1","Name":"zhangsan6","Class":"44","age":25}
以上步骤都做好,,我们就可以启动他了
如果顺利的话,我们可以通过的 elasticsearch-head-master看到数据
2.3 kibana 安装
相对简单 下面命令即可
然后访问localhost:5601(如果你elasticsearch默认端口是9200)
否则得改config目录下kibana.yml里面的端口数据