Kibana在專案中的應用

2022-03-17 23:21:05 字數 1464 閱讀 8518

雖然本文主要闡釋kibana 在專案中的應用 ,但是我們需要了解乙個常識,那就是一般情況下elk都是組合應用的,在我們的專案中我們也是一起使用的,但是由於對kibana 的頗具熱情,所以本文是對kibana的初始 。

先說下專案背景,我是datawarehouse 的 ,免不了會對些個datastage job 和 informatica 的 session 以及我們寫的shell 和 python ,以及store procedure 等進行監控和追蹤 。

一般情況下如果是做電信的dw專案 都可以有免費的手機簡訊做為失敗告警,當然也會有最基本的郵件通知 。簡訊能夠達到及時性 ,郵件缺失靈活性,不能走到**都扛著電腦吧 ,當然現在也會有移動端的郵件。

隨著devops 和 agile 等 企業轉型的深入 ,專案迫切需要做一些個創新。正如亞馬遜創始人jeff 說的 需要跟上時代 從外部獲取好的改變。正好我們專案中存在一些個小的專案能夠跟這部分契合起來。

小專案的背景是,我們資料從各地市電信營業廳載入到我們ods(operational data store,資料倉儲專案中可選的部分)時候他們是以檔案的形式通過sftp 發到我們的伺服器端的 。 在這裡面我們會用python和shell以及sp 等手段和方法把資料載入到我們的ods 端資料庫中。假設我們叫這部分資料為財務資料(finance data)。這部分財務資訊以一定的頻率傳送過來,假設是

15分鐘。同時這部分資料傳送過來需要有兩部分內容,一種就是我們說的財務資料 假設叫data 檔案,另外一部分就是 對財務資料的核對檔案,假設叫check 檔案 。data 檔案裡面顧名思義存的就是一條條的業務資料,而check 檔案裡面內容還是比較簡單的 是對 data 檔案的做的乙個count ,只記錄data 檔案的條數 。因為資料都是按頻率傳送過來的 ,所以這兩個檔案需要有系統的名字 加 時間戳 。區分的依據是檔案的字尾 。假設 檔案名字如下 :

hong_kong_202002091234.dat

hong_kong_202002091234.chk

為了處理這些個分批次傳送過來的資料,我們需要在unix crontab 裡面配置定時任務。

我們這個定時任務只是一次我們指令碼的啟動,整個業務流程我們採用python 程式完成。而且這個程式程序會一直存在 ,當然如果存在失敗因素等我們需要重新再crontab裡面在啟動一次 。python 程序會處理傳送過來的資料 。處理過程我們就不在介紹了 。

新專案就是為了檢測這個程序的 以及我們收到檔案是否會發生積聚 ,假設程序失敗,或是作為的hang **了 那麼檔案數就會增加 。

最簡單的是我寫了個 ps -ef | grep 指令碼 ,去動態的隔斷時間去check 下這個程序 ,並傳送郵件到同事。但是有個缺點就是大家郵件太多 ,有時候 根本不留意,所以大boss 就提議弄個視覺化的 。

從elk 專案被提上議程 。

kibana 專案大概架構

logstash 呼叫shell 完成資料收集併發送到 es ,kibana 從es 取資料完成展示。

從website 找到的資料

gradle在專案中的應用

compilesdkversion 代表是使用的sdk版本buildtoolsversion 代表構建工具的版本,一般都是sdk相配套的。在專案建立的時候就會自動生成signingconfigs 簽名配置,主要有 develop,release develop 開發時候的配置keyalias apk...

淺拷貝在專案中的應用

有一些概念我們清楚,但在實際中不知道如何去用,這往往是c 初學者的乙個共同的問題,今天我來講的就是 淺表拷貝 簡單來說就是把乙個物件,一模一樣的複製出來乙份來,但淺表拷貝只複製原物件的引用位址,在改變新物件時,原來物件不會改變,而深表拷貝是完全拷貝,在改變新物件時,原物件也會受到影響。以下是淺表拷貝...

淺拷貝在專案中的應用

有一些概念我們清楚,但在實際中不知道如何去用,這往往是c 初學者的乙個共同的問題,今天我來講的就是 淺表拷貝 簡單來說就是把乙個物件,一模一樣的複製出來乙份來,但淺表拷貝只複製原物件的引用位址,在改變新物件時,原來物件不會改變,而深表拷貝是完全拷貝,在改變新物件時,原物件也會受到影響。以下是淺表拷貝...