ELK全称:ElasticSearch + LogStash + Kibana
图解:

LogStash
它可以流放到各自的服务器上收集Log日志,通过内置的ElasticSearch插件解析后输出到ES中。
ElasticSearch
这是一个基于Lucene的分布式全文搜索框架,可以对logs进行分布式存储,类似于hdfs
Kibana
所有的log日志都到ElasticSearch之后,我们需要给他展示出来,对吧? 这个时候Kibana就出手了,它可以 多维度的展示es中的数据。这也解决了用mysql存储带来了难以可视化的问题。
- 安装前需注意
主机需要已经有java8环境。
ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致!
- Elasticsearch安装
- 下载安装
下载、解压安装包:
下载地址:https://www.elastic.co/downloads/elasticsearch
Windows下载ZIP包
Linux下载TAR包
这个页面下点击past releases可下载历史版本(该页面只提供最新版)。
【注意】ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致!
-
- 运行
进入软件目录下,运行
Windows 下: bin\elasticsearch.bat
或者双击这个bat文件
Linux 下: bin/elasticsearch
Linux后台运行: setsid bin/elasticsearch
注:Linux下让软件在后台运行,即关掉当前的命令行窗口软件也不退出,在命令行前加setsid即可。比如:setsid bin/elasticsearch
-
- Linux下运行Elasticsearch的几个坑
- 不能用root用户运行
- Linux下运行Elasticsearch的几个坑
创建elasticsearch组,创建elasticsearch用户,切换到elasticsearch下操作
| [root@curly elasticsearch]# groupadd elasticsearch [root@curly elasticsearch]# useradd elasticsearch -g elasticsearch -p elasticsearch [root@curly elasticsearch]# chown -R elasticsearch:elasticsearch elasticsearch-6.3.0 [root@curly elasticsearch]# su elasticsearch [elasticsearch@curly elasticsearch]$ cd elasticsearch-6.3.0 |
-
-
- 文件操作数量受限
-
对应报错:
| [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] |
解决:
切换root,编辑文件:
vi /etc/security/limits.conf
加入以下两行:
| @elasticsearch hard nofile 65536 @elasticsearch soft nofile 65536 |
-
-
- 内存受限
-
对应报错:
| [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] |
切换root,编辑文件:
| vi /etc/sysctl.conf |
加入以下内容:
| vm.max_map_count=655360 |
切回命令行,执行:
| sysctl -p |
-
- 检验
用浏览器访问:http://[ip]:9200,其中[ip]是安装Elasticsearch的主机ip。显示像下面的json说明安装运行成功:
| { "name" : "node-0", "cluster_name" : "atscloud", "cluster_uuid" : "65agQRXqRHWX-i_G3jQ2Vw", "version" : { "number" : "6.2.2", "build_hash" : "10b1edd", "build_date" : "2018-02-16T19:01:30.685723Z", "build_snapshot" : false, "lucene_version" : "7.2.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" } |
-
- 一些配置项(可选)
若无其他状况,Elasticsearch按默认的配置即可完好运行,这是一些其他额外的配置
-
-
- 改端口
-
将ip设置为0.0.0.0可应对大部分情况。若外部还是无法访问,设置成本机的ip地址。(设置成本机ip可一步到位,解决问题,推荐)
network.host: 0.0.0.0
外部访问的端口,默认9200。
http.port: 9200
-
-
- 设置文件路径
-
Elasticsearch的默认存放数据(data)及日志(log)的位置在软件自身的目录下,可修改。比如:
Linux下:
path.data: /data/es-data
path.logs: /var/log/elasticsearch
Windows下:
path.logs: D:\elasticsearch\log
path.data: D:\elasticsearch\data
-
-
- 集群配置
-
Elasticsearch集群名字,同一个集群配成同一个名字
cluster.name: elasticsearch-cluster
集群节点名称,一般为本节点主机名。在一个集群中需唯一。
node.name: es-node-02
安装了Elasticsearch的主机的地址
discovery.zen.ping.unicast.hosts: ["192.168.10.44", "192.168.10.45", "192.168.10.46"]
集群搭建成功,访问[ip:port]/_cat/nodes,显示如下:
详细操作可参考:https://www.cnblogs.com/kevingrace/p/7693422.html
- Logstash安装
- 下载安装
下载、解压安装包:
下载地址:https://www.elastic.co/downloads/logstash
Windows下载ZIP包
Linux下载TAR.GZ包
这个页面下点击past releases可下载历史版本(该页面只提供最新版)。
【注意】ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致!
-
- 配置
在logstash的bin目录下,新建一个文件,不妨命名为:logstash-gardpay.conf
文件内容:
| input { tcp { host => "00.00.00.000" port => 9251 mode => "server" tags => ["gardpay-dev"] codec => json_lines } tcp { host => "00.00.00.00" port => 9252 mode => "server" tags => ["gardpay-test"] codec => json_lines } } output { elasticsearch { action => "index" hosts => "00.00.00.00:9200" index => "gardpaylog" } } |
配置项说明:
input – tcp 配置为绑定本机的port端口,作为一个日志服务器;
host填本机ip地址;
tags可为这个log服务打个标签,区分不同的环境,比如:开发环境"gardpay-dev",测试环境"gardpay-test";
output – elasticsearch是把logstash日志输出到elasticsearch,
hosts填elasticsearch的ip:端口,如:"00.00.00.00:9200"
index填在elasticsearch建立的索引名,如"gardpaylog"
其他按模板写即可。
-
- 运行
Windowns/Linux下,cd到logstash安装目录下,运行命令:
测试配置文件是否正确(由于配置文件是Ruby语言格式,可能发生语法错误):
Windows下: bin\logstash -t -f config\rh2-logstash.conf
Linux下: bin/logstash -t -f config/rh2-logstash.conf
运行服务:
Windows下: bin\logstash -f config\rh2-logstash.conf
Linux下: bin/logstash -f config/rh2-logstash.conf
Linux后台运行: setsid bin/logstash -f config/rh2-logstash.conf
-
- 验证
logstash并不容易验证,等ELK搭好后,运行程序,做一个整体上的验证即可。
- Kibana安装
- 下载安装
下载、解压安装包:
下载地址:https://www.elastic.co/downloads/logstash
Windows下载WINDOWS包
Linux下载LINUX 64-BIT包
这个页面下点击past releases可下载历史版本(该页面只提供最新版)。
【注意】ELK,即Elasticsearch、Logstash、Kibana三个软件的版本必须一致!
-
- 配置
配置文件位置:安装目录/config/kibana.yml
服务绑定端口,默认5601:
server.port: 5601
将ip设置为0.0.0.0可应对大部分情况。若外部还是无法访问,设置成本机的ip地址。
server.host: 0.0.0.0
配置Elasticsearch地址
elasticsearch.url: "http://localhost:9200"
-
- 运行
进入软件目录下,运行
Windows 下: bin\kibana.bat
或者双击这个bat文件
Linux 下: bin/kibana
Linux后台运行: setsid bin/kibana
-
- 验证
在浏览器,打开http://[ip]:5601,其中[ip]指kibana部署所在的主机地址,出现以下界面,说明安装成功。
- 结束 - ELK简要使用指南
至此,整个ELK服务环境搭建完成。
可以在java程序中把logback的logstash插件指向logstash中input的地址和端口,运行程序,输出log。
在浏览器kibana的界面,选择索引gardpaylog(刚才在logstash中配置的),即可看到日志:
点击图中的左上角的红框选择gardpaylog就可以查看gardpay的日志。右上角可以选择日志时间段
不同等级的log:
选择不同的标签(开发、或测试环境标识符,刚才在logstash中配置的tags):
模糊查询英文单词时,记得不确定的地方带*号:
1550

被折叠的 条评论
为什么被折叠?



