来源:sevenyuan.cn
为什么要用ELK
简单画了一下架构图
ElasticSearch
Logstash
Kibana
整合Spring+Logstash
踩坑记录
在看大型网站的中间件技术,对于Elasticsearch有点兴趣,所以将配置流程记录了一下
为什么要用ELK
ELK实际上是三个工具,Elastricsearch + LogStash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但是随着业务量增加,数据量也会不断增加,所以使用ELK可以进行大数量的日志收集和分析
简单画了一下架构图
「在环境配置中,主要介绍Mac和linux配置,windows系统大致相同,当然,前提是大家都安装了JDK1.8及以上版本~」
[root@VM_234_23_centos ~]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
注意 高版本的ELK同样需要高版本的JDK支持,本文配置的ELK版本是6.0+,所以需要的JDK版本不小于1.8
ElasticSearch
Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic
Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
Mac安装和运行
安装:brew install elasticsearch
运行:elasticsearch
linux: 从Elasticsearch官方地址下载(也可以下载完,通过ftp之类的工具传上去),gz文件的话通过tar进行解压缩,然后进入bin目录下运行软件
[root@VM_234_23_centos app]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
[root@VM_234_23_centos app]# tar -zxvf elasticsearch-6.2.4.tar.gz
[root@VM_234_23_centos app]# cd elasticsearch-6.2.4
[root@VM_234_23_centos elasticsearch-6.2.4]# ./bin/elasticsearch
注意 在Linux机器上,运行elasticsearch需要一个新的用户组,文章最后有Elastic在linux安装的踩坑记录
Logstash
Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库”
中。(我们的存储库当然是 Elasticsearch。)-官方卖萌
「1. 软件安装」
Mac安装:
brew install logstash
linux安装:
[root@VM_234_23_centos app]# curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 137M 100 137M 0 0 5849k 0 0:00:24 0:00:24 --:--:-- 6597k
[root@VM_234_23_centos app]# tar -zxvf logstash-6.3.2.tar.gz
「2. 修改配置文件」
vim /etc/logstash.conf
「conf文件,指定要使用的插件,和配置对应的elasticsearch的hosts」
input {
stdin {
} }
output {
elasticsearch {
hosts => ["localhost:9200"] }
stdout {
codec => rubydebug }
}
「3. 运行」
bin/logstash -f logstash.conf
「4. 访问http://localhost:9600/」
{
"host": "=-=",
"version": "6.2.4",
"http_address": "127.0.0.1:9600",
"id": "5b47e81f-bdf8-48fc-9537-400107a13bd2",
"name": "=-=",
"build_date": "2018-04-12T22:29:17Z",
"build_sha": "a425a422e03087ac34ad6949f7c95ec6d27faf14",
"build_snapshot": false
}
「在elasticsearch日志中,也能看到logstash正常加入的日志」
[2018-08-16T14:08:36,436][INFO ][o.e.c.m.MetaDataIndexTemplateService] [f2s1SD8] adding template [logstash] for index patterns [logstash-*]
「看到这种返回值,表示已经成功安装和启动」
踩坑
在运行的那一步,有可能遇到内存分配错误
Java HotSpot(