ELK的安装及简单使用

简介

ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都先后归于Elastic.co企业名下,故被简称为ELK协议栈。ELK主要用于部署在企业架构中,收集多台设备上多个服务的日志信息,并将其统一整合后提供给用户。

ELK架构

在ELK架构中,Elasticsearch、Logstash和Kibana三款软件作用如下:
1、Elasticsearch
Elasticsearch是一个高度可扩展的全文搜索和分析引擎,基于Apache Lucence(事实上,Lucence也是百度所采用的搜索引擎)构建,能够对大容量的数据进行接近实时的存储、搜索和分析操作。
2、Logstash
Logstash是一个数据收集引擎,它可以动态的从各种数据源搜集数据,并对数据进行过滤、分析和统一格式等操作,并将输出结果存储到指定位置上。Logstash支持普通的日志文件和自定义Json格式的日志解析。
3、Kibana
Kibana是一个数据分析和可视化平台,通常与Elasticsearch配合使用,用于对其中的数据进行搜索、分析,并且以统计图标的形式展示。
ELK的架构如下所示:

如上图所示,Logstash安装在各个设备上,用于收集日志信息,收集到的日志信息统一汇总到Elasticsearch上,然后由Kibana负责web端的展示。其中,如果终端设备过多,会导致Elasticsearch过载的现象,此时,我们可以采用一台Redis设备作为消息队列,以暂时缓存数据,避免Elasticsearch压力突发。

ELK优点

ELK架构优点如下:
1、处理方式灵活。 Elasticsearch是全文索引,具有强大的搜索能力。
2、配置相对简单。 Kibana的配置非常简单,Elasticsearch则全部使用Json接口,配置也不复杂,Logstash的配置使用模块的方式,配置也相对简单。
3、检索性能高。 ELK架构通常可以达到百亿级数据的查询秒级响应。
4、集群线性扩展。 Elasticsearch本身没有单点的概念,自动默认集群模式,Elasticsearch和Logstash都可以灵活扩展。
5、页面美观。 Kibana的前端设计美观,且操作简单。

安装

安装Java8

在安装Elasticsearch前,首先需要安装JAVA环境。
可以先执行以下命令查看是否安装:

java -version

下载地址:https://www.oracle.com/cn/java/technologies/javase-java-archive-javase6-downloads.html
选择jdk-6u45-windows-x64.exe下载,需要登录账号

配置环境变量,参考:http://www.884358.com/burpsuite-install/#xia_zai_bing_an_zhuangJDK_huan_jing

安装Elasticsearch 8.3.3

下载地址:https://www.elastic.co/cn/downloads/elasticsearch
文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/8.4/index.html

下载后解压压缩包,在config/elasticsearch.yml末尾添加:

ingest.geoip.downloader.enabled: false

然后修改如下配置:

network.host: 127.0.0.1
http.port: 9200

双击bin/elasticsearch.bat运行后,报错,再次打开elasticsearch.yml,修改:

xpack.security.enabled: false

双击elasticsearch.bat运行,浏览器访问127.0.0.1:9200,看到以下界面则说明安装成功:

安装Logstash8.3.3

下载地址:https://www.elastic.co/cn/downloads/logstash
下载后解压压缩包,进入bin目录,执行如下命令:

logstash -e "input{stdin{}} output{stdout{codec=>rubydebug}}"

在该命令中,调用了标准输入输出模块,可以使Logstash读取键盘输入内容,并将结果直接打印在屏幕上。

可以看到,Logstash已经将输入内容打印在了屏幕上,并且转化为了JSON格式。

安装kibana8.3.3

下载地址:https://www.elastic.co/cn/downloads/kibana
下载后解压压缩包,打开\config\kibana.yml文件,修改如下配置

server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "zh-CN"

运行bin目录下的kibana.bat。在浏览器输入127.0.0.1:5601,运行结果如下:

收集apache日志

步骤

用Logstash收集apache日志文件中内容,并输出至Elasticsearch,最后由kibana展示出来。

配置logstash

在logstash的config目录,新建apache.conf文件,内容如下:

input{
        file{
                path=>"E:/www/server/Apache24/logs/access.log"
                type=>"apache"
                start_position=>"beginning"
                stat_interval=>"5"
        }
}
output{
        elasticsearch{
                hosts=>["127.0.0.1:9200"]
                index=>"apachelog-%{+YYYY.MM.dd}"
        }
}

执行如下命令开始收集日志:

logstash.bat -f E:\www\server\elk\logstash-8.3.3\config\apache.conf

-f参数后为apache.conf文件的路径。注意:windows中的路径\不能写为/,否则会报错。

配置kibana

在左侧菜单中找到Stack Management

在索引管理中可以查看由logstash发送过来的数据:

如需要查看索引中的数据,还需要创建数据视图:

视图创建成功后,则可以在discover中查看了:

发表评论

邮箱地址不会被公开。 必填项已用*标注