• ELK集群搭建、ES基本原理及DSL应用查询举例


    ELK集=集群搭建

    搭建:

    groupadd elasticsearch
    
    

    1、

    usermod -G elasticsearch es
    

    2、

    useradd es
    passwd es
    
    

    3

    4 elasticsearch.yml 修改成如下:

    # ======================== Elasticsearch Configuration =========================
    #
    # NOTE: Elasticsearch comes with reasonable defaults for most settings.
    #       Before you set out to tweak and tune the configuration, make sure you
    #       understand what are you trying to accomplish and the consequences.
    #
    # The primary way of configuring a node is via this file. This template lists
    # the most important settings you may want to configure for a production cluster.
    #
    # Please consult the documentation for further information on configuration options:
    # https://www.elastic.co/guide/en/elasticsearch/reference/index.html
    #
    # ---------------------------------- Cluster -----------------------------------
    #
    # Use a descriptive name for your cluster:
    #
    cluster.name: es-cluster
    #
    # ------------------------------------ Node ------------------------------------
    #
    # Use a descriptive name for the node:
    #
    node.name: node2
    #
    # Add custom attributes to the node:
    #
    #node.attr.rack: r1
    #
    # ----------------------------------- Paths ------------------------------------
    #
    # Path to directory where to store the data (separate multiple locations by comma):
    #
    path.data: /soft/es/elasticsearch-7.6.1/data
    #
    # Path to log files:
    #
    path.logs: /soft/es/elasticsearch-7.6.1/log
    #
    # ----------------------------------- Memory -----------------------------------
    #
    # Lock the memory on startup:
    #
    bootstrap.memory_lock: false
    #
    # Make sure that the heap size is set to about half the memory available
    # on the system and that the owner of the process is allowed to use this
    # limit.
    #
    # Elasticsearch performs poorly when the system is swapping the memory.
    #
    # ---------------------------------- Network -----------------------------------
    #
    # Set the bind address to a specific IP (IPv4 or IPv6):
    #
    network.host: 0.0.0.0
    #
    # Set a custom port for HTTP:
    #
    http.port: 9200
    #
    # For more information, consult the network module documentation.
    #
    # --------------------------------- Discovery ----------------------------------
    #
    # Pass an initial list of hosts to perform discovery when this node is started:
    # The default list of hosts is ["127.0.0.1", "[::1]"]
    #
    discovery.seed_hosts: ["master", "node1","node2"]
    #
    # Bootstrap the cluster using an initial set of master-eligible nodes:
    #
    cluster.initial_master_nodes: ["master"]
    #
    # For more information, consult the discovery and cluster formation module documentation.
    #
    # ---------------------------------- Gateway -----------------------------------
    #
    # Block initial recovery after a full cluster restart until N nodes are started:
    #
    #gateway.recover_after_nodes: 3
    #
    # For more information, consult the gateway module documentation.
    #
    # ---------------------------------- Various -----------------------------------
    #
    # Require explicit names when deleting indices:
    #
    #action.destructive_requires_name: true
    bootstrap.system_call_filter: false
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    chgrp -R es /soft/es
    chown -R es /soft/es
    

    索引分词

    安装IK分词器

    示例

    POST _analyze
    {
      "analyzer": "ik_smart",
      "text": "郑州人民医院第一附属中医院"
    }
    #ik_smart:会做最粗粒度的拆分
    

    分词结果:

    {
      "tokens" : [
        {
          "token" : "郑州",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "人民医院",
          "start_offset" : 2,
          "end_offset" : 6,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "第一",
          "start_offset" : 6,
          "end_offset" : 8,
          "type" : "CN_WORD",
          "position" : 2
        },
        {
          "token" : "附属",
          "start_offset" : 8,
          "end_offset" : 10,
          "type" : "CN_WORD",
          "position" : 3
        },
        {
          "token" : "中医院",
          "start_offset" : 10,
          "end_offset" : 13,
          "type" : "CN_WORD",
          "position" : 4
        }
      ]
    }
    

    term查询keyword字段。
     term不会分词。而keyword字段也不分词。需要完全匹配才可。

    ES数据管理

    创建索引

    PUT /es_db
    GET /es_db
    

    ELK响应结果

    添加文档

    PUT /es_db/_doc/1
    {
      "name": "张三",
      "sex": 1,
      "age": 25,
      "address": "广州天河公园",
      "remark": "java developer"
    }
    
    PUT /es_db/_doc/2
    {
      "name": "李四",
      "sex": 1,
      "age": 28,
      "address": "广州荔湾大厦",
      "remark": "java assistant"
    }
    

    查询文档

    格式: GET /索引名称/类型/id
    举例: GET /es_db/_doc/1
    

    查询结果:

    {
      "_index" : "es_db",
      "_type" : "_doc",
      "_id" : "1",
      "_version" : 1,
      "_seq_no" : 0,
      "_primary_term" : 1,
      "found" : true,
      "_source" : {
        "name" : "张三",
        "sex" : 1,
        "age" : 25,
        "address" : "广州天河公园",
        "remark" : "java developer"
      }
    }
    
    作者:薄荷加冰
    出处:https://www.cnblogs.com/huangjianping/
    版权:本文版权归作者和博客园共有
    转载:本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
  • 相关阅读:
    让你的网站(MAXCMS4_0)按地区、年份、语言生成分页面(已经修正)
    IPTV
    超简单,MAX普通版改为资源版方法
    Jmter操作数据库
    JMter中添加断点和关联
    jmeter返回报文乱码问题
    Jmter安装和配置
    JMter压力测试
    今天注册了
    不能登陆后删除Cookies解决
  • 原文地址:https://www.cnblogs.com/huangjianping/p/14990794.html
Copyright © 2020-2023  润新知