RPM安装
Elasticsearch的RPM可以从我们的 网站 或 RPM库 下载。它可用于在任何基于RPM的系统上安装Elasticsearch,例如OpenSuSE,SLES,Centos,Red Hat和Oracle Enterprise。
注意
旧版RPM的发行版不支持RPM安装,例如SLES 11和CentOS 5。请参阅 .zip或.tar.gz安装。
此软件包可在Elastic许可下免费使用。它包含开源和免费商业功能以及付费商业功能。开始 为期30天的试用 ,试用所有付费商业功能。有关Elastic许可级别的信息,请参阅 订阅 页面。
可以在 Elasticsearch下载 页面上找到最新的稳定版Elasticsearch。其他版本可在 历史版本 页面上找到。
注意
Elasticsearch需要Java 8或更高版本。使用 官方Oracle发行版 或 OpenJDK 等开源发行版。
导入PGP Key
我们使用带有指纹的Elasticsearch签名密钥(PGP密钥 D88E42B4,可从https://pgp.mit.edu获得)对所有软件包进行签名:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
下载并安装公共签名密钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
从RPM库安装
在/etc/yum.repos.d/目录中,为基于RedHat的发行版创建一个名为elasticsearch.repo的文件,或者在/etc/zypp/repos.d/目录中,为基于OpenSuSE的发行版创建一个文件,其中包含:
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
您的存储库已准备就绪。您现在可以使用以下命令之一安装Elasticsearch:
sudo yum install elasticsearch ①
sudo dnf install elasticsearch ②
sudo zypper install elasticsearch ③
① 在CentOS和较旧的基于Red Hat的发行版上使用yum。
② 在Fedora和其他较新的Red Hat发行版上使用dnf。
③ 在基于OpenSUSE的发行版上使用zypper
注意
还提供了另一个包,其中仅包含Apache 2.0许可下提供的功能。要安装它,请在elasticsearch.repo文件中使用以下baseurl:
baseurl=https://artifacts.elastic.co/packages/oss-6.x/yum
手动下载并安装RPM
Elasticsearch v6.7.1的RPM可以从网站下载并安装如下:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.1.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.1.rpm.sha512
shasum -a 512 -c elasticsearch-6.7.1.rpm.sha512 ①
sudo rpm --install elasticsearch-6.7.1.rpm
① 比较下载的Debian软件包的SHA和发布的校验码,校验应输出 elasticsearch-{version}.deb: OK
或者,您可以下载以下软件包,其中仅包含Apache 2.0许可下提供的功能:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.7.1.deb
启用X-Pack自动创建索引
X-Pack将尝试在Elasticsearch中自动创建多个索引。默认情况下,Elasticsearch配置为允许自动创建索引,不需要其他步骤。但是,如果在Elasticsearch中禁用了自动索引创建,则必须在elasticsearch.yml中配置 action.auto_create_index,以允许X-Pack创建以下索引:
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
重要
如果您使用的是 Logstash 或 Beats,则很可能在
action.auto_create_index设置中需要其他索引名称,具体值取决于您的本地配置。如果您不确定环境的正确值,可以考虑将值设置为*,这将允许自动创建所有索引。
SysV init与systemd
安装后Elasticsearch不会自动启动。如何启动和停止Elasticsearch取决于您的系统是使用SysV init还是systemd(较新的发行版使用)。您可以通过运行此命令来判断正在使用哪个:
ps -p 1
SysV init运行
使用update-rc.d命令将Elasticsearch配置为在系统启动时自动启动:
sudo update-rc.d elasticsearch defaults 95 10
可以使用service命令启动和停止Elasticsearch:
sudo -i service elasticsearch start
sudo -i service elasticsearch stop
如果Elasticsearch因任何原因无法启动,它将打印STDOUT失败的原因。日志文件可以在/var/log/elasticsearch/中找到。
使用systemd运行
要将Elasticsearch配置为在系统启动时自动启动,请运行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
Elasticsearch可以按如下方式启动和停止:
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service
这些命令不提示Elasticsearch是否成功启动。相反,此信息将写入位于/var/log/elasticsearch/中的日志文件中。
默认情况下,Elasticsearch服务不会在systemd日志中记录信息。要启用journalctl日志记录,必须从elasticsearch.service文件中的ExecStart命令行中删除--quiet选项。
启用systemd日志记录后,可以使用journalctl命令获取日志记录信息:
后面紧跟:
sudo journalctl -f
列出elasticsearch服务的journal:
sudo journalctl --unit elasticsearch
要从给定时间开始列出elasticsearch服务的journalctl:
sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"
查看man journalctl或 https://www.freedesktop.org/software/systemd/man/journalctl.html 以获取更多命令行选项。
检查运行情况
您可以通过向localhost上的端口9200发送HTTP请求,来测试您的Elasticsearch节点是否正在运行:
GET /
应该会给你一个像这样的响应:
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.7.1",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
配置
Elasticsearch默认使用/etc/elasticsearch进行运行配置。此目录的所有权和此目录中的所有文件都设置为 root:elasticsearch ,并且目录设置了setgid标志,以便在/etc/elasticsearch下创建的所有文件和子目录也使用此所有权创建(例如,如果使用 密钥库工具 创建密钥库)。需对此进行维护,以便Elasticsearch进程可以通过组权限读取此目录下的文件。
默认情况下,Elasticsearch从/etc/elasticsearch/elasticsearch.yml文件加载配置。配置章节 中介绍了此配置文件的格式。
Debian软件包还有一个系统配置文件(/etc/default/elasticsearch),它允许您设置以下参数:
| 参数 | 说明 |
|---|---|
JAVA_HOME |
设置要使用的自定义Java路径。 |
MAX_OPEN_FILES |
最大打开文件数,默认为65535。 |
MAX_LOCKED_MEMORY |
最大锁定内存大小。如果您在elasticsearch.yml中使用bootstrap.memory_lock选项,则设置为unlimited。 |
MAX_MAP_COUNT |
进程可能具有的最大内存映射区域数。如果使用mmapfs作为索引存储类型,请确保将其设置为较高的值。有关更多信息,请查看有关max_map_count的 linux内核文档。这是在启动Elasticsearch之前通过sysctl设置的。默认为262144。 |
ES_PATH_CONF |
配置文件目录(需要包含elasticsearch.yml,jvm.options和log4j2.properties文件);默认为/etc/elasticsearch。 |
ES_JAVA_OPTS |
您可能想要应用的任何其他JVM系统属性。 |
RESTART_ON_UPGRADE |
在程序包升级时配置重新启动,默认为false。这意味着您必须在手动安装软件包后重新启动Elasticsearch实例。这样做的原因是为了确保集群中的升级不会导致连续的分片重新分配,从而导致高网络流量并缩短集群的响应时间。 |
注意 使用
systemd的发行版要求通过systemd而不是通过/etc/sysconfig/elasticsearch文件配置系统资源限制。有关更多信息,请参阅 Systemd配置。
RPM包目录结构
Debian软件包将配置文件,日志和数据目录放在基于Debian的系统的适当位置:
| 文件夹 | 描述 | 默认位置 | 设置项 |
|---|---|---|---|
| home | Elasticsearch根目录或$ES_HOME |
/usr/share/elasticsearch |
|
| bin | 二进制脚本,包含启动节点的elasticsearch和安装插件的elasticsearch-plugin命令 |
/usr/share/elasticsearch/bin |
|
| conf | 配置文件,包括elasticsearch.yml |
/etc/elasticsearch |
ES_PATH_CONF |
| conf | 环境变量,包含堆大小,文件描述符等 | /etc/default/elasticsearch |
|
| data | 此节点的数据文件,包含索引、分片,可以容纳多个位置 | /var/lib/elasticsearch |
path.data |
| logs | 日志文件夹 | /var/log/elasticsearch |
path.logs |
| plugins | 插件文件夹,每个插件都包含在其中的子文件夹中 | /usr/share/elasticsearch/plugins |
|
| repo | 共享文件系统存储库位置。 可以容纳多个位置。 文件系统存储库可以放在此处指定的任何目录的任何子目录中。 | 未配置 | path.repo |
下一步
您现在已经设置了测试Elasticsearch环境。在开始认真开发或使用Elasticsearch投入生产之前,您必须进行一些额外的设置:
- 了解如何 配置Elasticsearch。
- 配置 重要的Elasticsearch配置。
- 配置 重要的系统设置。