前期准备
系统更新:
bash
sudo apt update && sudo apt upgrade -y sudo apt install -y wget curl tar vim
创建安装目录:
bash
sudo mkdir -p /usr/local/src/elasticstack sudo chown -R $USER:$USER /usr/local/src/elasticstack cd /usr/local/src/elasticstack
第一部分:安装并配置 OpenJDK 11
步骤 1: 下载并解压 JDK
bash
# 下载 OpenJDK 11 for ARM64 wget https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20%2B8/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.20_8.tar.gz # 创建目标目录并解压 sudo mkdir -p /usr/lib/jvm sudo tar -zxvf OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.20_8.tar.gz -C /usr/lib/jvm/ # 确认解压后的目录 JDK_DIR=$(ls /usr/lib/jvm/ | grep jdk-11) echo "JDK安装目录: /usr/lib/jvm/$JDK_DIR"
步骤 2: 设置系统级环境变量
bash
# 创建全局Java环境配置文件 sudo vim /etc/profile.d/java.sh
添加以下内容(重要:请根据实际目录修改):
bash
# 设置JAVA_HOME环境变量 export JAVA_HOME=/usr/lib/jvm/jdk-11.0.20+8 export PATH=$JAVA_HOME/bin:$PATH
使配置生效:
bash
source /etc/profile
步骤 3: 验证JDK安装
bash
java -version javac -version echo $JAVA_HOME # 应该显示:/usr/lib/jvm/jdk-11.0.20+8
第二部分:安装 Elasticsearch 7.17.21(重点:指定Java路径)
步骤 1: 下载并解压
bash
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.21-linux-aarch64.tar.gz sudo tar -zxvf elasticsearch-7.17.21-linux-aarch64.tar.gz -C /usr/share/ sudo mv /usr/share/elasticsearch-7.17.21 /usr/share/elasticsearch
步骤 2: 创建专用用户
bash
sudo groupadd elasticsearch sudo useradd -g elasticsearch -M -s /bin/bash elasticsearch sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
步骤 3: 配置 Elasticsearch(关键步骤)
配置一:创建Java路径设置文件
这是确保Elasticsearch使用正确JDK的核心步骤:
bash
sudo vim /usr/share/elasticsearch/bin/elasticsearch-env
找到以下代码段(大约在文件开头):
bash
# now set the path to java if [ ! -z "$JAVA_HOME" ]; then JAVA="$JAVA_HOME/bin/java" else if [ "$(uname -s)" = "Darwin" ]; then # OSX has a different structure JAVA="/usr/bin/java" else JAVA="/bin/java" fi fi
在这段代码之前添加(强制指定JAVA路径):
bash
# Force specific JAVA_HOME for Kylin ARM64 export JAVA_HOME=/usr/lib/jvm/jdk-11.0.20+8 export PATH=$JAVA_HOME/bin:$PATH
配置二:主配置文件
bash
sudo -u elasticsearch vim /usr/share/elasticsearch/config/elasticsearch.yml
修改为:
yaml
cluster.name: kylin-arm-cluster node.name: kylin-node-1 network.host: 0.0.0.0 http.port: 9200 discovery.type: single-node xpack.security.enabled: false # 可选:自定义数据存储路径 path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch
创建数据目录:
bash
sudo mkdir -p /var/lib/elasticsearch /var/log/elasticsearch sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch /var/log/elasticsearch
步骤 4: 配置系统服务(再次指定Java路径)
bash
sudo vim /etc/systemd/system/elasticsearch.service
添加以下内容(注意Environment行):
ini
[Unit] Description=Elasticsearch Documentation=https://www.elastic.co After=network.target [Service] Type=simple User=elasticsearch Group=elasticsearch # 关键:显式指定JAVA_HOME Environment=JAVA_HOME=/usr/lib/jvm/jdk-11.0.20+8 Environment=ES_HOME=/usr/share/elasticsearch Environment=ES_PATH_CONF=/usr/share/elasticsearch/config ExecStart=/usr/share/elasticsearch/bin/elasticsearch LimitMEMLOCK=infinity LimitNOFILE=65535 LimitNPROC=4096 Restart=always RestartSec=30s [Install] WantedBy=multi-user.target
步骤 5: 系统优化和启动
bash
# 调整系统限制 sudo vim /etc/security/limits.conf
添加:
text
elasticsearch - nofile 65535 elasticsearch - memlock unlimited
调整虚拟内存:
bash
sudo sysctl -w vm.max_map_count=262144 echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
启动服务:
bash
sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch # 验证 sudo systemctl status elasticsearch curl -X GET "http://localhost:9200/"
第三部分:安装 Kibana 7.17.21(同样指定Java路径)
步骤 1: 下载并解压
bash
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.21-linux-aarch64.tar.gz sudo tar -zxvf kibana-7.17.21-linux-aarch64.tar.gz -C /usr/share/ sudo mv /usr/share/kibana-7.17.21-linux-aarch64 /usr/share/kibana sudo chown -R elasticsearch:elasticsearch /usr/share/kibana
步骤 2: 配置 Kibana(强制Java路径)
方法一:修改启动脚本(推荐)
bash
sudo vim /usr/share/kibana/bin/kibana
在文件开头(#!/bin/bash之后)添加:
bash
# Force JAVA_HOME for Kylin ARM64 export JAVA_HOME=/usr/lib/jvm/jdk-11.0.20+8 export PATH=$JAVA_HOME/bin:$PATH
方法二:使用环境变量文件
bash
sudo vim /etc/default/kibana
添加:
bash
JAVA_HOME=/usr/lib/jvm/jdk-11.0.20+8
步骤 3: 主配置文件
bash
sudo -u elasticsearch vim /usr/share/kibana/config/kibana.yml
配置:
yaml
server.port: 5601 server.host: "0.0.0.0" server.name: "kylin-kibana" elasticsearch.hosts: ["http://localhost:9200"] i18n.locale: "zh-CN" # 可选:自定义路径 path.data: /var/lib/kibana logging.dest: /var/log/kibana/kibana.log
创建目录:
bash
sudo mkdir -p /var/lib/kibana /var/log/kibana sudo chown -R elasticsearch:elasticsearch /var/lib/kibana /var/log/kibana
步骤 4: 配置系统服务
bash
sudo vim /etc/systemd/system/kibana.service
添加:
ini
[Unit] Description=Kibana Documentation=https://www.elastic.co After=network.target elasticsearch.service [Service] Type=simple User=elasticsearch Group=elasticsearch # 关键:显式指定JAVA_HOME Environment=JAVA_HOME=/usr/lib/jvm/jdk-11.0.20+8 Environment=KIBANA_HOME=/usr/share/kibana ExecStart=/usr/share/kibana/bin/kibana Restart=always RestartSec=30s [Install] WantedBy=multi-user.target
步骤 5: 启动并验证
bash
sudo systemctl daemon-reload sudo systemctl enable kibana sudo systemctl start kibana # 查看状态和日志 sudo systemctl status kibana tail -f /var/log/kibana/kibana.log # 等待1-2分钟后访问 curl -I http://localhost:5601
最终验证
检查所有服务状态:
bash
sudo systemctl status elasticsearch sudo systemctl status kibana
测试连通性:
bash
# Elasticsearch curl -X GET "http://localhost:9200/" # Kibana curl -I http://localhost:5601
确认Java路径:
bash
# 检查Elasticsearch使用的Java ps aux | grep elasticsearch | grep java # 检查Kibana使用的Java ps aux | grep kibana | grep node
访问服务:
Elasticsearch:
http://服务器IP:9200
Kibana:
http://服务器IP:5601