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.1inlogstash.bat -f D:logstash-5.1.1configl
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中查找到收集过来的数据;