1,环境准备
sudo yum install -y java-11-openjdk java-11-openjdk-devel
# 验证安装
java -version
javac -version2,创建专用账号
# 创建elasticsearch用户和组
sudo groupadd elasticsearch
sudo useradd -r -m -g elasticsearch -s /bin/bash elasticsearch
# 设置密码(可选)
sudo passwd elasticsearch3,下载及配置
#创建安装目录
mkdir /project/elasticsearch
#赋权
chown -R elasticsearch:elasticsearch /project/elasticsearch
# 切换到elasticsearch用户
sudo su - elasticsearch
# 下载
cd /project/elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz
# 解压
tar -xzf elasticsearch-7.10.2-linux-x86_64.tar.gz
cd elasticsearch-7.10.2/调整主机限制
su root
# 切换回root用户
exit
# 编辑limits.conf
sudo tee -a /etc/security/limits.conf << 'EOF'
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
EOF调整内核参数
# 编辑sysctl.conf
sudo tee -a /etc/sysctl.conf << 'EOF'
vm.max_map_count=262144
vm.swappiness=1
net.core.somaxconn=2048
EOF
# 立即生效
sudo sysctl -p修改es配置文件
# 切换到elasticsearch用户
sudo su - elasticsearch
cd elasticsearch-7.10.2/
# 备份原配置
cp config/elasticsearch.yml config/elasticsearch.yml.backup
# 创建新的配置文件
cat > config/elasticsearch.yml << 'EOF'
# ======================== Elasticsearch Configuration =========================
#
# Cluster配置
cluster.name: wiki-halo-cluster
# Node配置
node.name: ${HOSTNAME}
node.master: true
node.data: true
node.ingest: true
# 路径配置
path.data: /project/elasticsearch/elasticsearch-7.10.2/data
path.logs: /project/elasticsearch/elasticsearch-7.10.2/logs
path.repo: ["/project/elasticsearch/elasticsearch-7.10.2/snapshots"]
# 网络配置
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
# 发现配置 - 单节点模式
discovery.type: single-node
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
# 内存锁定(提升性能)
bootstrap.memory_lock: true
# 网关配置
gateway.recover_after_nodes: 1
# 安全配置(可选)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: false
xpack.security.http.ssl.enabled: false
# 监控配置(可选)
xpack.monitoring.collection.enabled: false
# 性能优化配置
indices.memory.index_buffer_size: 10%
indices.queries.cache.size: 5%
thread_pool.write.queue_size: 200
thread_pool.search.queue_size: 500
EOF调整jvm参数
es账号操作即可
vi config/jvm.options
根据需要修改内容:
-Xms256m
-Xmx384m添加服务启动文件
sudo tee /etc/systemd/system/elasticsearch.service << 'EOF'
[Unit]
Description=Elasticsearch 7.10.2
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=elasticsearch
Group=elasticsearch
Environment=ES_project=/project/elasticsearch/elasticsearch-7.10.2
Environment=ES_PATH_CONF=/project/elasticsearch/elasticsearch-7.10.2/config
Environment=PID_DIR=/project/elasticsearch/elasticsearch-7.10.2/config/elasticsearch_pid
Environment=ES_SD_NOTIFY=true
Environment=JAVA_project=/usr/lib/jvm/java-11-openjdk
WorkingDirectory=/project/elasticsearch/elasticsearch-7.10.2
ExecStart=/project/elasticsearch/elasticsearch-7.10.2/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid -Elogger.level=info
# 标准输出和错误输出到系统日志
StandardOutput=journal
StandardError=inherit
# 重启配置
Restart=on-failure
RestartSec=30
# 资源限制
LimitNOFILE=65536
LimitMEMLOCK=infinity
# 创建PID目录
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p ${PID_DIR}
ExecStartPre=/bin/chown elasticsearch:elasticsearch ${PID_DIR}
[Install]
WantedBy=multi-user.target
EOF启动服务即可
systemctl enable --now elasticsearch
systemctl status elasticsearch创建密码
# 切换到elasticsearch用户
sudo su - elasticsearch
cd elasticsearch-7.10.2/
# 设置密码
./bin/elasticsearch-setup-passwords interactive
创建密码示例:
Enter password for [elastic]: elastic_password_123
Reenter password for [elastic]: elastic_password_123
Enter password for [apm_system]: apm_password_123
Reenter password for [apm_system]: apm_password_123
Enter password for [kibana]: kibana_password_123
Reenter password for [kibana]: kibana_password_123
Enter password for [logstash_system]: logstash_password_123
Reenter password for [logstash_system]: logstash_password_123
Enter password for [beats_system]: beats_password_123
Reenter password for [beats_system]: beats_password_123
Enter password for [remote_monitoring_user]: remote_password_123
Reenter password for [remote_monitoring_user]: remote_password_123
然后使用插件访问即可