ELK集群的搭建以及Elasticsearchd api的简单使用

发布时间:2021-09-13 16:48:31 作者:chen
来源:亿速云 阅读:161

ELK集群的搭建以及Elasticsearch API的简单使用

目录

  1. 引言
  2. ELK简介
  3. ELK集群的搭建
  4. Elasticsearch API的简单使用
  5. 总结

引言

在现代的IT基础设施中,日志数据的收集、存储和分析变得越来越重要。ELK(Elasticsearch、Logstash、Kibana)是一套开源的日志管理解决方案,广泛应用于日志分析、监控和可视化等领域。本文将详细介绍如何搭建一个ELK集群,并展示如何使用Elasticsearch的API进行基本的操作。

ELK简介

Elasticsearch

Elasticsearch是一个分布式、RESTful风格的搜索和分析引擎。它能够快速地存储、搜索和分析大量数据。Elasticsearch的核心特性包括:

Logstash

Logstash是一个数据收集引擎,主要用于日志的收集、过滤和转发。它支持多种输入源(如文件、数据库、消息队列等),并可以将处理后的数据输出到多种目的地(如Elasticsearch、文件等)。

Kibana

Kibana是一个数据可视化工具,主要用于对Elasticsearch中的数据进行可视化展示。它提供了丰富的图表类型和交互式界面,帮助用户更好地理解和分析数据。

ELK集群的搭建

环境准备

在搭建ELK集群之前,需要准备以下环境:

Elasticsearch集群搭建

1. 下载并安装Elasticsearch

首先,从Elasticsearch官网下载最新版本的安装包:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz

解压安装包:

tar -xzf elasticsearch-7.10.0-linux-x86_64.tar.gz

2. 配置Elasticsearch

进入解压后的目录,编辑config/elasticsearch.yml文件,配置集群名称、节点名称、网络绑定地址等:

cluster.name: my-elasticsearch-cluster
node.name: node-1
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.1.1", "192.168.1.2"]
cluster.initial_master_nodes: ["node-1", "node-2"]

3. 启动Elasticsearch

在配置完成后,启动Elasticsearch:

./bin/elasticsearch

4. 验证集群状态

通过访问http://localhost:9200,可以查看Elasticsearch的集群状态:

{
  "name" : "node-1",
  "cluster_name" : "my-elasticsearch-cluster",
  "cluster_uuid" : "abc123",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "abc123",
    "build_date" : "2020-11-05T10:36:47.659Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Logstash配置

1. 下载并安装Logstash

从Logstash官网下载最新版本的安装包:

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0.tar.gz

解压安装包:

tar -xzf logstash-7.10.0.tar.gz

2. 配置Logstash

进入解压后的目录,创建一个配置文件logstash.conf,配置输入、过滤器和输出:

input {
  file {
    path => "/var/log/*.log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}

3. 启动Logstash

在配置完成后,启动Logstash:

./bin/logstash -f logstash.conf

Kibana配置

1. 下载并安装Kibana

从Kibana官网下载最新版本的安装包:

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-linux-x86_64.tar.gz

解压安装包:

tar -xzf kibana-7.10.0-linux-x86_64.tar.gz

2. 配置Kibana

进入解压后的目录,编辑config/kibana.yml文件,配置Elasticsearch的地址和Kibana的端口:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

3. 启动Kibana

在配置完成后,启动Kibana:

./bin/kibana

4. 访问Kibana

通过访问http://localhost:5601,可以进入Kibana的Web界面,进行数据可视化和分析。

Elasticsearch API的简单使用

索引操作

1. 创建索引

使用PUT请求创建一个新的索引:

curl -X PUT "localhost:9200/my_index" -H 'Content-Type: application/json' -d'
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  }
}'

2. 查看索引信息

使用GET请求查看索引的信息:

curl -X GET "localhost:9200/my_index"

3. 删除索引

使用DELETE请求删除一个索引:

curl -X DELETE "localhost:9200/my_index"

文档操作

1. 添加文档

使用POST请求向索引中添加一个文档:

curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
  "title": "Elasticsearch Guide",
  "content": "This is a guide to Elasticsearch."
}'

2. 获取文档

使用GET请求获取一个文档:

curl -X GET "localhost:9200/my_index/_doc/1"

3. 更新文档

使用POST请求更新一个文档:

curl -X POST "localhost:9200/my_index/_update/1" -H 'Content-Type: application/json' -d'
{
  "doc": {
    "content": "This is an updated guide to Elasticsearch."
  }
}'

4. 删除文档

使用DELETE请求删除一个文档:

curl -X DELETE "localhost:9200/my_index/_doc/1"

搜索操作

1. 简单搜索

使用GET请求进行简单的全文搜索:

curl -X GET "localhost:9200/my_index/_search?q=title:Elasticsearch"

2. 复杂搜索

使用POST请求进行复杂的搜索,支持多种查询条件:

curl -X POST "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "title": "Elasticsearch"
    }
  }
}'

聚合操作

1. 简单聚合

使用POST请求进行简单的聚合操作,如计算某个字段的平均值:

curl -X POST "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "size": 0,
  "aggs": {
    "avg_content_length": {
      "avg": {
        "field": "content.length"
      }
    }
  }
}'

2. 复杂聚合

使用POST请求进行复杂的聚合操作,如按某个字段分组并计算每组的平均值:

curl -X POST "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "size": 0,
  "aggs": {
    "group_by_title": {
      "terms": {
        "field": "title.keyword"
      },
      "aggs": {
        "avg_content_length": {
          "avg": {
            "field": "content.length"
          }
        }
      }
    }
  }
}'

总结

本文详细介绍了如何搭建一个ELK集群,并展示了如何使用Elasticsearch的API进行基本的操作。通过ELK,我们可以高效地收集、存储和分析日志数据,并通过Kibana进行可视化展示。Elasticsearch的强大搜索和聚合功能,使得我们能够从海量数据中快速提取有价值的信息。希望本文能够帮助读者更好地理解和应用ELK技术栈。

推荐阅读:
  1. NoSQL之redis(介绍+集群搭建)
  2. 【ELK】03、ES集群及ES查询

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

elk elasticsearchd

上一篇:Html5富文本编辑器的示例分析

下一篇:如何使用php foreach修改值

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》