Armbian离线安装ES+SkyWalking并注册系统服务

Armbian离线安装ES+SkyWalking并注册系统服务

前言

本文基于Armbian ARM64 架构,实现Elasticsearch 7.17 + SkyWalking 9.7.0 离线部署,完成系统服务注册、端口自定义、ES认证连接、远程访问等核心配置,同时解决部署中遇到的启动失败127错误、端口占用、ES连接异常、服务无法自启等问题,全程无外网依赖,配置精准无错误。

一、环境准备

  1. 离线安装包(ARM64架构)

  2. 部署路径:/mnt/sda1/(所有软件统一存放,便于管理)

二、JDK11离线安装与环境配置

1. 解压JDK11

Bash 复制代码
tar -zxvf OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.30_7.tar.gz -C /mnt/sda1/
mv /mnt/sda1/jdk-11.0.30+7 /mnt/sda1/jdk11

2. 配置环境变量

Bash 复制代码
vi /etc/profile

添加以下配置:

Bash 复制代码
export JAVA_HOME=/mnt/sda1/jdk11
export PATH=$JAVA_HOME/bin:$PATH

生效配置:

Bash 复制代码
source /etc/profile

3. 验证JDK

Bash 复制代码
java -version

出现JDK11版本信息即配置成功。

三、Elasticsearch 7.17 离线安装与配置

1. 解压ES

Bash 复制代码
tar -zxvf elasticsearch-7.17.29-linux-aarch64.tar.gz -C /mnt/sda1/
mv /mnt/sda1/elasticsearch-7.17.29 /mnt/sda1/elasticsearch

2. 核心配置修改

Bash 复制代码
vi /mnt/sda1/elasticsearch/config/elasticsearch.yml

替换为以下配置(单节点+密码认证+远程访问):

YAML 复制代码
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: false

3. 设置ES密码

启动ES后执行(密码自定义,本文示例:12345644):

Bash 复制代码
/mnt/sda1/elasticsearch/bin/elasticsearch-setup-passwords auto

记住elastic用户密码,后续SkyWalking连接需用。

4. 注册ES系统服务

Bash 复制代码
vi /etc/systemd/system/elasticsearch.service

写入配置:

TOML 复制代码
[Unit]
Description=Elasticsearch
After=network.target

[Service]
User=root
Environment=JAVA_HOME=/mnt/sda1/jdk11
WorkingDirectory=/mnt/sda1/elasticsearch
ExecStart=/mnt/sda1/elasticsearch/bin/elasticsearch
Restart=always

[Install]
WantedBy=multi-user.target

四、SkyWalking 9.7.0 离线安装与核心配置

1. 解压SkyWalking

Bash 复制代码
tar -zxvf apache-skywalking-apm-9.7.0.tar.gz -C /mnt/sda1/
mv /mnt/sda1/apache-skywalking-apm-9.7.0 /mnt/sda1/skywalking

2. 配置SkyWalking OAP连接ES

修改OAP核心配置,对接ES存储:

Bash 复制代码
vi /mnt/sda1/skywalking/config/application.yml

找到storage模块,修改为:

YAML 复制代码
storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    namespace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    user: ${SW_ES_USER:"elastic"}
    password: ${SW_ES_PASSWORD:"12345644"}
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1}
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}

关键修改:

  • 存储类型改为elasticsearch

  • 填写ES的elastic账号密码

  • 单节点ES将副本数改为0(避免告警)

3. 修改SkyWalking UI端口为9201

SkyWalking UI默认端口8080,修改为9201并开启远程访问:

Bash 复制代码
vi /mnt/sda1/skywalking/webapp/application.yml

修改端口配置:

