[toc]web
咱们的airflow部署方式为分布式的,在主节点上部署了webserver,worker节点部署了worker和日志服务器,并无将日志写入远程服务器,因此任务的日志是直接写本地磁盘并经过日志服务器传输给webserver进行展现的。在某一次的做业日志查看中发现出现了中文乱码问题。json
@flask_app.route('/log/<path:filename>') def serve_logs(filename): # noqa log = os.path.expanduser(conf.get('core', 'BASE_LOG_FOLDER')) return flask.send_from_directory( log, filename, mimetype="application/json", as_attachment=False) WORKER_LOG_SERVER_PORT = \ int(conf.get('celery', 'WORKER_LOG_SERVER_PORT')) flask_app.run( host='0.0.0.0', port=WORKER_LOG_SERVER_PORT)
该代码中的 flask.send_from_directory 这个方法是传输本地文件的给webserver进行日志展现的flask
修改mimetype为mimetype="application/json;charset=utf-8",重启日志服务器,问题解决浏览器
排查过程并不算难,文章写得很差还请各位童鞋谅解,本次中文问题涉及到了修改源码的操做,不得不说老外的东西毕竟是老外的东西,他们在用的时候可能没有这种问题,但愿本篇文章对各位有帮助,谢谢!服务器