平时查看错误日志,都是登录到服务器,然后用命令进行查看,不是很好的定位问题,决定搭建一个ELK的日志查看平台。ELK是Elasticsearch、Logstash、Kibana三个的简称。Elasticsearch是一个分布式的实时搜索引擎,Logstash是一个日志的收集器,Kibana是在浏览器端用于展示的可视化工具。将他们三个结合起来,可以用于日志的可视化分析,大体功能如下图:

到官网下载ES的安装包,这里我下载的是5.5.0的版本,然后进行解压安装:
- unzip elasticsearch-5.5.0.zip
- cd /elasticsearch-5.5.0
- ./bin/elasticsearch -d (加上-d参数表示后台启动ES)
访问http://localhost:9200/,显示如下版本信息,说明安装成功
{"name" : "dv8zjAU","cluster_name" : "elasticsearch","cluster_uuid" : "vmNdDKGoTBy2w-tlqd8jtA","version" : {"number" : "5.5.0","build_hash" : "260387d","build_date" : "2017-06-30T23:16:05.735Z","build_snapshot" : false,"lucene_version" : "6.6.0"},"tagline" : "You Know, for Search"
}
- tar -zvxf logstash-5.5.1.tar.gz
- cd logstash-5.5.1
- touch simple.conf
- vi simple.conf
在simple.conf加入以下配置信息,其中hosts是ES的安装地址和端口号。ES是通过9200提供HTTP的服务,ES节点间的TCP通信是通过9300端口
input {tcp {port => 4560codec => json_lines}
}output {stdout {codec => rubydebug}elasticsearch {hosts => ["localhost:9200"]index => "logstash-test"}
}
使用刚刚的simple.conf配置文件启动Logstash
- ./bin/logstash -f simple.conf
解压Kibana
- tar -zvxf kibana-5.5.0-linux-x86_64.tar.gz
修改kibana.yml,监听ES的地址
- cd kibana-5.5.0-linux-x86_64/config
- vi kibana.yml
加入以下配置信息
server.port: 5601
server.host: "0.0.0.0" #修改监听地址,不然只能本机访问
elasticsearch.url: "http://localhost:9200"
后台启动kibana
- nohup ./bin/kibana &
访问http://localhost:5601,显示如下,说明安装kibana成功

pom.xml中添加Maven依赖
net.logstash.logback logstash-logback-encoder 4.8
在logback.xml添加配置,将项目日志输入到Logstash
192.168.2.102:4560
在项目启动打印日志,查看kibana控制台是否有日志输出
public static void main(String[] args) {logger.info("服务启动");logger.error("服务错误");logger.warn("系统警告");logger.info("服务结束启动");}
在kibana查看日志,搜索"服务"关键字查看日志信息

此时kibana服务器端会看到日志的打印信息
