当前位置:  首页>> 技术小册>> ElasticSearch零基础到实战

一、概述

在本文中,我们将介绍如何使用ElasticSearch、Logstash和Kibana(ELK)搭建一个完整的日志管理系统。ELK是一个非常流行的日志管理工具,可以帮助我们快速地收集、存储、检索和分析日志数据。通过使用ELK,我们可以轻松地管理大量的日志数据,并且可以非常方便地查找和定位异常信息,以及监控系统的性能和稳定性。

二、ELK架构

ELK架构由ElasticSearch、Logstash和Kibana三个开源工具组成。其中,ElasticSearch是一个分布式搜索引擎,可以用来存储和检索大量的数据;Logstash是一个数据收集和转换工具,可以将不同来源的数据进行格式化、转换和过滤;而Kibana则是一个数据可视化工具,可以将存储在ElasticSearch中的数据进行可视化展示和分析。

三、安装和配置

安装Java
在安装ELK之前,需要先安装Java。在Linux系统上,可以使用以下命令安装Java:

  1. sudo apt-get update
  2. sudo apt-get install default-jre

安装ElasticSearch
在安装ElasticSearch之前,需要先添加ElasticSearch的APT源。可以使用以下命令添加APT源:

  1. wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  2. echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
  3. sudo apt-get update

添加APT源之后,就可以使用以下命令安装ElasticSearch:

  1. sudo apt-get install elasticsearch

安装完成之后,可以使用以下命令启动ElasticSearch:

  1. sudo systemctl start elasticsearch

启动之后,可以使用以下命令检查ElasticSearch是否已经成功运行:

  1. curl -X GET "localhost:9200"

如果返回了类似于以下的信息,则说明ElasticSearch已经成功运行:

  1. {
  2. "name" : "node-1",
  3. "cluster_name" : "elasticsearch",
  4. "cluster_uuid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  5. "version" : {
  6. "number" : "7.0.0",
  7. "build_flavor" : "default",
  8. "build_type" : "deb",
  9. "build_hash" : "b7e28a7",
  10. "build_date" : "2019-04-05T22:55:32.697037Z",
  11. "build_snapshot" : false,
  12. "lucene_version" : "8.0.0",
  13. "minimum_wire_compatibility_version" : "6.7.0",
  14. "minimum_index_compatibility_version" : "6.0.0-beta1"
  15. },
  16. "tagline" : "You Know, for Search"
  17. }

安装Logstash
在安装Logstash之前,需要先添加Logstash的APT源。可以使用以下命令添加APT源:

  1. wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  2. echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
  3. sudo apt-get update

添加APT源之后,就可以使用以下命令安装Logstash:

  1. sudo apt-get install logstash

安装完成之后,可以使用以下命令启动Logstash:

  1. sudo systemctl start logstash

安装Kibana
在安装Kibana之前,需要先添加Kibana的APT源。可以使用以下命令添加APT源:

  1. wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  2. echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
  3. sudo apt-get update

添加APT源之后,就可以使用以下命令安装Kibana:

  1. sudo apt-get install kibana

安装完成之后,可以使用以下命令启动Kibana:

  1. sudo systemctl start kibana

启动之后,可以使用以下命令检查Kibana是否已经成功运行:

  1. curl -X GET "localhost:5601"

如果返回了类似于以下的信息,则说明Kibana已经成功运行:

  1. <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><meta name="description" content="Kibana"><link rel="icon" href="/favicons/favicon.ico"><link rel="stylesheet" href="/built_assets/dlls/vendors.style.css"><link rel="stylesheet" href="/built_assets/css/kbn-ui-shared-deps.css"><link rel="stylesheet" href="/built_assets/css/kbn-ui-shared-deps-dark.css"><link rel="stylesheet" href="/built_assets/css/kbn-ui-shared-deps-light.css"><link rel="stylesheet" href="/built_assets/css/kbn-ui-framework-deps.css"><link rel="stylesheet"
  2. ......此入省略多余代码

配置Logstash和Kibana
完成以上步骤后,就可以开始配置Logstash和Kibana了。Logstash的配置文件位于/etc/logstash/conf.d目录下,可以使用以下命令打开该目录:

  1. cd /etc/logstash/conf.d

在该目录下,可以创建一个名为logstash.conf的文件,并添加以下内容:

  1. input {
  2. file {
  3. path => "/var/log/nginx/access.log"
  4. start_position => "beginning"
  5. }
  6. }
  7. filter {
  8. grok {
  9. match => { "message" => "%{COMBINEDAPACHELOG}" }
  10. }
  11. date {
  12. match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  13. }
  14. }
  15. output {
  16. elasticsearch {
  17. hosts => ["http://localhost:9200"]
  18. index => "nginx-access-%{+YYYY.MM.dd}"
  19. }
  20. }

该配置文件定义了一个输入源(input),该输入源从/var/log/nginx/access.log文件中读取数据。接着,定义了一个过滤器(filter),该过滤器使用grok模式匹配access.log中的数据格式,然后将匹配的数据解析为多个字段。最后,定义了一个输出源(output),该输出源将数据发送到Elasticsearch中,数据的索引名称格式为nginx-access-YYYY.MM.dd。

这只是一个简单的例子,Logstash和Kibana有非常丰富的配置选项,可以根据实际需求进行配置。

配置Logstash后,需要配置Kibana以显示Logstash中的数据。可以使用以下命令打开Kibana的配置文件:

  1. sudo nano /etc/kibana/kibana.yml

找到以下行:

  1. #server.host: "localhost"

将其注释掉,并添加以下行:

  1. server.host: "0.0.0.0"

这会将Kibana绑定到0.0.0.0地址,以便可以通过公网IP地址访问Kibana。

完成配置后,重新启动Logstash和Kibana:

  1. sudo systemctl restart logstash
  2. sudo systemctl restart kibana

使用Kibana可视化数据
在完成以上步骤后,就可以使用Kibana可视化Logstash中的数据了。在浏览器中输入服务器的公网IP地址和Kibana端口(默认为5601),即可打开Kibana的控制台。

在Kibana中,可以使用可视化工具创建各种图表和仪表盘,以便更直观地分析和监控系统日志。


该分类下的相关小册推荐: