我们的文章会在微信公众号IT民工的龙马人生和博客网站 ( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
使用yasboot添加主机节点时,出现无法连接到1676端口的问题。
[yashan@kylindg01 install]$ cd /home/yashan/install && yasboot host add -c yashandb -t /home/yashan/install/hosts_add.toml +------------------------------------------------------------------------------------------------+ | type | uuid | name | hostid | index | status | return_code | progress | cost | +------------------------------------------------------------------------------------------------+ | task | a3aea640a05e32a3 | HostAdd | - | yashandb | FAILED | 1 | 100 | 44 | +------+------------------+---------+--------+----------+--------+-------------+----------+------+ task completed, status: FAILED retcode: 1 stdout: sync node config stderr: connect rpc: [10.10.10.151:1676], failed: dial tcp 10.10.10.151:1676: connect: connection refused1676端口默认为yasagent进程的监听端口。yasboot会先启动151节点的yasagent进程,待启动完成后再连接1676端口。根据这个现象可以推断出两点:一是151节点执行yasagent启动命令时返回码为0(表示启动命令执行成功),二是yasagent进程启动后发生了异常退出。
1.2 故障分析
1.2.1 查询进程
通过ps命令查看yasagent进程是否存在,发现进程不存在。
[yashan@kylindg02 yashandb]$ ps -ef|grep yasagent yashan 116023 33996 0 13:34 pts/0 00:00:00 grep --color=auto yasagent1.2.2 分析启动日志
yasagent的日志包括启动日志、故障日志和运行日志三类。下面需要逐一检查这些日志中是否有报错信息。
运行日志:
[yashan@kylindg02 yashandb]$ tail -20 yasagent.log 2026-01-19 09:18:05 INFO [rpc] service.go:131 rpc server: register HostAPI.YasomDemote 2026-01-19 09:18:05 INFO [rpc] service.go:131 rpc server: register LoaderAPI.ExistCsvInSplitDir 2026-01-19 09:18:05 INFO [rpc] service.go:131 rpc server: register LoaderAPI.GetLoadConfig 2026-01-19 09:18:05 INFO [rpc] service.go:131 rpc server: register IpchangeAPI.AddrChangeByHost 2026-01-19 09:18:05 INFO [yasagent] server.go:240 server listening on 10.10.10.151:1676 2026-01-19 09:18:05 INFO [backup] backup_manager.go:111 backup manager starting... 2026-01-19 09:18:06 INFO [yasagent] start_log.go:40 write start log启动日志:
启动日志显示启动成功。
[yashan@kylindg02 yashandb]$ cat yasagent-start.log 2026-01-19 10:28:09 start success故障日志:
[yashan@kylindg02 yashandb]$ ls -rlt total 12 -rw-r--r-- 1 root root 0 Jan 19 09:18 yasagent-panic.log故障日志文件为空,未发现任何报错信息。
1.2.3 手动启动yasagent进程
手动启动yasagent进程,命令返回启动成功,但通过ps命令查询发现进程仍然不存在。
[yashan@kylindg02 bin]$ ./yasboot process yasagent start -c yashandb start local agent successfully! [yashan@kylindg02 bin]$ ps -ef|grep yasagent yashan 116125 33996 0 13:36 pts/0 00:00:00 grep --color=auto yasagent手动启动yasagent进程时表现出的现象与添加节点时的现象一致。
1.2.4 日志生成时间
再次检查之前查看过的日志文件,发现两个关键问题:一是日志文件的生成时间不是当前时间,二是日志文件的属主是root用户,而非yashan用户。yasagent进程在启动过程中会重置对应的日志文件,由于日志文件的属主和权限不正确,yasagent进程在尝试重置日志文件时因权限不足而异常退出。
[yashan@kylindg02 yashandb]$ ls -rlt total 12 -rw-r--r-- 1 root root 0 Jan 19 09:18 yasagent-panic.log drwxr-xr-x 2 root root 6 Jan 19 09:18 worker -rw-r--r-- 1 root root 33 Jan 19 09:18 yasagent-start.log -rw-r--r-- 1 root root 4860 Jan 19 09:18 yasagent.log1.3 故障原因
yasagent进程在启动过程中会重置日志文件,由于日志文件的属主和权限不正确(属主为root而非yashan用户),yasagent进程在尝试重置日志文件时因权限不足而异常退出。
1.4 解决方案
1.4.1 删除日志文件
删除现有的日志文件,确保后续yasagent进程可以正常创建新的日志文件。
rm -rf *.log1.4.2 清理环境
从OM(运维管理平台)中删除添加失败的节点信息。
yasboot host remove -c yashandb -f --ip 10.10.10.151 --with-unconnected-host清理151节点上的环境:
rm -rf /home/yashan/.yasboot rm -rf /data/yashan/yasdb_home/23.4.6.100/1.4.3 重新添加节点
[yashan@kylindg01 ~]$ cd /home/yashan/install && yasboot host add -c yashandb -t /home/yashan/install/hosts_add.toml +-------------------------------------------------------------------------------------------------+ | type | uuid | name | hostid | index | status | return_code | progress | cost | +-------------------------------------------------------------------------------------------------+ | task | b2fbe833942fbb0b | HostAdd | - | yashandb | SUCCESS | 0 | 100 | 44 | +------+------------------+---------+--------+----------+---------+-------------+----------+------+ task completed, status: SUCCESS