ELK 日志分析
============================================================================
ELK windows安装配置
1.下载软件
Elasticsearch: https://download.elasticsearch.org/...p/elasticsearch/2.0.0/elasticsearch-2.0.0.zip
Logstash: https://download.elastic.co/logstash/logstash/logstash-2.0.0.zip
Kibana: https://download.elastic.co/kibana/kibana/kibana-4.2.0-windows.zip
分别解压下载的软件,elasticsearch,logstash,kibana 可以放在一个统一文件夹下
安装jdk就不说了
版本不一致可能会遇到问题,初学的话,可以暂时先用这三个版本
2.Elasticsearch配置和安装
cd到Elasticsearch文件夹的bin目录下
cmd 运行 service install,会提示安装成功
cmd 运行 service manager 会弹出服务管理界面,可以设置自动启动,并启动之。
浏览器访问:127.0.0.1:9200 ,出现成功的json
配置和安装head插件,详见:http://blog.csdn.net/u010558660/article/details/52413362
http://localhost:9200/_plugin/head/
3.logstash配置
配置:
cd 到logstash文件夹的下bin目录,创建目录和文件:config/log4j_to_es.conf
内容如下:
input {
log4j {
mode => "server"
host => "127.0.0.1"
port => 4567
type => "log4j"
}
#stdin { } console input
}
filter {
#Only matched data are send to output.
}
output {
#stdout {} console output
elasticsearch {
action => "index" #The operation on ES
hosts => "localhost:9200" #ElasticSearch host, can be array.
index => "applog2" #The index to write data to.
}
}
启动:
cd到logstash文件夹下bin目录
logstash.bat agent -f config/log4j_to_es.conf
4.kibana配置和安装
解压kibana进入bin目录,执行kibana即可运行。
默认是从localhost:9200读入数据,并监听5601端口,所以在浏览器中运行localhost:5601即可显示。
打开页面,输入index 名称applog2(前面logstash output配置的),然后点击create,完成后,
在顶部导航栏点击Discover,如下,如果没有日志,可以调整右上角的时间跨度即可。这样就配置好了Kibana
5.在控制面板,启动之前安装的三个服务
测试:
log4j config:
log4j.rootLogger=debug,stdout,logstash
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p %t %c : %m%n
# logstash
log4j.appender.logstash=org.apache.log4j.net.SocketAppender
log4j.appender.logstash.port=4567
log4j.appender.logstash.remoteHost=127.0.0.1
注意:port与上面logstash input的配置保持一致
test class:
import org.apache.log4j.Logger;
public class TestELK {
private static final Logger LOGGER = Logger.getLogger(TestELK.class);
public static void main(String[] args) throws Exception {
for (int i=0; i<10; i++) {
LOGGER.error("Info log [" + i + "].");
}
}
}
可能遇到的问题:
1.版本问题:
Error: [query_phase_execution_exception] Result window is too large, from + size must be less than or equal to
初学先用elasticsearch-2.0.0.zip/logstash-2.0.0.zip/kibana-4.2.0-windows.zip
2.default index
Error: Please specify a default index pattern
KbnError@http://localhost:5601/bundles/commons.bundle.js:51514:21
将配置文件kibana.yml中下面一项的配置放开:
kibana.index: ".kibana"
参考:
http://www.tuicool.com/articles/YR7RRr
http://doc.okbase.net/%E5%A6%82%E8%8B%A5_%E6%99%B4/archive/200378.html
http://www.cnblogs.com/fangjian0423/p/logstash-elasticsearch-build.html