如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

i042416發表於2019-12-01

Prometheus是一套開源的系統監控報警框架。它啟發於Google的borgmon 監控系統,由工作在 SoundCloud 的 google 前員工在 2012 年建立,作為社群開源專案進行開發,並於2015年正式釋出。2016年,Prometheus 正式加入 Cloud Native Computing Foundation,成為受歡迎度僅次於Kubernetes 的專案。

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

我們可以利用Prometheus強大的監控功能來採集SAP ABAP Netweaver伺服器上執行應用的各項日誌。以SAP CRM Fiori應用My Opportunity為例,假設我開發了一個自定義日誌功能,把所有使用者對Opportunity的讀操作明細, 包括請求者,請求日期和請求時間記錄在一個資料庫表裡。

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

然後我希望藉助Prometheus,定期地查詢Netweaver伺服器,監控它服務了讀請求的數量。下面是具體步驟。

(1) 在CRM My Opportunity後臺的OData服務實現的BAdI definition CRM_OPPORTUNITY_ODATA_BD裡建立一個增強。

因為所有的讀請求,最後都要經過方法SORT_AND_FILTER_OPPT_TABLE的處理,所以我們把日記記錄實現在這個方法裡:

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

(2) 事務碼SICF建立一個新的服務節點:

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

用SELECT COUNT(*)把資料庫日誌表的條目數讀取出來,通過HTTP的方式返回給消費者。

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

(3) 在Prometheus伺服器的配置檔案prometheus.yml裡,新增一條定期抓取步驟二建立的Netweaver HTTP服務:

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

第26行metrics_path即為SICF事務碼裡建立的服務路徑,28行意思是每2秒抓取一次。33行是Netweaver伺服器的主機名。

啟動Prometheus伺服器:

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

到Fiori UI上使用My Opportunity應用,觸發讀請求:

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

能看到日誌表裡填充了資料:

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

localhost:9090訪問Prometheus的UI控制檯,能看到採集的讀請求個數:

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

切換到Graph皮膚,能看到指定時間間隔內的讀請求變化趨勢,比如下圖意思是過去五分鐘之內,讀請求數量呈線性增長趨勢

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料 如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

如何使用Prometheus採集SAP ABAP Netweaver的應用日誌資料


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2666397/,如需轉載,請註明出處,否則將追究法律責任。

相關文章