夕游记 發表於 2025-8-6 00:00:00

Linux系统下ElasticSearch的安装和启动教程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>安装环境<ul class="second_class_ul"><li>下载地址</li></ul></li><li>安装步骤<ul class="second_class_ul"></ul></li></ul></div><p class="maodian"></p><h2>安装环境</h2>
<p>Linux(centos)</p>
<p class="maodian"></p><h3>下载地址</h3>
<p>https://www.elastic.co/cn/downloads/elasticsearch</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250806/2-250P6115I5128.png" /></p>
<p class="maodian"></p><h2>安装步骤</h2>
<p>切换到ES安装目录,如 /www;</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250806/2-250P6115I5C5.png" /></p>
<p>在www目录下,创建elasticsearch文件夹,并进入文件夹内;</p>
<div class="dxycode"><pre class="brush:bash;"> mkdir elasticsearch
cd elasticsearch</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250806/2-250P6115I5439.png" /></p>
<p>获取elasticearch安装包;<br />可以使用在线下载命令,下载安装包。</p>
<div class="dxycode"><pre class="brush:bash;">wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.0-linux-x86_64.tar.gz</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250806/2-250P6115I5535.png" /></p>
<p>也可以将之前已经下载好的安装包上传到当前目录下。</p>
<p>解压elasticsearch安装包;</p>
<div class="dxycode"><pre class="brush:bash;">tar -zvxfelasticsearch-8.12.0.tar.gz</pre></div>
<p>进入elasticsearch-8.17.0/config文件夹内,修改配置文件;</p>
<div class="dxycode"><pre class="brush:bash;">cd elasticsearch-8.12.0/config</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250806/2-250P6115ID94.png" /></p>
<div class="dxycode"><pre class="brush:bash;">定位到#network.host: 192.168.0.1位置,在下面增加一行:
network.host: 0.0.0.0
保存并退出(先按esc键,输入:wq!,按回车键即可)</pre></div>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://zhuji.jb51.net/uploads/allimg/20250806/2-250P6115ID94.png" /></p>
<p>配置JVM ;<br />设置 es 启动内存、根据系统配置需要来配置。</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250806/2-250P6115IC36.png" /></p>
<p>配置分词器;<br />添加ik分词器,分词器下载地址https://github.com/infinilabs/analysis-ik/releases</p>
<p>把elasticsearch-analysis-ik-x.x.x.zip在解压的文件夹elasticsearch-analysis-ik-x.x.x复制到 elasticsearch安装目录下的plugins中analysis-ik 分词器配置文件 IKAnalyzer.cfg.xml</p>
<div class="dxycode"><pre class="brush:xml;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"&gt;
&lt;properties&gt;
        &lt;comment&gt;IK Analyzer 扩展配置&lt;/comment&gt;
        &lt;!--用户可以在这里配置自己的扩展字典 --&gt;
        &lt;entry key="ext_dict"&gt;&lt;/entry&gt;
       &lt;!--用户可以在这里配置自己的扩展停止词字典--&gt;
        &lt;entry key="ext_stopwords"&gt;&lt;/entry&gt;
        &lt;!--用户可以在这里配置远程扩展字典 --&gt;
        &lt;!-- &lt;entry key="remote_ext_dict"&gt;words_location&lt;/entry&gt; --&gt;
        &lt;!--用户可以在这里配置远程扩展停止词字典--&gt;
        &lt;!-- &lt;entry key="remote_ext_stopwords"&gt;words_location&lt;/entry&gt; --&gt;
&lt;/properties&gt;</pre></div>
<p>提高系统资源限制<br />增加最大文件描述符数量:编辑 /etc/security/limits.conf 文件,添加或修改以下行:</p>
<div class="dxycode"><pre class="brush:bash;">* soft nofile 65535
* hard nofile 65535
elasticsearch soft nofile 65535
elasticsearch hard nofile 65535</pre></div>
<p>增加虚拟内存区域限制:编辑 /etc/sysctl.conf 文件,添加或修改以下行:</p>
<div class="dxycode"><pre class="brush:bash;">vim /etc/sysctl.conf
#加入以下内容
vm.max_map_count = 262144</pre></div>
<p>保存后执行sysctl -p命令刷新生效</p>
<p>注册服务,创建配置文件;</p>
<p>1).service文件</p>
<div class="dxycode"><pre class="brush:bash;">vim /usr/lib/systemd/system/elasticsearch.service</pre></div>
<div class="dxycode"><pre class="brush:bash;">
Description=elasticsearch
After=network.target