YAML 复制代码
serverPort: ${SW_SERVER_PORT:-9201}
oapServices: ${SW_OAP_ADDRESS:-http://localhost:12800}
zipkinServices: ${SW_ZIPKIN_ADDRESS:-http://localhost:9412}

说明 :SkyWalking 9.7.0 UI默认监听0.0.0.0,无需额外配置远程访问。

五、SkyWalking 系统服务注册

1. 注册OAP服务

Bash 复制代码
vi /etc/systemd/system/skywalking-oap.service

写入配置(解决systemd找不到JDK的127错误):

TOML 复制代码
[Unit]
Description=Apache SkyWalking OAP
After=network.target elasticsearch.service
Requires=elasticsearch.service

[Service]
User=root
Environment=JAVA_HOME=/mnt/sda1/jdk11
Environment=PATH=/mnt/sda1/jdk11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
WorkingDirectory=/mnt/sda1/skywalking
ExecStart=/mnt/sda1/skywalking/bin/oapService.sh
Restart=always

[Install]
WantedBy=multi-user.target

2. 注册UI服务

Bash 复制代码
vi /etc/systemd/system/skywalking-ui.service

写入配置:

TOML 复制代码
[Unit]
Description=Apache SkyWalking UI
After=network.target skywalking-oap.service
Requires=skywalking-oap.service

[Service]
User=root
Environment=JAVA_HOME=/mnt/sda1/jdk11
Environment=PATH=/mnt/sda1/jdk11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
WorkingDirectory=/mnt/sda1/skywalking
ExecStart=/mnt/sda1/skywalking/bin/webappService.sh
Restart=always

[Install]
WantedBy=multi-user.target

六、服务启动与开机自启

1. 重载系统服务

Bash 复制代码
systemctl daemon-reload

2. 设置开机自启

Bash 复制代码
systemctl enable elasticsearch skywalking-oap skywalking-ui

3. 启动服务

Bash 复制代码
systemctl start elasticsearch
//过一会再启动skywalking
systemctl start skywalking-oap skywalking-ui

4. 查看服务状态

Bash 复制代码
systemctl status elasticsearch
systemctl status skywalking-oap
systemctl status skywalking-ui

服务显示active (running)即启动成功。

七、核心问题解决(部署必看)

问题1:服务启动报错code=exited, status=127

  • 原因:systemd无法识别系统环境变量,找不到JDK

  • 解决:服务文件中添加Environment=JAVA_HOME=/mnt/sda1/jdk11指定JDK路径

问题2:SkyWalking OAP无法连接ES

  • 原因:ES密码错误、存储类型未改、单节点副本数未设为0

  • 解决:核对ES账号密码;storage.selector设为elasticsearch;indexReplicasNumber设为0

问题3:端口占用导致启动失败

  • 原因:残留进程占用12800/3100/9200端口

  • 解决:

Bash 复制代码
pkill -f 'skywalking'
fuser -k 12800/tcp 3100/tcp 9200/tcp

问题4:SkyWalking UI无法远程访问

  • 解决:UI配置文件serverPort修改为目标端口,防火墙放行端口,SkyWalking 9.7.0默认支持远程访问,无需额外配置host

八、访问验证

  1. Elasticsearch验证
Bash 复制代码
curl -u elastic:12345644 http://服务器IP:9200

返回ES版本信息即正常。

  1. SkyWalking UI访问

浏览器打开:http://服务器IP:9201

默认账号:admin,密码:admin

九、总结

本文完成了Armbian ARM64架构下ES+SkyWalking离线部署、系统服务注册、端口自定义、ES认证连接全流程配置,解决了部署中核心的启动失败、连接异常、端口修改等问题,服务可开机自启、远程访问,满足生产环境基础使用需求。

相关推荐
Elasticsearch14 分钟前
使用 Lucene 搜索你的 Bean — 搜索
elasticsearch
计算机毕业编程指导师28 分钟前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师34 分钟前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
geovindu2 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构
samLi06203 小时前
【数据集】A股上市公司beta贝塔系数数据(2010-2024年)
大数据
xianghongtao01163 小时前
麦肯锡2026技术趋势03_科学发现与工程AI_研究解读
大数据·人工智能
成长之路5145 小时前
【数据集】中国分行业进出口数据(2019-2026年)
大数据
计算机毕业编程指导师6 小时前
【大数据毕设选题推荐】基于Spark的WTA职业网球赛事演变与竞技格局分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·python·计算机·spark·毕业设计·课程设计·wta网球
躺柒7 小时前
读数据架构知识体系指南14数据编织
大数据·数据仓库·数据分析·数据湖·数据编织