EPICS Archiver Appliance零基础搭建教程:从下载到运行(Tomcat 9.X + JDK 19)
在实验物理和工业控制系统(EPICS)领域,数据归档是确保长期数据可访问性的关键环节。Archiver Appliance作为EPICS生态中广泛使用的归档解决方案,能够高效地存储和检索海量PV(Process Variable)数据。本文将手把手指导初学者完成从零开始的环境搭建,即使您之前没有任何EPICS或Java Web应用部署经验,也能在两小时内完成评估环境的准备。
1. 环境准备与前置条件检查
在开始安装之前,我们需要确保系统满足基本运行要求。Archiver Appliance作为Java Web应用,依赖Tomcat和JDK环境。以下是详细的环境检查步骤:
1.1 硬件与操作系统要求
- 内存:建议至少8GB RAM,运行Tomcat和多个WAR文件需要充足内存
- 磁盘空间:预留10GB以上空间用于安装包和临时文件
- 操作系统:支持主流Linux发行版(如CentOS 7+、Ubuntu 18.04+)和Windows(需调整脚本)
注意:生产环境需要更高配置,本教程仅针对本地评估场景
1.2 JDK 19安装验证
打开终端执行以下命令检查Java版本:
java --version期望输出应类似:
openjdk 19.0.1 2022-10-18 OpenJDK Runtime Environment (build 19.0.1+10-21) OpenJDK 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)如果未安装或版本不符,可通过以下命令安装OpenJDK 19:
# Ubuntu/Debian sudo apt-get install openjdk-19-jdk # CentOS/RHEL sudo yum install java-19-openjdk-devel1.3 网络与防火墙设置
确保系统防火墙允许以下端口通信:
| 端口号 | 用途 | 必需性 |
|---|---|---|
| 17665 | Tomcat默认HTTP端口 | 必需 |
| 61616 | ActiveMQ消息队列 | 可选 |
| 3306 | MySQL数据库(评估版不需要) | 可选 |
临时关闭防火墙进行测试(不推荐生产环境):
sudo systemctl stop firewalld # CentOS/RHEL sudo ufw disable # Ubuntu/Debian2. 软件包下载与解压
2.1 创建专用工作目录
建议新建独立目录存放所有安装文件:
mkdir ~/epics_archiver && cd ~/epics_archiver2.2 获取安装包
从官方渠道下载所需文件(以下为示例版本,请替换为最新版):
# Archiver Appliance核心包 wget https://github.com/slacmshankar/epicsarchiverap/releases/download/v1.1.0/archappl_v1.1.0.tar.gz # Tomcat 9.x wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.73/bin/apache-tomcat-9.0.73.tar.gz验证下载完整性:
ls -lh应看到两个压缩包:
-rw-r--r-- 1 user group 12M Mar 15 10:00 apache-tomcat-9.0.73.tar.gz -rw-r--r-- 1 user group 45M Mar 15 10:01 archappl_v1.1.0.tar.gz2.3 解压文件包
解压Archiver Appliance安装包:
tar -xvzf archappl_v1.1.0.tar.gz解压后目录结构应包含:
quickstart.sh engine.war etl.war mgmt.war retrieval.war LICENSE install_scripts/ sample_site_specific_content/3. Tomcat配置与快速启动
3.1 运行快速启动脚本
执行quickstart脚本并指定Tomcat包路径:
chmod +x quickstart.sh ./quickstart.sh apache-tomcat-9.0.73.tar.gz脚本执行过程会:
- 自动解压Tomcat到
tomcat子目录 - 配置Tomcat监听端口为17665
- 部署四个WAR文件到webapps目录
- 设置日志级别为ERROR
- 启动Tomcat服务
3.2 启动过程监控
正常启动约需2-5分钟,观察控制台输出,关键成功标志为:
INFO config.org.epics.archiverappliance.mgmt.MgmtRuntimeState - All components in this appliance have started up. We should be ready to start accepting UI requests常见启动问题排查:
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 端口冲突 | 17665被占用 | 修改quickstart.sh中的端口号 |
| 内存不足 | JVM堆大小设置过小 | 增加CATALINA_OPTS内存参数 |
| 缺少Java依赖 | JDK未正确安装 | 重新安装JDK 19并设置JAVA_HOME |
| WAR文件部署失败 | Tomcat权限问题 | 检查tomcat/webapps目录权限 |
3.3 验证服务运行
在浏览器访问管理界面(替换实际服务器IP):
http://<your_server_ip>:17665/mgmt/ui/index.html正常应显示Archiver Appliance的Web管理界面,包含以下功能区域:
- PV搜索:查找和添加需要归档的PV
- 归档状态:查看已归档PV的实时状态
- 数据检索:查询历史数据并生成图表
- 系统监控:查看各组件运行状态
4. 基础功能测试与配置
4.1 添加测试PV
在评估环境中,可以使用内置的模拟PV进行测试:
- 在管理界面点击"Add New PVs"
- 输入测试PV名称(如
sim://sine) - 点击"Start Archiving"按钮
成功添加后,PV状态将经历以下变化:
- 初始化:约1分钟获取元数据
- 采样中:5分钟左右监控事件率
- 已归档:开始稳定存储数据
4.2 数据检索验证
等待PV进入归档状态后:
- 导航到"Retrieval"标签页
- 选择时间范围(如最近1小时)
- 点击"Retrieve Data"生成趋势图
典型检索结果应包含:
- 完整的时间-数值曲线
- 统计信息(最小值、最大值、平均值)
- 数据导出选项(CSV、JSON等)
4.3 系统配置调整
虽然快速启动模式已预设合理配置,但可根据需要调整:
日志级别修改: 编辑tomcat/webapps/engine/WEB-INF/classes/log4j2.xml,将Root level改为DEBUG:
<Root level="DEBUG"> <AppenderRef ref="Console"/> </Root>内存参数调整: 修改quickstart.sh,增加JVM参数:
export CATALINA_OPTS="-Xms1g -Xmx2g -XX:MaxMetaspaceSize=512m"持久化配置(可选): 评估版默认使用内存存储配置,重启会丢失PV列表。如需持久化:
cp install_scripts/archappl_sqlite.sql tomcat/conf/5. 日常操作与维护技巧
5.1 服务启停管理
正常停止服务: 在运行quickstart.sh的终端按Ctrl+C,等待Tomcat优雅关闭
手动启动服务: 进入tomcat目录执行:
cd tomcat bin/startup.sh查看运行日志:
tail -f tomcat/logs/catalina.out5.2 常见问题速查表
| 问题现象 | 诊断命令 | 解决方案 |
|---|---|---|
| 无法访问Web界面 | netstat -tuln | grep 17665 | 检查防火墙和Tomcat是否运行 |
| PV长时间处于"采样中"状态 | 查看engine.log中的错误 | 检查EPICS环境变量设置 |
| 数据检索返回空值 | 验证PV是否真实产生数据 | 检查原始PV的连接状态 |
| 内存使用持续增长 | top -p $(pgrep java) | 调整JVM内存参数或减少归档PV数量 |
5.3 评估环境优化建议
- 定期清理测试数据:停止服务后删除
tomcat/work和tomcat/temp目录 - 性能监控:使用
jconsole连接至Tomcat进程监控JVM状态 - 多实例测试:复制整个目录可快速创建多个独立测试实例
- 备份配置:定期备份
tomcat/conf/archappl目录下的配置文件
完成上述所有步骤后,您已经成功搭建起一个功能完整的EPICS Archiver Appliance评估环境。这个环境虽然不适合直接用于生产系统,但完全能够满足开发测试、功能验证和学习研究的需要。当需要迁移到生产环境时,建议参考官方集群部署文档,配置MySQL数据库、多节点集群和持久化存储等企业级功能。