Type=forking
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/local/elasticsearch/elasticsearch-8.12.0/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143

WantedBy=multi-user.target</pre></div>
<p>启动脚本<br />在 /etc/init.d 目录下创建一个名为 elasticsearch 的脚本</p>
<div class="dxycode"><pre class="brush:bash;">#!/bin/bash
# Elasticsearch environment variables
export ES_HOME=/www/elasticsearch/elasticsearch-8.12.0
# Start the service
case "$1" in
start)
    echo "Starting Elasticsearch..."
    su -c "/usr/share/elasticsearch/bin/elasticsearch" elasticsearch
    ;;
stop)
    echo "Stopping Elasticsearch..."
    pkill -f 'elasticsearch'
    ;;
restart|force-reload)
    $0 stop
    sleep 2
    $0 start
    ;;
*)
    echo "Usage: $0 {start|stop|restart}" &gt;&amp;2
    exit 3
    ;;
esac
exit 0</pre></div>
<p>设置脚本可执行</p>
<div class="dxycode"><pre class="brush:bash;">sudo chmod +x /etc/init.d/elasticsearch
sudo chown -R elasticsearch:elasticsearch /www/elasticsearch/elasticsearch-8.12.0</pre></div>
<p>10.非 Root 用户运行 Elasticsearch<br />由于安全原因,Elasticsearch 不允许以 root 用户运行。需要创建一个专用的用户来运行 Elasticsearch。<br />创建用户和组:</p>
<div class="dxycode"><pre class="brush:bash;">sudo groupadd elasticsearch
sudo useradd -g elasticsearch elasticsearch</pre></div>
<p>启动并启用服务;<br />服务相关命令</p>
<div class="dxycode"><pre class="brush:bash;"># 启动服务
systemctl start elasticsearch
查看服务状态:
systemctl status elasticsearch
# 重启服务
systemctl restart elasticsearch
# 停止服务
systemctl stop elasticsearch
# 禁止开机启动
systemctl disable elasticsearch
# 启用开机启动
systemctl enable elasticsearch</pre></div>
<p>打开 9200,访问 ip:9200 查看是否启动成功;<br />设置密码<br />启动elasticsearch服务</p>
<div class="dxycode"><pre class="brush:bash;">systemctl start elasticsearch</pre></div>
<p>切换到 elasticsearch 安装文件目录 bin 下</p>
<div class="dxycode"><pre class="brush:bash;">cd /xxx/elasticsearch/elasticsearch-8.12.0/bin</pre></div>
<p>使用 elasticsearch-certutil 命令生成证书</p>
<div class="dxycode"><pre class="brush:bash;">./elasticsearch-certutil ca -out config/certs/elastic-certificates.p12 -pass</pre></div>
<p>保证 elasticsearch 正常运行时才可以运行此命令,运行后显示<br />Enter password for CA Private key :<br />不要输入直接按回车就行,按完回车后会出来<br />Directory /www/elasticsearch/elasticsearch-8.12.0/config/certs does not exist. Do you want to create it? <br />直接输入y,然后回车</p>
<p>修改 elasticsearch.yml 配置<br />加入下面内容</p>
<div class="dxycode"><pre class="brush:bash;"># 开启xpack
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
# 证书配置
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12</pre></div>
<p>重启 elasticsearch</p>
<div class="dxycode"><pre class="brush:bash;">systemctl restart elasticsearch</pre></div>
<p>设置用户密码</p>
<div class="dxycode"><pre class="brush:bash;"># 手动配置每个用户密码模式(需要一个一个的输入)
./elasticsearch-setup-passwords interactive
#自动配置每个用户密码(随机生成并返回字符串密码,需要保存好)
./elasticsearch-setup-passwords auto</pre></div>
<p>部分内置账号的角色权限解释如下:<br />elastic 账号:拥有 superuser 角色,是内置的超级用户。<br />kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。<br />logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用</p>
<p>修改密码<br />以 elastic 账号为例,注意需要在 elasticsearch 服务已启动的情况下进行</p>
<div class="dxycode"><pre class="brush:bash;">curl -H 'Content-Type: application/json' -u elastic:123456 -XPOST 'http://localhost:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "1234567" }'</pre></div>
<p>以上就是Linux 系统 ElasticSearch的安装和启动的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁: [1]
查看完整版本: Linux系统下ElasticSearch的安装和启动教程