前言:
? ? ? ? 金三銀四,開年第一篇我們來介紹下,怎么在加密情況下運行我們的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的開源軟件,好的,今天就到這,散會~