问题描述:
生产环境中发现之前正常运行的任务,突然在oozie中查看不到log日志,甚是诡异
首先想到的是日志文件不输出肯定是日志采集log4j出现了问题,要么是谁操作了该文件,要么是重新配置了日志的输出级别导致日志不显示。
接下来去验证了之前的猜想。文件齐全且级别为info。此时脑子里的第一回应是 "不应该呀,难道是灵异事件?" 不对,事出必有因,百因必有果,你的报应就是我。。。 啥玩意???
对比了其他环境中的配置文件,oozie-env.sh 、oozie-log4j.properties 未有丝毫改动。
询问了同事是不是之前修改过日志级别,回答说是从warn改为了info,因为这个日志信息会作为公司产品的一个功能模块的前端展现,所以不可能是warn。接着问修改完有没有重启过,回答说是重启过。
本着重启大法好的原则,试探性的点击了ClouderaManager 中 Oozie 的命令菜单,发现
重启个毛毛虫,上周五提的bug,周一我才接手修改,根本没有在正常工作时间内重启过。
好吧,心里大概有了预期,重启一下就好了。
接着 重启了 oozie 服务,重启成功,success ,在服务安装人员的眼中这个单词可是不可描述的神圣。
重新运行了任务,查看了log,wtf,怎么还没有?
那好吧(深深的失望),去查看oozie重启的日志,stdout,发现里面提示了报错信息
暂且不关注这个oozie-cmf-xxx是什么文件。权限不够?查看/var/log/oozie目录权限,所属用户为root用户,一般情况下,cdh中组件都会有自己特定的用户,尝试着将该目录用户修改为oozie用户
chown -R oozie:oozie oozie
重启oozie服务,查看log。得嘞,有了。
经验总结:涉及到服务组件相关的启动关闭操作,一定要去查看日志信息,不能对自己的操作蜜汁自信,也不能对机器的操作结果深信不疑。
一些不注意的点往往会在日志中暴露出来,机器是不能识别你想要的东西,而我们自己知道。