ELK提供了一整套的解决方案,而且都是开源的整个,它们之间互相配合,可以很完美的和Kafka进行整合起来。
先来演示搭建LogStash的环境,LogStash下载地址为:https://www.elastic.co/cn/downloads/logstash。下载成功后,进行解压。在安装ELK之前,需要搭建Java的环境,JDK建议是1.8的版本。下载logstash-6.3.2-darwin-x86_64.tar.gz后,以及把logstash-6.3.2命名为logstash。下来配置环境变量,具体如下:
代码语言:javascript复制export LOGSTASH_HOME=/Applications/devOps/bigData/ELK/logstash
export PATH=$PATH:$LOGSTASH_HOME/bin
保存后,使用source .bash_profile命令使配置的变量立即生效。在控制台里面输入logstash -v就会显示具体的版本信息,具体如下:
下面通过具体的案例来演示LogStash的标准输入和标准输出的部分,编写LogStash的脚本来测试这部分,具体如下:
代码语言:javascript复制logstash -e 'input { stdin {} } output { stdout {}}'
输入如上脚本后,就会显示出如下的信息,具体如下:
代码语言:javascript复制Sending Logstash's logs to /Applications/devOps/bigData/ELK/logstash/logs which is now configured via log4j2.properties
[2021-06-12T16:07:11,975][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2021-06-12T16:07:12,382][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.3.2"}
[2021-06-12T16:07:14,196][INFO ][logstash.pipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
[2021-06-12T16:07:14,290][INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x4357750c sleep>"}
The stdin plugin is now waiting for input:
[2021-06-12T16:07:14,342][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2021-06-12T16:07:14,519][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
在PostMan测试工具里面请求http://localhost:9600/,就会显示出地址以及版本信息,如下所示:
然后在控制台输入一个业务数据,如Hello LogStash,就会显示如下的具体信息:
输出的内容就会显示时间戳信息,host的地址,以及message。在Mac的系统中,按下control c就可以安全退出。
下面开始安装和配置ElasticSearch,它是一个高度可扩展性的开源全文检索和分析引擎,可以快速实时的存储数据,也可以搜索和分析大量的数据集。下载成功后进行解压以及重命名,然后在环境变量里面配置它,具体为:
代码语言:javascript复制export ES_HOME=/Applications/devOps/bigData/ELK/elasticsearch
export PATH=$PATH:$ES_HOME/bin
下来需要配置系统文件elasticsearch.yml,具体内容为:
代码语言:javascript复制#集群唯一名称
cluster.name: elasticsearch
#节点唯一名称
node.name: es1
#数据存储路径
path.data: /Applications/devOps/bigData/ELK/elasticsearch/data
#日志存储路径
path.logs: /Applications/devOps/bigData/ELK/elasticsearch/logs
#访问地址设置
network.host: 0.0.0.0
#外网浏览器访问端口
http.port: 9200
#转发端口
transport.tcp.port: 9301
#设置集群最小master节点
discovery.zen.minimum_master_nodes: 1
#设置当前节点是否为master
node.master: true
#设置当前节点是否作为数据节点
node.data: true
#设置为false,防止系统级别出错
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
配置完成后,进行安装插件X-Pack,该插件主要用来监控集群,可以和ElasticSearch进行集成,该插件包含了权限管理,监控,报表以及可视化的信息。在线安装的命令为:
代码语言:javascript复制elasticsearch-plugin install x-pack
执行如上的命令后,就会进行在线的下载以及在线的安装,具体如下:
填写y继续,就会显示如如下的信息:
插件安装完成后,在ElasticSearch的bin目录下,就会有x-pack的目录,进入后,执行如下命令初始化用户的登录密码,主要初始化elastic,kibana和logstash_system的用户名和密码,执行命令前需要启动ElasticSearch,见启动后的信息:
启动ElasticSearch集群后,使用jps命令来查看,具体如下:
也可以在浏览器输入http://localhost:9200/来查看(用户名elastic)
下来设置初始化密码信息,具体如下:
下来演示使用HTTP的交互模式来创建索引,如索引名称为es,具体如下:
查看创建的索引信息:
下面演示往新创建的索引里面添加数据,具体为:
调用后,返回的响应数据具体为:
下面来安装Kibana,它是一个开源的分析和可视化平台,和ElasticSearch整合后,查看和存储ElasticSearch索引中存储的数据,使用它可以很轻松的实现数据分析功能,以及数据可视化的展示。下载以及解压后并且加入到环境变量中,具体为:
代码语言:javascript复制export KIBANA_HOME=/Applications/devOps/bigData/ELK/kibana
export PATH=$PATH:$KIBANA_HOME/bin
下来也是需要安装x-pack的插件,安装的命令为:
代码语言:javascript复制kibana-plugin install x-pack
执行后,输出的信息如下:
代码语言:javascript复制Attempting to transfer from x-pack
Attempting to transfer from https://artifacts.elastic.co/downloads/kibana-plugins/x-pack/x-pack-6.1.1.zip
Transferring 269804609 bytes....................
Transfer complete
Retrieving metadata from plugin archive
Extracting plugin archive
Extraction complete
Optimizing and caching browser bundles...
Plugin installation complete
下来需要在config的目录下修改配置文件kibana.yml,内容具体为:
代码语言:javascript复制#浏览器访问WEB服务器端口
server.port: 5601
#浏览器访问WEB服务主机或者IP
server.host: "localhost"
#用于所有查询的Elasticsearch实例的URL
elasticsearch.url: "http://localhost:9200"
#用于访问ElasticSearch的用户名
elasticsearch.username: "elastic"
#用于访问ElasticSearch的用户名的密码
elasticsearch.password: "elastic"
配置完成后,下来启动以及验证Kibana,在bin目录下执行./kibana ,就会输出如下的信息:
在浏览器访问http://localhost:5601/login?next=/#?_g=(),显示登录页面:
输入账户和密码,就会进入到Kibana的首页,如下所示:
在ManageMent里面就可以看到创建的用户信息,如下所示:
在Monitoring里面就可以看到ElasticSearch集群的资源信息: