es如何查看配置
‘壹’ Elasticsearch(3台master和3台data)配置文件详解
Elasticsearch配置文件详解
· elasticsearch
一、基本配置
elasticsearch的config文件夹里面有两个配置文 件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下elasticsearch.yml这个文件中可配置的东西。
二、高级配置(线程池) 一个Elasticsearch节点会有多个线程池,但重要的是下面四个:
索引(index):主要是索引数据和删除数据操作(默认是cached类型)
搜索(search):主要是获取,统计和搜索操作(默认是cached类型)
批量操作(bulk):主要是对索引的批量操作(默认是cached类型)
更新(refresh):主要是更新操作(默认是cached类型) 可以通过给设置一个参数来改变线程池的类型(type),例如,把索引的线程池改成blocking类型:
min: 1
size: 30
wait_time: 30s
下面是三种可以设置的线程池的类型:
cache
cache线程池是一个无限大小的线程池,如果有很多请求的话都会创建很多线程,下面是个例子:
threadpool:
index:
type: cached
fixed
fixed线程池保持固定个数的线程来处理请求队列。
size参数设置线程的个数,默认设置是cpu核心数的5倍
queue_size可以控制待处理请求队列的大小。默认是设置为-1,意味着无限制。当一个请求到来但队列满了的时候,reject_policy参数可以控制它的行为。默认是abort,会使那个请求失败。设置成caller会使该请求在io线程中执行。
threadpool:
index:
type: fixed
size: 30
queue: 1000
reject_policy: caller
blocking
blocking线程池允许设置一个最小值(min,默认为1)和线程池大小(size,默认为cpu核心数的5倍)。它也有一个等待队列,队列的大小(queue_size )默认是1000,当这队列满了的时候。它会根据定好的等待时间(wait_time,默认是60秒)来调用io线程,如果超时没有执行就会报错。
threadpool:
index:
type: blocking
min: 1
size: 30
wait_time: 30s
笔者在实际工作中,由于程序启动时即产生大量请求,导致队列大小溢出的情况,从而查询请求报错,可以在以下2个解决方法权衡处理:
1、增加队列长度,但随之带来的是CPU消耗高。
2、优化程序,适当控制程序的并发请求量。
三、操作系统配置
1、文件句柄限制:ES在索引过程中,尤其是有很多分片和副本时,会创建若干文件。因此操作系统对打开文件数量的限制不能少于32000。对于linux服务器,通过可以在/etc/security/limits.conf中进行修改,并且可以用ulimit命令来查看当前值。
2、节点内存配置:ES每个节点默认的2014M内存空间可能是不够的。如果日志文件中有out of memory error错误,则应将环境变量ES_HEAP_SIZE设为大于1024的值。注意该值应超过总可用物理内存的50%,剩余内存可用作磁盘高速缓存,可大大提高搜索性能。
ES初学中,欢迎一起学习交流!
参考:
https://blog.csdn.net/lu_wei_wei/article/details/51263153
https://blog.csdn.net/u013673976/article/details/73650889
https://blog.csdn.net/shudaqi2010/article/details/71711610
https://nickcanzoneri.com/elasticsearch-settings/
‘贰’ 配置Elasticsearch
Elasticsearch船只具有良好的默认值,并且只需要很少的配置。可以在运行的集群上使用集群更新设置API更改大多数设置。
配置文件应该包含特定于节点的设置(例如node.name和路径),或者节点为了能够加入集群而需要的设置,例如 cluster.name 和 network.host 。
Elasticsearch有三个配置文件:
这些文件位于config目录中,其默认位置取决于安装是来自存档分发版(tar.gz或zip)还是包分发版(Debian或RPM包)。
对于存档发行版,config目录位置默认为 $ES_HOME/config 。配置目录的位置可以通过 ES_PATH_CONF 环境变量改变,如下所示:
或者,您可以通过命令行或shell配置文件导出ES_PATH_CONF环境变量。
对于包分发,配置目录位置默认为 /etc/elasticsearch 。配置目录的位置也可以通过 ES_PATH_CONF 环境变量更改,但是请注意,仅在shell中设置是不够的。相反,这个变量来源于 /etc/default/elasticsearch (用于Debian包)和 /etc/sysconfig/elasticsearch (用于RPM包)。您需要相应地在其中一个文件中编辑 ES_PATH_CONF=/etc/elasticsearch 条目,以更改配置目录的位置。
配置格式为YAML。下面是更改数据和日志目录路径的示例:
设置也可以扁平化如下:
在YAML中,你可以将非标量值格式化为序列:
虽然不太常见,但你也可以将非标量值格式化为数组:
使用${…}符号将被替换为环境变量的值。例如:
环境变量的值必须是简单字符串。使用逗号分隔的字符串来提供Elasticsearch将解析为列表的值。例如,Elasticsearch将以下字符串分割为 ${HOSTNAME} 环境变量的值列表
集群和节点设置可以根据配置方式进行分类:
您可以使用 集群更新设置API 在运行的集群上配置和更新动态设置。您还可以使用 elasticsearch.yml 在未启动或关闭的节点上本地配置动态设置。
使用集群更新设置API进行的更新可以是持久的(跨集群重启应用),也可以是短暂的(在集群重启后重置)。您还可以通过使用API为临时或持久设置赋值为空来重置它们。
如果您使用多个方法配置相同的设置,Elasticsearch将按照以下优先顺序应用这些设置:
例如,您可以应用瞬变设置来覆盖持久设置或 elasticsearch.yml 设置。然而,对 elasticsearch.yml 的更改,不会覆盖已定义的瞬态或持久设置。
最好使用集群更新设置API设置动态的集群范围设置,并使用 elasticsearch.yml 仅用于本地配置。使用集群更新设置API可以确保所有节点上的设置是相同的。如果您不小心在 elasticsearch.yml 中配置了不同的设置。在不同的节点上,很难注意到差异。
静态设置只能在未启动或关闭的节点上使用 elasticsearch.yml 进行配置。
必须在集群中的每个相关节点上设置静态设置
Elasticsearch开始时只需要很少的配置,但是在生产环境中使用集群之前,有很多方面需要考虑:
Elasticsearch将创建索引的数据写入索引,将数据流写入数据目录。Elasticsearch将自己的应用程序日志(其中包含关于集群运行状况和操作的信息)写入日志目录
对于macOS .tar.gz、Linux .tar.gz和Windows .zip安装,数据和日志默认是 $ES_HOME 的子目录。但是,在升级过程中, $ES_HOME 中的文件有被删除的风险
In proction, we strongly recommend you set the path.data and path.logs in elasticsearch.yml to locations outside of $ES_HOME . Docker , Debian , RPM , macOS Homebrew , and Windows .msi installations write data and log to locations outside of $ES_HOME by default.
To avoid errors, only Elasticsearch should open files in the path.data directory. Exclude the path.data directory from other services that may open and lock its files, such as antivirus or backup programs.
Supported path.data and path.logs values vary by platform
只有当一个节点与集群中的所有其他节点共享 cluster.name 时,该节点才能加入集群。默认名称是 elasticsearch ,但是您应该将其更改为描述集群用途的适当名称。
不要在不同的环境中重用相同的集群名称。否则,节点可能会加入错误的集群
Elasticsearch使用 node.name 作为Elasticsearch特定实例的人类可读标识符。这个名称包含在许多api的响应中。当Elasticsearch启动时,节点名默认为机器的主机名,但是可以在 elasticsearch.yml 中显式配置
缺省情况下,Elasticsearch只绑定到 127.0.0.1 和 [::1] 等环回地址。这对于在单个服务器上运行一个或多个节点的集群进行开发和测试已经足够了,但是 弹性生产集群 必须包含其他服务器上的节点。有许多 网络设置 ,但通常你只需要配置 network.host :
当你为 network.host 提供值时。Elasticsearch假定您正在从开发模式转向生产模式,并将一些系统启动检查从警告升级到异常。看看 开发和生产模式 之间的区别。
在投入生产之前,配置两个重要的发现和集群形成设置,以便集群中的节点能够相互发现并选择一个主节点。
Elasticsearch可以开箱即用,无需任何网络配置,它将绑定到可用的环回地址,并扫描本地端口 9300 到 9305 ,以便与运行在同一服务器上的其他节点连接。这种行为提供了一种无需进行任何配置的自动集群体验。
当您希望与其他主机上的节点形成集群时,使用 静态 discovery.seed_hosts 设置. This setting provides a list of other nodes in the cluster that are master-eligible and likely to be live and contactable to seed the discovery process .
此设置接受集群中所有符合主节点的地址的YAML序列或数组。每个地址可以是一个IP地址,也可以是通过DNS解析为一个或多个IP地址的主机名。
当您第一次启动Elasticsearch集群时, 集群引导 步骤将确定在第一次选举中计票的符合主资格的节点集。在 开发模式 下,如果没有配置发现设置,这个步骤将由节点自己自动执行。
因为自动引导 本身就不安全 ,,所以在生产模式下启动新集群时,必须显式列出符合主资格的节点,这些节点的投票应该在第一次选举中计算。您可以使用集群设置此列表。 initial_master_nodes 设置。
在集群第一次成功形成之后,删除每个节点配置中的 Initial_master_nodes 设置。在重新启动集群或向现有集群添加新节点时,不要使用此设置。
通过节点的 node.name 标识初始主节点, 该节点默认为主节点的主机名。请确保 cluster.initial_master_nodes 值 与 node.name 完全匹配如果您使用完全限定的域名(FQDN),例如master-node-a.example.com作为您的节点名,那么您必须在此列表中使用FQDN。相反,如果node.name是没有任何尾随限定符的裸主机名,您也必须省cluster.initial_master_nodes中的尾随限定符如果您使用完全限定的域名(FQDN),例如 master-node-a.example.com 作为您的节点名, 那么您必须在此列表中使用FQDN。相反,如果f node.name 是没有任何尾随限定符的裸主机名,您也必须省略 cluster.initial_master_nodes 中的尾随限定符。
请参见 bootstrapping a cluster 以及 发现和集群形成设置 .
默认情况下,Elasticsearch会根据节点的 角色 和总内存自动设置JVM堆大小。对于大多数生产环境,我们建议使用默认大小。
自动堆大小需要 bundled JDK ,如果使用自定义JRE位置,则需要Java 14或更高版本的JRE。
如果需要,您可以通过手动 设置JVM堆大小 来覆盖默认大小
默认情况下,Elasticsearch将JVM配置为将堆内存溢出异常转储到默认数据目录。在RPM和Debian软件包中,数据目录是/var/lib/elasticsearch。在Linux、MacOS和Windows发行版上,数据目录位于Elasticsearch安装的根目录下。
如果此路径不适合接收堆转储,请修改 -XX:HeapDumpPath=… jvm.options
默认情况下,Elasticsearch启用垃圾收集(GC)日志。这些是在jvm中配置的 jvm.options 并输出到与Elasticsearch日志相同的默认位置。默认配置每64mb轮换一次日志,最多可以消耗2gb的磁盘空间。
您可以使用 JEP 158: Unified JVM Logging 中描述的命令行选项重新配置JVM日志。除非您更改了默认jvm。选项文件,Elasticsearch默认配置将应用于您自己的设置之外。要禁用默认配置,首先通过提供 -Xlog:disable 选项禁用日志记录,然后提供您自己的命令行选项。这将禁用所有JVM日志记录,因此一定要检查可用选项并启用所需的所有内容。
要查看原始JEP中未包含的其他选项,请参见使用 JVM统一日志框架启用日志记录 .
Change the default GC log output location to /opt/my-app/gc.log by creating $ES_HOME/config/jvm.options.d/gc.options with some sample options:
Configure an Elasticsearch Docker container to send GC debug logs to standard error ( stderr ). This lets the container orchestrator handle the output. If using the ES_JAVA_OPTS environment variable, specify:
默认情况下,Elasticsearch使用启动脚本直接在系统临时目录下创建的私有临时目录。
在某些Linux发行版上,如果最近没有访问过/tmp中的文件和目录,系统实用程序将清除它们。如果需要临时目录的特性长时间不使用,那么在Elasticsearch运行时,这种行为会导致私有临时目录被删除。如果随后使用需要此目录的特性,则删除私有临时目录会导致问题。
如果您使用.deb或.rpm包安装Elasticsearch,并在systemd下运行它,那么Elasticsearch使用的私有临时目录将被排除在定期清理之外。
如果您打算在Linux或MacOS上长时间运行.tar.gz发行版,请考虑为Elasticsearch创建一个专用的临时目录,该目录不在将旧文件和目录清除的路径下。这个目录应该设置权限,以便只有作为Elasticsearch运行的用户才能访问它。然后,在启动Elasticsearch之前,设置$ES_TMPDIR环境变量指向这个目录。
默认情况下,Elasticsearch将JVM配置为将致命错误日志写入默认日志目录。对于 RPM 和 Debian 软件包, 这个目录是 /var/log/elasticsearch . On Linux and MacOS and Windows 发行版, logs 目录位于Elasticsearch安装根目录下。
这些日志是JVM遇到致命错误(例如分段错误)时产生的。如果此路径不适合接收日志,请修改 -XX:ErrorFile=... 在 jvm.options 条目。
在灾难中,快照可以防止数据永久丢失。快照生命周期管理是对集群进行定期备份的最简单方法。有关更多信息,请参见备份集群。
在灾难中, 快照 可以防止数据永久丢失. 快照生命周期管理 是对集群进行定期备份的最简单方法. 有关更多信息, 请参见 备份集群 。
备份集群的唯一可靠和受支持的方法是使用快照。您不能通过复制Elasticsearch集群节点的数据目录来备份该集群。不支持从文件系统级备份恢复任何数据的方法。如果试图从这样的备份恢复集群,可能会出现损坏、丢失文件或其他数据不一致的报告,或者看起来已经成功地悄无声息地丢失了一些数据。
有些设置是敏感的,仅依靠文件系统权限来保护它们的值是不够的。对于这个用例,Elasticsearch提供了一个密钥存储库和 elasticsearch -keystore 工具 来管理密钥存储库中的设置。
只有重新启动Elasticsearch后,对keystore的所有修改才会生效。
这些设置就像elasticsearch中的常规设置一样。Yml配置文件,需要在集群中的每个节点上指定。目前,所有安全设置都是特定于节点的设置,在每个节点上必须具有相同的值。
Just like the settings values in elasticsearch.yml , 对密钥存储库内容的更改不会自动应用到运行的Elasticsearch节点。重新读取设置需要重新启动节点。但是,某些安全设置被标记为 可重新加载 。. Such settings can be re-read and applied on a running node .
所有安全设置的值(无论是否可重新加载)必须在所有集群节点上相同。在进行所需的安全设置更改后,使用 bin/elasticsearch-keystore add 命令, call:
keystore-password : 用于加密Elasticsearch密钥库的密码
此API在每个集群节点上解密并重新读取整个密钥存储库,但只应用可重新加载的安全设置。对其他设置的更改直到下次重启才会生效。一旦调用返回,重新加载就完成了,这意味着依赖于这些设置的所有内部数据结构都已更改。所有的设置都应该从一开始就具有新值。
当更改多个可重新加载的安全设置时,在每个集群节点上修改所有安全设置,然后发出 reload_secure_settings 调用,而不是在每次修改后重新加载。
有可重新加载的安全设置:
‘叁’ Es Cluster 配置详解
elasticsearch.yml 服务配置文件
参数:
配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
设置默认索引分片个数,默认为5片。Since elasticsearch 5.x index level settings can NOT be set on the nodes configuration like the elasticsearch.yaml, in system properties or command line arguments.In order to upgrade all indices the settings must be updated via the /${index}/_settings API. Unless all settings are dynamic all indices must be closed
in order to apply the upgradeIndices created in the future should use index templates
to set default values.
Please ensure all required values are updated on all indices by executing:
curl -XPUT ' http://localhost:9200/_all/_settings?preserve_existing=true ' -d '{
"index.number_of_replicas" : "1",
"index.number_of_shards" : "7"
}'
设置默认索引副本个数,默认为1个副本。 5.X版本以上不支持在配置文件里面配置。
节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。
指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。
指定该节点是否存储索引数据,默认为trues
禁止自动创建索引
这个设置使删除只限于特定名称指向的数据,而不允许通过指定_all 或通配符来删除指定索引库。
设置配置文件的存储路径,默认是es根目录下的config文件夹。
设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:
path.data:/path/to/data1,/path/to/data2
设置临时文件的存储路径,默认是es根目录下的work文件夹。
设置日志文件的存储路径,默认是es根目录下的logs文件夹
设置插件的存放路径,默认是es根目录下的plugins文件夹
设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,Linux下可以通过 ulimit-l unlimited 命令。
设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。
设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
这个参数是用来同时设置bind_host和publish_host上面两个参数。
设置节点间交互的tcp端口,默认是9300。
设置是否压缩tcp传输时的数据,默认为false,不压缩。
设置对外服务的http端口,默认为9200。
设置内容的最大容量,默认100mb
是否使用http协议对外提供服务,默认为true,开启。
gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,Hadoop的HDFS,和amazon的s3服务器,其它文件系统的设置方法下次再详细说。
设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复。
预期在群集中的主节点数。一旦预期的主节点数加入集群,就会开始恢复本地分片。默认为0
预期在群集中的数据节点数。一旦预期数量的节点已加入群集,就会启动本地分片的恢复。默认为0
如果未达到预期的节点数,则恢复过程将等待配置的时间量,然后再尝试恢复。
设置初始化数据恢复进程的超时时间,默认是5分钟。
如果recover_after_time 持续时间超时,只要满足以下条件,恢复就会开始:
设置集群中N个节点启动时进行数据恢复,默认为1。意味着至少有一个节点,该集群才可用。
只要此许多数据或主节点已加入群集,即可恢复。
只要这么多主节点已加入群集,就可以恢复。
只要这么多数据节点已加入群集,就可以恢复。
初始化数据恢复时,并发恢复线程的个数,默认为4。
添加删除节点或负载均衡时并发恢复线程的个数,默认为4。
设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。
设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5。
设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错。
设置是否打开多播发现节点,默认是true。
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
‘肆’ 雷克萨斯es200大灯码怎么查看原厂
想要查询车辆出厂配置信息,可以通过车架号就可以查询到车辆的相关信息。可以咨询厂家客服或根据车型年款通过厂家官网上的配置信息进行确认。
车架号,也俗称VIN码也就是车辆识别代码。车辆识别代码(VIN),VIN是英文Vehicle Identification Number(车辆识别码)的缩写。因为ASE标准规定:VIN码由17位字符组成,所以俗称十七位码。正确解读VIN码,对于我们正确地识别车型,以致进行正确地诊断和维修都是十分重要的。
‘伍’ 神州数码es450-28p如何进入配置
输入config-terminal。
1、在神州数码es450-28p交换机中输入switch>enable,回车进入特权模式,然后输入switch#config-terminal按回车键就进入全局配置模式。
2、hostname是设置交换机的主机名,enable-secret-xxx是设置特权加密口令,exit是返回命令。
‘陆’ 主机号是ES05175128,如何查具体配置
AMD AthlonX2 6850e
2G DDR2 667内存
320G硬盘
