Jenkins
(听松栖迟)
1
【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境
【TDengine 版本】V3.4.0
【操作系统以及版本】
NAME=“openEuler”
VERSION=“22.03 (LTS-SP3)”
ID=“openEuler”
VERSION_ID=“22.03”
PRETTY_NAME=“openEuler 22.03 (LTS-SP3)”
ANSI_COLOR=“0;31”
【部署方式】容器
【集群节点数】
【集群副本数】
【描述业务影响】
【问题复现路径/shan】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
docker run -d --network=host --restart=always --name taos tdengine/tsdb
docker容器中日志显示异常,一直不往下执行。未发现啥报错信息
REPOSITORY TAG IMAGE ID CREATED SIZE
tdengine/tsdb latest afbae7081023 11 days ago 823MB
/var/log/taos 目录下


docker容器内部执行top命令
【资源配置】
【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)
cat /var/log/taos/taosdlog* | grep ERROR
过滤这个看有什么错误。
或 进入容器中,直接手工执行 taosd ,看看输出有什么信息。
Jenkins
(听松栖迟)
3
cat /var/log/taos/taosdlog* | grep ERROR
是没有任何打印的。
执行taosd

Jenkins
(听松栖迟)
5
是的。然后刚刚发现一个问题,当服务器打开外网,就能安装成功,一旦是内网环境,无法连接外网就会卡住。是采用离线安装的,没打开外网
taosd 服务运行,不需要有外网呀。不太清楚你们的环境是什么情况。
Jenkins
(听松栖迟)
7
我也纳闷,但是如果没有外网,就不会往下执行,有外网就会继续执行。
手动在容器内部执行taosd,只打印前面几行日志,然后就没动静了,也不报错。
不太确认是不是官方镜像必须要连接外网访问什么东西,才能继续执行
Jenkins
(听松栖迟)
9
问题解决了,是hostname的问题。
内网机器没有外网,使用的hostname不是localhost。
是一个自定义的hostname,在/etc/hosts 中把自定义的hostname 配置到127.0.0.1 后面就可以了。
TDengine 使用系统的 hostname 作fqdn
# 在容器内执行
hostname # 比如输出 my-tdengine
cat /etc/hosts # 是否包含 127.0.0.1 my-tdengine ?
echo "127.0.0.1 $(hostname)" >> /etc/hosts
但是在taos.cfg中配置的是
fqdn localhost
但是实际上还是被hostname影响到了。
为什么会发生这种情况
我猜测应该是taosd -C的默认行为有关系,哪怕在配置文件中修改了fqdn也会读取hostname作为首次执行的配置
为什么连接外网是可行的,因为在配置外网的过程中,hostname是可以被识别的