首页 > 代码库 > ELK简单使用

ELK简单使用

原作者:http://www.cnblogs.com/snidget/p/6269383.html
ELK
ELK是什么?
Elasticsearch
LogStash
Kibana
 
 
1,简单的安装
我采用的是本地window环境;
下载的包如下:
 
首先安装的是jdk8,安装完成之后,设置路径,
 
增加一个系统变量 JAVA_HOME 值为安装的jdk目录;
编辑系统变量 PATH 在值的末尾添加 ;%JAVA_HOME%/bin
 
打开命令行窗口,输入 java -version; 看看是否安装成功;
 
输入输出的版本号是1.8开头的,则jdk8环境安装完成;
 
elk的最新版本都是依赖的jdk1.8
 
 
然后安装的是elasticResearch;
直接解压到某个目录
 
 
elasticSearch 是一个分布式的,支持REST风格的搜索和分析工具。
 
 
这次什么配置都不用更改,使用它的默认配置,
打开命令行窗口,把bin目录下的 elasticsearch.bat 拖拽到命令行窗口,即可启动;
 
从命令行输出可以看到,已经成功的启动了,开启了两个端口 9200,9300
9200是 httpserver,可以通过浏览器直接访问到。
9300是 TransportService, clusterService ,是交换服务和集群服务,集群节点编号0;
 
可以看到这个 elasticSearch的集群信息;
 
先不去详细研究,把基础环境搭建起来再看。
接下来,安装kibana;
 
这是一个把数据边的可视化,并且提供一个导航查询的工具。看里面的文档结构,基于nodejs写得;
配置kibana;英文注释写的很清楚;
打开命令行窗口,把bin下面的 kibana.bat 的拽到命令行窗口下,即可运行kibana;并且链接上了elastic;
打开 127.0.0.1:5601之后会要先配置索引,选择默认的即可;
然后即可查询;
 
最后安装的是logstash
这是一个日志收集工具, 分成四步,收集,过滤,转换,输出;
 
首先需要配置好 logstash
input { stdin { } }
 
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
 
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
 
 
主要配置了一个message的格式,和时间戳的格式;
 
使用脚本启动 D:\logstash-5.1.1\bin\logstash.bat -f D:\logstash-5.1.1\config\l
ogstash.conf
 
即可把在命令行中输入的数据,传输到 elasticSearch ;
 
然后在kibana中展示出来;
 
 
最后一个简单的应用,把tomcat的异常日志和错误日志使用logstash,传输到 elasticSearch
 
配置文件:
input { 
file { 
path => "D:/tomcat/apache-tomcat-7.0.62/logs/localhost_access_log*.txt" 
type => "apache_access_log"
add_field => {"tomcatip" => "172.27.42.22"}

}

filter{
if [type] == "apache_access_log" {
grok{
match => { "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{URIPATHPARAM:request}(?: HTTP/%{NUMBER:httpversion})?|-)\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{NUMBER:responsetime} \"(?:%{URI:referrer}|-)\" %{QS:agent}" }
}
date{
match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
target => ["writetime"]
}
mutate {
convert => { 
"response" => "integer" 
"bytes" => "integer" 
"responsetime" => "integer" 
}
}
}
}

output {
if [type] == "apache_access_log" {
elasticsearch {
hosts => "127.0.0.1:9200"
index => "logstash-apacheaccesslog-%{+YYYY.MM.dd}"
}
}
}
然后在kibana中可以看到tomcat的访问日志数据,并可以对它的访问情况定制仪表盘,得到BI报表;
 
直接使用filebeat抓取tomcat的日志
修改配置文件:
 
 
使用命令启动:
然后可以在kibana中查找到收集过来的数据;

ELK简单使用