kettle开发-Day43-加密环境下运行作业

发布于:2024-03-02 ⋅ 阅读:(60) ⋅ 点赞:(0)

前言:

        金三银四,开年第一篇我们来介绍下,怎么在加密情况下运行我们的kettle作业及任务。无疑现在所有企业都认识到加密的重要性,加密后的文件在对外传输的时候不能被访问,访问时出现一堆乱码,同时正常的应用软件也会识别不了加密文件,造成软件不能使用,今天来介绍360旗下的奇安信加密对kettle的影响及对应解决办法~

一、加密介绍

        加密状态下,我们在编辑保存任何文件都会被加密,如下图所示kettle文件在编辑保存后会被上锁。其中包括.ktr(转换).kjb(作业)。

        1、现象       

        然后我们查看下定时调度的日志,如下图所示定时调度对应作业时会被提示

        Error reading information from input stream
        Content is not allowed in prolog.


        ERROR: Kitchen can't continue because the job couldn't be loaded.

        2、原因分析 

        因在加密状态下,对kettle来说这种加密的文件是不能被识别,因为奇安信不允许它识别。

二、破局之法

        1、解题思路

        找到原因,我们可以有两个切入点。

        1、kettle绕过加密,独立出来,即针对kettle文件默认不会加密

        2、kettle和加密软件和解,奇安信对kettle开通绿色通道。

        当然,第一种方法实现难度较大,而且不合格信息安全的要求,kettle也应该被纳入加密范围,保证kettle文件的安全及稳定运行。

        2、实践案例

        显然第二种方法才是正道,因此我们怎么才能和加密软件进行和解呢?那首先得告诉加密软件它需要怎么配合?

        这里就需要我们了解kettle背后运行的逻辑了。

        2.1前端spoon.bat加载原理

        如下图所示我们找到kettle运行的进程,可以发现的是kettle在前端是以javaw.exe的方式运行的。

 

        因此我们需要对 javaw.exe开通绿色通道。所以我们也把javaw.exe开放了授权,因此确实作业可以在前端被调度了。然而不出意外的话就要出意外了....

        2.2 Kitchen.bat定时调度运行原理

        如上图所示,我们将  javaw.exe开通了绿色通道,因此我们在本地执行时是ok的,但是我们后台定时调度是采用Kitchen.bat来运行,此时我们需要分析的是后台定时调度是采用什么方式运行的,因此我们采用同样的方式可监控到后台定时任务是调用的java.exe,因此我们还需要给java.exe开通绿色通道。

        此时我们再看后台运行日志,可看到我们的定时任务成功运行,问题解决,完美~

三、总结

        因此后续不管我们公司装的是哪种加密软件,只需要加密软件对  javaw.exe和 java.exe两个进程放行即可,这也是为啥说kettle是一个纯java的开源软件,好的,今天就到这,散会~

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到