日志分析问题
<p>1.通过 journalctl 查看该服务最近的启动日志,观察是否有线索</p>
<pre><code> # 查看bk-license服务的最新的50行日志,直接输出,不传入给less等PAGER
>journalctl -u bk-license.service -n 50 --no-pager</code></pre>
<p>2.如果没有可观察到的线索,查看服务的日志,日志目录位于 $BK_HOME/logs/模块名/ 下,如果不确定看哪个日志,找到最新的几个观察</p>
<blockquote>
<p>cd $BK_HOME/logs/license/ && ls -lrt
less +F license_serverxxxx.log # +F为了直接看行尾的日志</p>
</blockquote>
<p>3.如果依然没有找到线索,可以尝试命令行直接启动。因为蓝鲸使用 blueking 账号,应使用 runuser 运行,以便发现权限相关的问题:</p>
<h1>查看ExecStart使用的命令行,把相关的变量替换为实际的。</h1>
<pre><code> # 需要注意有一些变量是通过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</code></pre>
<p>4.上一步可能依然没有任何输出,最后的招可以使用 strace 命令观察(需要一定的 Linux 系统调用基础)</p>
<pre><code> >strace -f runuser -u blueking -- /data/bkce/license/license/bin/license_server -config /data/bkce/etc/license.json</code></pre>