日志分析问题

1.通过 journalctl 查看该服务最近的启动日志,观察是否有线索

 # 查看bk-license服务的最新的50行日志,直接输出,不传入给less等PAGER
  >journalctl -u bk-license.service -n 50 --no-pager

2.如果没有可观察到的线索,查看服务的日志,日志目录位于 $BK_HOME/logs/模块名/ 下,如果不确定看哪个日志,找到最新的几个观察

 >cd $BK_HOME/logs/license/ && ls -lrt 
 >less +F license_serverxxxx.log # +F为了直接看行尾的日志

3.如果依然没有找到线索,可以尝试命令行直接启动。因为蓝鲸使用 blueking 账号,应使用 runuser 运行,以便发现权限相关的问题:

 # 查看ExecStart使用的命令行,把相关的变量替换为实际的。
 # 需要注意有一些变量是通过EnvironmentFile=来引用的
 >systemctl cat bk-license.service 
 >runuser -u blueking -- /data/bkce/license/license/bin/license_server -config /data/bkce/etc/license.json
 >ps -ef | grep license_server

4.上一步可能依然没有任何输出,最后的招可以使用 strace 命令观察(需要一定的 Linux 系统调用基础)

 >strace  -f runuser -u blueking -- /data/bkce/license/license/bin/license_server -config /data/bkce/etc/license.json