# 搜索引擎管理

Elasticsearch是一个分布式、RESTful搜索和分析引擎。在Log360中配置时，它会在添加的节点之间分发数据，从而优化磁盘空间，同时提高Log360的性能。

注意：搜索引擎管理不支持在Linux服务器上运行EventLog Analyzer。

- 搜索引擎设置
- 节点操作
- 先决条件
- 设置Elasticsearch
- 在Log360中配置Elasticsearch

## 搜索引擎设置

### 如何禁用或启用ES自动重启

- 如果启用了自动重启，则启动Log360将重新启动子节点并允许子节点加入Log360的集群。
- 只有在EventLog Analyzer与Log360集成时才能使用自动重启。此功能默认启用，如果需要，可以关闭。

禁用/启用自动重启的步骤：

1. 打开管理 → 搜索引擎管理 → 设置

2. 通过在设置中禁用启用配置产品节点的自动重启选项并单击保存来禁用自动重启。

3. 单击保存后，自动重启将被禁用。您可以按照相同的步骤启用自动重启。

## 节点操作

- 添加节点：帮助分配日志存储，使数据分割并存储在节点之间。
- 启动节点：在添加的节点上启动Elasticsearch服务，然后该节点连接到Log360服务器。
- 停止节点：停止机器中运行的Elasticsearch服务，当节点未连接时，节点中的数据将无法访问。
- 删除节点：从节点中删除数据，然后删除节点。

## 先决条件

###

### 1. 增加文件描述符

确保将运行Elasticsearch的用户的打开文件描述符的限制提高到65,536或更高。对于.zip和.tar.gz包，请在启动Elasticsearch之前以root身份设置ulimit -n 65536，或在/etc/security/limits.conf中将nofile设置为65536。

注意：仅适用于Linux和macOS。

2. 确保足够的虚拟内存

Elasticsearch默认使用mmapfs目录存储其索引。默认操作系统对mmap计数的限制可能过低，可能导致内存不足的异常。

您可以通过在Linux中以root身份运行以下命令来增加限制：sysctl -w vm.max_map_count=262144

3. 禁用交换

通常情况下，Elasticsearch是在一台计算机上运行的唯一服务，并且其内存使用受JVM选项控制。不应该需要启用交换。

在Linux系统上，您可以通过运行以下命令临时禁用交换：sudo swapoff -a

在Windows上，通过在系统属性 > 高级 > 性能 > 高级 > 虚拟内存中完全禁用分页文件来达到相同的效果。

4. 确保足够的线程

Elasticsearch使用许多线程池进行不同类型的操作。重要的是，它可以在需要时创建新线程。确保Elasticsearch用户可以创建的线程数至少为4096。

可以通过在启动Elasticsearch之前以root身份设置ulimit -u 4096，或在/etc/security/limits.conf中设置nprocto 4096来实现。

5. JVM DNS缓存设置

Elasticsearch在安全管理器中运行。在安全管理器存在的情况下，JVM默认无限期缓存正面主机名解析。如果您的Elasticsearch节点在DNS解析在时间上有变化的环境中依赖于DNS，则可能希望修改默认的JVM行为。这可以通过在Java安全策略中添加networkaddress.cache.ttl=<timeout>来修改。

6. 端口可用性

确保运行Elasticsearch的计算机上的端口 9322 可用。

7. <Installation Dir>/EventLog Analyzer/ES/repo的共享

确保文件夹 <Installation Dir>/EventLog Analyzer/ES/repo 已与Log360服务器的服务帐户共享。此文件夹将用于从Elasticserch创建快照以保存存档。如果Log360服务器不在AD中，它将是一个开放的共享，否则确保用户有权分享文件夹并按照以下步骤操作。

1. 手动与Log360服务器共享文件夹 <Installation Dir>/EventLog Analyzer/ES/repo。
2. 复制<Installation Dir>/EventLog Analyzer/ES/repo目录的共享路径。
3. 导航到<Installation Dir>/EventLog Analyzer/ES/config/dae.properties文件，并将复制的路径指定为node.repo.sharedlocation的值。
4. 重新启动EventLog Analyzer服务器。

## 设置Elasticsearch

默认情况下，Elasticsearch安全性使用自签名证书，即身份验证和加密。如果您想要使用自己的证书进行安全设置，请按照以下步骤操作。

- 首先确保您具有PEM格式的客户端、节点和根证书。
- 将证书及其对应的密钥重命名如下。
  - 客户端证书重命名为 client.pem，其密钥为 client.key
  - 节点证书重命名为 localnode.pem，其密钥为 localnode.key
  - 根证书重命名为 root_ca.pem，其密钥为 root_ca.key
- 现在，进入 /ES/config 目录并打开 dae.properties 文件。
- 将参数 use_custom_certificates 的值更改为 true。
- 在 /ES/config/certificates 中，检查以下文件是否存在。如果存在，请将它们删除。

- client.key
- client.pem
- localnode.key
- localnode.pem
- root_ca.key
- root_ca.pem

- 然后，将您的证书复制到 <Log360_Home>/ES/config/certificates
- 现在，进入 <Log360_Home>/ES/bin 并运行 verifyCertificates.bat 文件。
- 如果收到消息说 证书验证完成，则启动服务器。如果未收到消息，请联系支持：support@manageengine.cn

### 为现有节点设置证书

按照以下步骤替换现有节点中的证书：

- 转到计算机，然后通过打开任务管理器>服务停止elasticsearch服务。
- 将证书移动到 <INSTALLAITON DIR>\ES\config\certificates
- 导航至 <INSTALLAITON DIR>\ES\config，打开 elasticsearch.yml 文件，并用 nodes.dn 和 admin_dn中的相应详细信息替换以下行 CN=*.node,OU=none,O=none,L=none,ST=US,C=US
- 重新启动服务。

## 在Log360中配置Elasticsearch

要在Log360中配置Elasticsearch，请按照以下步骤操作。

1. 登录到 Log360。
2. 导航到 Admin > Administration > Search Engine Management。
3. 单击 Add Server。
4. 在“Add Server”下拉框中，输入服务器详细信息和安装目录的路径以及TCP端口（可选）。
5. 点击 Save。