我们正在使用dsc for linux在linux azure vms上部署elasticsearch。
目前,调试dsc配置是一个巨大的挑战,因为dsc构建/运行的周期很长(几分钟),并且接近omi服务生成的无用日志:dsc.log
该文件包含大量的“噪音”和非常有限的有用的命令输出。也就是说,如果脚本配置步骤失败,它只会声明:
“发生了一般性错误,但没有包含在更具体的错误代码中..相关的resourceid是[nxscript]/somename/“
另一方面,根据OMI logging and debugging:
OMIServer.log日志文件的日志记录级别不能更改为此版本的Unix和Linux操作管理器代理中的默认值。
记录dsc运行shell脚本的所有标准输出的最佳方法是什么?
最佳答案
到目前为止,我们从omi服务器获取完整日志的唯一方法是更改/init.d/omid文件的daemon startup命令行,如下所示:
$CREATE_LINKS && start-stop-daemon --start --quiet --pidfile $PIDFILE --name "omid" --startas $OMI_BIN -- --configfile=/etc/opt/omi/conf/omiserver.conf -d
到
$CREATE_LINKS && start-stop-daemon --start --quiet --pidfile $PIDFILE --name "omid" --startas /bin/bash --background -- -c "exec $OMI_BIN --configfile=/etc/opt/omi/conf/omiserver.conf > /var/log/omiserver.log 2>&1"
请注意:此解决方案只适合作为调试解决方案,不应传播到接近生产的任何地方。omiserver.log将包含所有执行的脚本以及它们的std和err输出。
关于linux - 如何为Azure Linux(ubuntu)DSC框运行的bash脚本启用完整的标准输出日志,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44704204/