第一部分:安装 Elasticsearch 6.8.23
步骤 1: 准备工作
确认环境:
bash
uname -m # 确认是 aarch64 java -version # 确认是 JDK 1.8.x
安装基础工具:
bash
sudo apt update sudo apt install -y wget curl tar vim sudo
创建专用用户 (Elasticsearch 不允许以 root 运行):
bash
sudo groupadd elasticsearch sudo useradd -m -g elasticsearch -s /bin/bash elasticsearch sudo passwd elasticsearch # 为其设置一个密码
步骤 2: 下载并安装 Elasticsearch
下载 ARM64 兼容的发布包。这是一个难点,因为官方不直接提供老版本的 ARM 包。您可能需要从第三方镜像或构建中获取。这里假设您已找到
elasticsearch-6.8.23.tar.gz
的aarch64
版本。bash
# 创建一个安装目录 sudo mkdir -p /usr/share/elasticsearch cd /tmp # 假设您已经将包下载到服务器,使用 wget 或 scp 上传 # wget https://example.com/path/to/elasticsearch-6.8.23-aarch64.tar.gz # 解压到安装目录 sudo tar -zxvf elasticsearch-6.8.23-aarch64.tar.gz -C /usr/share/elasticsearch --strip-components=1
设置权限:
bash
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
步骤 3: 配置 Elasticsearch
编辑配置文件:
bash
sudo -u elasticsearch vim /usr/share/elasticsearch/config/elasticsearch.yml
修改以下关键配置(根据您的环境调整):
yaml
# 设置集群名称 cluster.name: my-kylin-cluster # 设置节点名称 node.name: kylin-arm-node-1 # 允许绑定所有网络接口,以便其他机器访问 network.host: 0.0.0.0 # 设置HTTP端口 (默认9200) http.port: 9200 # 单节点集群配置,避免发现阶段失败 discovery.type: single-node # 在开发环境中可以禁用引导检查,但生产环境应逐一解决 # 因为ARM环境+老版本JDK很可能无法通过所有检查 discovery.zen.minimum_master_nodes: 1 bootstrap.memory_lock: false
调整 JVM 配置 (可选,如果机器内存较小):
bash
sudo -u elasticsearch vim /usr/share/elasticsearch/config/jvm.options
修改堆内存大小,例如对于 2GB 内存的机器:
bash
-Xms512m -Xmx512m
步骤 4: 启动 Elasticsearch
使用
systemd
管理服务 (推荐):bash
sudo vim /etc/systemd/system/elasticsearch.service
添加以下内容:
ini
[Unit] Description=Elasticsearch Documentation=https://www.elastic.co After=network.target [Service] Type=simple User=elasticsearch Group=elasticsearch Environment=ES_HOME=/usr/share/elasticsearch Environment=ES_PATH_CONF=/usr/share/elasticsearch/config Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64 # 务必修改为你的JDK8实际路径 ExecStart=/usr/share/elasticsearch/bin/elasticsearch LimitMEMLOCK=infinity LimitNOFILE=65536 LimitNPROC=65536 Restart=always RestartSec=30s [Install] WantedBy=multi-user.target
启动并启用服务:
bash
sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch
检查状态和日志:
bash
sudo systemctl status elasticsearch sudo journalctl -u elasticsearch -f # 跟踪日志 # 或者查看日志文件 tail -f /usr/share/elasticsearch/logs/my-kylin-cluster.log
验证安装:
bash
curl -X GET "http://localhost:9200/"
如果成功,您将看到包含
"number" : "6.8.23"
的 JSON 输出。
第二部分:安装 Kibana 6.8.23
Kibana 版本必须与 Elasticsearch 版本严格一致。
步骤 1: 下载并安装 Kibana
同样,需要找到 Kibana 6.8.23 的 ARM64 版本。
bash
sudo mkdir -p /usr/share/kibana cd /tmp # 假设您已下载 kibana-6.8.23-linux-aarch64.tar.gz sudo tar -zxvf kibana-6.8.23-linux-aarch64.tar.gz -C /usr/share/kibana --strip-components=1
创建用户并授权 (可以与 Elasticsearch 同用户):
bash
sudo chown -R elasticsearch:elasticsearch /usr/share/kibana
步骤 2: 配置 Kibana
编辑配置文件:
bash
sudo -u elasticsearch vim /usr/share/kibana/config/kibana.yml
修改以下关键配置:
yaml
# 服务端口 server.port: 5601 # 允许外部访问 server.host: "0.0.0.0" # 部署的 Elasticsearch 实例 URL elasticsearch.hosts: ["http://localhost:9200"] # 6.x 版本需要设置此参数为当前节点名 kibana.index: ".kibana" # 可选:设置界面语言 # i18n.locale: "zh-CN"
步骤 3: 启动 Kibana
创建
systemd
服务文件:bash
sudo vim /etc/systemd/system/kibana.service
添加以下内容:
ini
[Unit] Description=Kibana Documentation=https://www.elastic.co Requires=elasticsearch.service After=elasticsearch.service [Service] Type=simple User=elasticsearch Group=elasticsearch Environment=KIBANA_HOME=/usr/share/kibana Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64 # 同样修改为你的JDK8路径 ExecStart=/usr/share/kibana/bin/kibana Restart=always RestartSec=30s [Install] WantedBy=multi-user.target
启动并启用服务:
bash
sudo systemctl daemon-reload sudo systemctl enable kibana sudo systemctl start kibana
检查状态:
bash
sudo systemctl status kibana tail -f /usr/share/kibana/logs/kibana.log # 查看日志
访问 Kibana:
打开浏览器,访问http://<您的Kylin服务器IP>:5601
。等待一段时间(初始化较慢),如果一切正常,您将看到 Kibana 6.8 的界面。
可能遇到的问题及解决方案
最大文件描述符限制:
bash
# 以root身份编辑limits.conf sudo vim /etc/security/limits.conf # 在文件末尾添加 elasticsearch - nofile 65536 elasticsearch - memlock unlimited * soft nofile 65536 * hard nofile 65536
最大虚拟内存区域限制:
bash
sudo sysctl -w vm.max_map_count=262144 # 使其永久生效 echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
启动失败:首要任务是查看日志!Elasticsearch 和 Kibana 的日志文件是排查问题的第一信息来源。
bash
tail -f /usr/share/elasticsearch/logs/*.log tail -f /usr/share/kibana/logs/*.log