通过Debian包安装Elasticsearch
Elasticsearch的Debian包可以从downloaded from our website或APT repository
它可以用于在任何Debian-based的系统(如Debian和Ubuntu)上安装Elasticsearch。
Elasticsearch的最新稳定版在Download Elasticsearch下载,其他的版本在Past Releases page下载。
NOTE:
Elasticsearch需要java8或者更高的java版本。
可以使用official Oracle distribution 或者使用open-source distribution 例如OpenJDK。
1.导入Elasticsearch PGP Key
我们利用如下指纹签名的密钥签署验证了所有的包
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
下载并安装公共签名密钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2.从apt存储库安装
在继续之前,你可能需要在Debian上安装apt-transport-https包:
sudo apt-get install apt-transport-https
将存储库定义保存到/etc/apt/sources.list.d/elastic-5.x.list:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
WARNING:
不要使用add-apt-repository,因为它将添加一个deb-src条目,但我们不提供源包。 如果你已添加deb-src条目,你将看到类似如下的错误:
Unable to find expected entry 'main/source/Sources' in Release file
(Wrong sources.list entry or malformed file)
从/etc/apt/sources.list文件中删除deb-src条目,安装可以正常工作
你可以通过如下命令安装Elasticsearch Debian软件包:
sudo apt-get update && sudo apt-get install elasticsearch
WARNING:
如果同一Elasticsearch存储库存在两个条目,则在apt-get update期间将出现类似以下错误:
Duplicate sources.list entry https://artifacts.elastic.co/packages/5.x/apt/ ...`
检查/etc/apt/sources.list.d/elasticsearch-5.x.list 中的重复条目,或者在/etc/apt/sources.list.d/和
/etc/apt/sources.list中寻找重复的条目
NOTE:
在systemd-based的版本,安装脚本将尝试设置内核参数(例如,vm.max_map_count); 你可以通过将环境变量ES_SKIP_SET_KERNEL_PARAMETERS设置为true来跳过此操作。
3.下载并手动安装debian软件包
用于Elasticsearch v5.0.2的Debian软件包可以从网站下载并安装如下:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.2.deb
sha1sum elasticsearch-5.0.2.deb
sudo dpkg -i elasticsearch-5.0.2.deb
4.Sysv init vs systemd
Elasticsearch在安装后不会自动启动。 如何启动和停止Elasticsearch取决于你的系统是使用SysV init还是systemd(由较新的发行版使用)。
你可以通过运行此命令来确定:
ps -p 1
5.Running Elasticsearch with 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/中找到。
6.Running Elasticsearch with 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/中的日志文件中。
(你可以尝试 sudo systemctl status elasticsearch.service)
默认情况下,Elasticsearch服务不会被记录到systemd journal。 要启用journalctl,必须从elasticsearch.service文件中的ExecStart命令行中删除--quiet选项。
当启用systemd日志记录时,使用journalctl命令可以获得日志记录信息:
To tail the journal:
sudo journalctl -f
To list journal entries for the elasticsearch service:
sudo journalctl --unit elasticsearch
To list journal entries for the elasticsearch service starting from a given time:
sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"
有关更多命令行选项,请检查man journalctl或https://www.freedesktop.org/software/systemd/man/journalctl.html。
7.检查elasticsearch是否在运行
你可以通过向localhost上的端口9200发送HTTP请求来测试Elasticsearch节点是否正在运行:
GET /
如果elasticsearch正在运行,你会得到如下response
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "5.0.2",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "6.2.1"
},
"tagline" : "You Know, for Search"
}
8.配置Elasticsearch
默认情况下,Elasticsearch从/etc/elasticsearch/elasticsearch.yml文件加载其配置。
此配置文件的格式在Configuring Elasticsearch中进行了说明
Debian包还有一个系统配置文件/etc/default/elasticsearch,允许你设置以下参数:
参数 | 解释 |
---|---|
ES_USER | 定义user名称,默认为elasticsearch |
ES_GROUP | 定义group名称,默认为elasticsearch |
JAVA_HOME | 设置java路径 |
MAX_OPEN_FILES | 最大打开文件数,默认值为65536 |
MAX_LOCKED_MEMORY | 最大锁定内存大小,如果在elasticsearch.yml 设置了bootstrap.memory_lock=true,此处设置为unlimited |
MAX_MAP_COUNT | 进程可能具有的内存映射区域的最大数量。 如果使用mmapfs作为索引存储类型,请确保将其设置为较高的值。有关更多信息,请查看[]。 这是在启动elasticsearch之前通过sysctl设置的。 默认为262144。 |
LOG_DIR | 日志文件目录,默认为/var/log/elasticsearch |
DATA_DIR | 数据文件目录,默认为/var/lib/elasticsearch |
CONF_DIR | 配置文件目录(需要包括elasticsearch.yml和log4j2.properties文件),默认为/etc/elasticsearch |
ES_JAVA_OPTS | 想要应用的任何其他JVM系统属性 |
RESTART_ON_UPGRADE | 配置软件包升级时的重新启动,默认为false。 这意味着您必须在手动安装软件包后重新启动elasticsearch实例。这样做的原因是确保集群中的升级不会导致持续的分片重新分配,从而导致高网络流量并减少集群的响应时间。 |
NOTE:
使用systemd的版本需要通过systemd而不是通过/etc/sysconfig/elasticsearch文件配置系统资源限制。 有关详细信息,请参阅。
9.Debian包安装后的目录结构
Type | Description | Default Location | Setting |
---|---|---|---|
home | elasticsearch主目录($ES_HOME) | /usr/share/elasticsearch | |
bin | elasticsearch启动节点启动脚本,elasticsearch-plugin插件安装脚本 | /usr/share/elasticsearch/bin | |
conf | 配置文件,包含elasticsearch.yml | /etc/elasticsearch | path.conf |
conf | 环境变量设置,包括heap size、file descriptors | /etc/default/elasticsearch | |
data | 节点上分配的每个index/shard的数据文件的位置,可以有多个位置 | /var/lib/elasticsearch | path.data |
logs | 日志文件的存放位置 | /var/log/elasticsearch | path.logs |
plugins | 插件文件的位置,每个插件一个子文件夹 | /usr/share/elasticsearch/plugins | |
repo | 共享文件系统存储库位置,容纳多个位置。可以放置在此处指定的任何目录的任何子目录中。 | Not configured | path.repo |
script | 脚本文件的位置 | $ES_HOME/scripts | path.scripts |
10.进一步
你现在已经设置了一个测试Elasticsearch环境。 在开始认真开发或使用Elasticsearch开始生产之前,您需要进行一些额外的设置: