• Elasticsearch配置


    Elasticsearch本身就拥有良好的默认配置,所以需要配置的东西比较少。使用Cluster Update Settings API,可以修改正在运行中的集群的某些设置。

    配置文件应该包含特定节点的设置,比如node.name 和 paths,或者为了让节点能够加入某个集群做一些设置,比如 cluster.name  和  network.host 。

    配置文件位置

    Elasticsearch有两个配置文件:

    • elasticsearch.yml 用于配置elasticsearch
    • log4j2.properties 用于配置elasticsearch的日志。

    这些文件位于config目录中,默认位置是 $ES_HOME/config/ 。Debian和RPM软件包将config目录位置设置为 /etc/elasticsearch/ 。
    config目录位置可以通过path.conf设置更改,如下所示:

    ./bin/elasticsearch -Epath.conf=/path/to/my/config/

    下面我们来实际操作一下,以下是我使用的命令是:

    D:ProgramFileselasticsearch-5.4.1in>elasticsearch -Epath.conf=/Elasticsearch/config

    步骤如下:

    1、把bin目录下的config目录拷贝到D盘下的ElasticSearch下(具体看你想放在什么地方)

    2、为了查看我们的操作是否生效,修改elasticsearch.yml中的集群名称

    3、在命令提示符中输入 D:ProgramFileselasticsearch-5.4.1in>elasticsearch -Epath.conf=/Elasticsearch/config ,(如果输入之前elasticsearch已启动,建议关掉,否则可能不会成功)。

    4、执行完成,到浏览器中输入 http://localhost:9200/ ,如果返回结果中包含 "cluster_name" : "my-application", 说明修改配置文件路径成功了。

     配置文件格式

    配置格式为YAML以下是更改数据和日志目录的示例:

    path:
        data: /var/lib/elasticsearch
        logs: /var/log/elasticsearch

    也可以像下面这样设置:

    path.data: /var/lib/elasticsearch
    path.logs: /var/log/elasticsearch

    下面我们来实际操作一下:(data和log文件夹不需要提前创建好):

    1、配置elasticsearch.yml

     2、为了查看是否生效,我们用 D:ProgramFileselasticsearch-5.4.1in>elasticsearch -Epath.conf=/Elasticsearch/config 重新启动一下Elasticsearch,然后通过kibana添加一条数据。

    PUT /customer/external/1?pretty
    {
      "name": "John Doe"
    }

    3、接着看看data和log文件夹下是否有内容。以下是我的log和data。

    环境变量替换

    在配置文件中,可以通过  ${...}  符号引用环境变量,例如:

    node.name:    ${HOSTNAME}
    network.host: ${ES_NETWORK_HOST}

    提示输入配置

     对于一些设置,可能不想存储在配置文件中,可以使用 ${prompt.text}  或者 ${prompt.secret} ,此种方式不能再后台启动(比如使用服务运行或在后台运行),在启动elasticsearch的时候,会提示你输入。 ${prompt.secret} 不会把你输入的内容显示到终端上, ${prompt.text} 则可以。比如:

    node:
      name: ${prompt.text}

    当启动elasticsearch的时候,终端就会提示输入配置值:

    Enter value for [node.name]:

    下面我们来实际操作一下:

    1、配置elasticsearch.yml

    2、重启ES并键入my-node,

    D:ProgramFileselasticsearch-5.4.1in>elasticsearch -Epath.conf=/Elasticsearch
    /config
    Enter value for [node.name]: my-node

     3、查看效果,节点名称已变为my-node。

    {
      "name": "my-node",
      "cluster_name": "my-application",
      "cluster_uuid": "D6llECslTvm-P1EXbADXxw",
      "version": {
        "number": "5.4.1",
        "build_hash": "2cfe0df",
        "build_date": "2017-05-29T16:05:51.443Z",
        "build_snapshot": false,
        "lucene_version": "6.5.1"
      },
      "tagline": "You Know, for Search"
    }

    Elasticsearch使用Log4j2进行日志记录。可以使用 log4j2.properties 文件配置log4j2。Elasticsearch公开三个属性 ${sys:es.logs.base_path} ,${sys:es.logs.cluster_name} 以及 ${sys:es.logs.node_name} (如果明确设置node.name),可以在配置文件中引用,以确定日志文件的位置。

    • ${sys:es.logs.base_path} 将解析为日志目录;
    • ${sys:es.logs.cluster_name} 将解析为群集名称(默认配置中,用作日志文件名的前缀);
    • ${sys:es.logs.node_name} 将解析为节点名称(如果节点名称已显式设置)。

    例如,如果您的日志目录(path.logs)是 /var/log/elasticsearch ,您的群集被命名 production;

    那么 ${sys:es.logs.base_path} 将解析到 /var/log/elasticsearch ;

    ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log 将被解析到 /var/log/elasticsearch/production.log 。

    1. 采用RollingFile类型的Appender

    2. 把日志写到/var/log/elasticsearch/production.log

    3. 归档后的日志文件的文件名格式,其中"%d{yyyy-MM-dd-HH}"用来自动填充日期

    4. 基于时间进行日志的切割

    5. 切割的间隔为1小时, 即每小时进行一次日志的归档

    6. 修正时间范围, 从0时开始计数,日志轮换是以天作为分界(而不是相隔24小时)

     Log4j的配置解析会被无关的空格干扰; 如果您在此页面上复制并粘贴任何Log4j设置,或者输入任何的Log4j配置,请确保去掉前导和尾随空格。

    如果在 appender.rolling.filePattern 中追加.gz或者.zip后缀,那么当日志轮换的时候,旧的日志将会被压缩处理。

    如果要在特定时间段内保留日志文件,则可以使用带有删除操作的滚动策略。

     

    1、配置 DefaultRolloverStrategy

    2、配置 delete action处理回滚

    3、删除哪个目录下的日志归档文件

    4、回滚处理时适用的条件

    5、保留日志七天

    6、只删除超过7天的文件,如果它们与指定的glob匹配

    7、从基路径删除和glob  ${sys:es.logs.cluster_name}-* 匹配的文件,这是日志文件滚动到的glob;只会删除滚动的Elasticsearch日志,而不会删除弃用和缓慢的日志。感觉有点不通,把原文贴出来。

        
    Delete files from the base path matching the glob ${sys:es.logs.cluster_name}-*; this is the glob that log files are rolled to; this is needed to only delete the rolled Elasticsearch logs but not also delete the deprecation and slow logs

    可以加载多个配置文件(在这种情况下,它们将会被合并),只要它们被命名 log4j2.properties 并存放在Elasticsearch config目录下(只要它的祖先是此目录就行); 这对于插件记录日志很有用。

     logger  部分包含java包及其对应的日志级别。 appender 部分包含日志的储存位置。在Log4j documentation中可以找到有关如何自定义日志记录和 appender 的相关信息

    弃用日志

    除了常规日志记录功能之外,Elasticsearch还允许您启用对已弃用的日志记录。例如,如果将来需要迁移某些功能,则可以提前确定。默认情况下,在WARN级别(在此级别,所有弃用日志消息都会被输出)启用弃用日志记录。

    logger.deprecation.level = warn

    这将在您的日志目录中创建每日滚动弃用日志文件。定期检查这个文件,特别是当你打算升级到一个新的主要版本。

    默认日志记录配置已将弃用日志的滚动策略设置为1 GB后滚动和压缩,并保留最多五个日志文件(4个轮换日志,一个在用的日志)。通过在 config/log4j2.properties 文件中将弃用日志级别设置为error,就可以禁用它。

    官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html

    参考文档:https://github.com/13428282016/elasticsearch-CN/wiki/es-setup--elasticsearch

  • 相关阅读:
    Route the message within a requestresponse receive port
    SQL Server 表连接删除
    RoR(Ruby on Rails)学习笔记(1)
    算法导论学习笔记(1)——快排中hoarePartition的实现(问题已解决)
    RoR(Ruby on Rails)学习笔记(2)
    网络七层协议的形象说明
    Missing requirement: JDT Core patch for GroovyEclipse plugin 2.5.1.xx201106271300e36 (org.codehaus.groovy.jdt.patch.
    小技巧: 实用的一行 Linux 命令
    IE: 如何使用 F12 开发人员工具调试网页
    Grep 用法
  • 原文地址:https://www.cnblogs.com/ginb/p/7026253.html
Copyright © 2020-2023  润新知