文章目录
1. 下载离线包
下载地址官网
2. 上传服务器
解压并传到 /dcsm (目录任意)
mkdir /dcsm
tar -xvf elasticsearch-7.17.26-linux-x86_64.tar.gz -C /dcsm
3. 修改 elasticsearch.yml文件
echo "network.host: 0.0.0.0" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "discovery.type: single-node" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "path.data: /dcdata/elasticsearch/data" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "path.logs: /dcdata/elasticsearch/logs" >> /dcsm/elasticsearch/config/elasticsearch.yml
4. 创建必要文件夹
mkdir -p /dcdata/elasticsearch/data
mkdir -p /dcdata/elasticsearch/logs
5. 修改jvm大小(默认4G)
sed -i 's/## -Xms4g/-Xms4g/' /dcsm/elasticsearch/config/jvm.options
sed -i 's/## -Xmx4g/-Xmx4g/' /dcsm/elasticsearch/config/jvm.options
6. 调整操作系统的内核参数与资源限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
7. 创建系统文件elasticsearch.service
sudo bash -c 'cat > /etc/systemd/system/elasticsearch.service <<EOF
[Unit]
Description=elasticsearch
After=network-online.target
[Service]
User=es
Group=es
ExecStart=/dcsm/elasticsearch/bin/elasticsearch
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=elastic.service
EOF'
8. 授权并启动
chmod +x /etc/systemd/system/elasticsearch.service
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch
9. 部署完成
10. 部署脚本(方便快速部署)
只要将脚本与安装包放在同一目录中即可。
#!/usr/bin/env bash
local_tmp=$(df -mlT -x tmpfs -x devtmpfs -x iso9660 | grep -v "/boot" | grep -v '挂载点' | grep -v 'Mounted on' | sort -n -k 5 | tail -1 | awk '{print$NF}')
echo ${local_tmp}
bigPath=${local_tmp##* }
if [ ${bigPath} = "/" ] || [ ${bigPath} = '/dcdata' ]; then
echo "最大存储空间为${bigPath}"
else
dataPath=${bigPath}/dcdata
mkdir -p ${dataPath}
ln -s ${bigPath}/dcdata /dcdata
fi
dataPath=/dcdata
rootPath=/dcsm
mkdir -p $rootPath
mkdir -p ${dataPath}/elasticsearch/data
mkdir -p ${dataPath}/elasticsearch/logs
tar -xvf elasticsearch-7.17.26-linux-x86_64.tar.gz -C /dcsm
mv /dcsm/elasticsearch-7.17.26 /dcsm/elasticsearch
#检查用户组是否存在
check_user() {
#判断用户是否存在passwd中
i=$(cat /etc/passwd | cut -f1 -d':' | grep -w "$1" -c)
if [ $i -le 0 ]; then
echo "用户 $1 将被创建."
return 0
else
#显示用户存在
return 1
fi
}
#创建es用户
function createEsUser() {
check_user es
if [ $? -eq 0 ]; then
groupadd es && useradd -r -g es es
fi
}
createEsUser
chown -R es:es /dcsm/elasticsearch
chown -R es:es /dcdata/elasticsearch
#默认为4G
sed -i 's/## -Xms4g/-Xms4g/' /dcsm/elasticsearch/config/jvm.options
sed -i 's/## -Xmx4g/-Xmx4g/' /dcsm/elasticsearch/config/jvm.options
echo "network.host: 0.0.0.0" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "discovery.type: single-node" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "path.data: /dcdata/elasticsearch/data" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "path.logs: /dcdata/elasticsearch/logs" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "xpack.security.enabled: true" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "xpack.license.self_generated.type: basic" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "xpack.security.transport.ssl.enabled: true" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
sudo bash -c 'cat > /etc/systemd/system/elasticsearch.service <<EOF
[Unit]
Description=elasticsearch
After=network-online.target
[Service]
User=es
Group=es
ExecStart=/dcsm/elasticsearch/bin/elasticsearch
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=elastic.service
EOF'
chmod +x /etc/systemd/system/elasticsearch.service
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch
echo 'es 部署完成!'
systemctl status elasticsearch
11.开启权限认证
echo "xpack.security.enabled: true" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "xpack.license.self_generated.type: basic" >> /dcsm/elasticsearch/config/elasticsearch.yml
echo "xpack.security.transport.ssl.enabled: true" >> /dcsm/elasticsearch/config/elasticsearch.yml
重启 elasticsearch
systemctl restart elasticsearch
执行设置用户名和密码的命令
cd /dcsm/elasticsearch &&
bin/elasticsearch-setup-passwords interactive
设置完毕。