本文为真实环境手把手实战详解笔记。不赘诉,直接开始
一、实战环境:
操作系统:ubuntu-24.04
已经下载安装:iotdb-2.0.3
已经安装java环境:java 1.8.0_451
二、为Apache IoTDB 2.0.3 单节点创建systemd服务来实现开机启动
1. 创建 systemd 服务文件
sudo nano /etc/systemd/system/iotdb.service
将以下内容复制到文件中
[Unit]
Description=Apache IoTDB 2.0.3 Time-Series Database
Documentation=https://iotdb.apache.org/
After=network.target
[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/opt/apache-iotdb-2.0.3-all-bin
# 环境变量配置
Environment="JAVA_HOME=/java/jdk1.8.0_451"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="IOTDB_HOME=/opt/apache-iotdb-2.0.3-all-bin"
# 启动命令
ExecStart=/opt/apache-iotdb-2.0.3-all-bin/sbin/start-standalone.sh
# 停止命令
ExecStop=/opt/apache-iotdb-2.0.3-all-bin/sbin/stop-standalone.sh
# 服务管理配置
Restart=on-failure
RestartSec=30s
TimeoutStartSec=5min
LimitNOFILE=65536
LimitNPROC=65536
# 日志配置
StandardOutput=journal
StandardError=journal
SyslogIdentifier=iotdb
# 安全配置
NoNewPrivileges=yes
ProtectSystem=full
PrivateTmp=yes
ProtectHome=read-only
[Install]
WantedBy=multi-user.target
2. 设置权限和环境
# 确保Java可执行权限
sudo chmod +x /java/jdk1.8.0_451/bin/java
# 设置IoTDB目录权限
sudo chown -R ubuntu:ubuntu /opt/apache-iotdb-2.0.3-all-bin
3. 启用并启动服务
# 重新加载systemd配置
sudo systemctl daemon-reload
# 启用开机启动
sudo systemctl enable iotdb
# 立即启动服务
sudo systemctl start iotdb
# 停止服务
sudo systemctl stop iotdb
# 重启服务
sudo systemctl restart iotdb
# 查看服务状态
sudo systemctl status iotdb
# 查看实时日志
sudo journalctl -u iotdb -f
# 禁用开机启动
sudo systemctl disable iotdb
4. 验证IoTDB运行
# 检查进程
ps aux | grep iotdb | grep -v grep
# 使用CLI连接测试
/opt/apache-iotdb-2.0.3-all-bin/sbin/start-cli.sh -h localhost -p 6667 -u root -pw root
> show databases;
> show devices;
6. 日志轮转配置(可选)
sudo nano /etc/logrotate.d/iotdb
添加以下内容:
/opt/apache-iotdb-2.0.3-all-bin/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 ubuntu ubuntu
sharedscripts
postrotate
systemctl try-reload-or-restart iotdb >/dev/null 2>&1 || true
endscript
}
7. 防火墙配置(如果需要远程访问)
sudo ufw allow 6667/tcp # IoTDB客户端端口
sudo ufw allow 31999/tcp # JMX监控端口
sudo ufw allow 5555/tcp # Prometheus监控端口
sudo ufw reload
8. 环境检查脚本(可选)
创建环境检查脚本:
vim /opt/apache-iotdb-2.0.3-all-bin/check_iotdb_env.sh
添加以下内容
#!/bin/bash
# 检查Java环境
echo "=== Java环境检查 ==="
echo "JAVA_HOME: $JAVA_HOME"
$JAVA_HOME/bin/java -version
# 检查IoTDB服务状态
echo -e "\n=== IoTDB服务状态 ==="
sudo systemctl status iotdb --no-pager
# 检查端口监听
echo -e "\n=== 端口监听检查 ==="
echo "端口 6667:"
sudo ss -tuln | grep ':6667'
echo "端口 31999:"
sudo ss -tuln | grep ':31999'
# 检查日志错误
echo -e "\n=== 最近日志错误 ==="
sudo journalctl -u iotdb -S "1 hour ago" -p err..alert --no-pager
设置可执行权限:
chmod +x /opt/apache-iotdb-2.0.3-all-bin/check_iotdb_env.sh
执行结果
如果需要下载服务
完整卸载服务流程
# 停止并禁用服务
sudo systemctl stop iotdb
sudo systemctl disable iotdb
# 删除服务文件
sudo rm /etc/systemd/system/iotdb.service
# 重新加载systemd
sudo systemctl daemon-reload
# 删除日志轮转配置
sudo rm /etc/logrotate.d/iotdb