以SQL Server作為資料來源的Kibana儀錶板基礎設定

  • 1457
  • 0
  • 2019-12-13

本篇延續「於Windows環境下安裝ELK及其介接SQL Server測試」做後續的資料視覺處理

本篇用到的Kibana功能:

  • Discover
  • Visualize
  • Dashboard
  • Management

新增index pattern:選擇「Discover」,為index pattern進行命名,若為有效地命名,會以綠色字體將訊息顯示於下方,完成後,即可按下Next step,如下圖。

第二步要選擇時間搜尋欄位,在此選擇一開始MSSQL設定的timestamp欄位,完成後按下「Create index pattern」

index pattern完成後的結果:

補充:可以從「Management」找到先前的index patterns的設定,回到上圖頁面。

回到「Discover」功能:可以針對特定的Filter Field,編寫KQL及選擇時間區間來顯示圖表結果,如下圖。

把此次儲存搜尋條件儲存起來,按下畫面中的「Save」,輸入完內容進行儲存,如下圖。

儲存完後,可在「Management」→「Saved Objects」,進行該搜尋物件的管理,如下圖。

切到「Visualize」頁面,進行圖表的新增。首次新增的畫面如下。點擊「Create new visualization」即可

以本範例來說,較適合的視覺化圖表物件為數字儀表板,用來顯示當前搜尋條件的資料筆數,如下圖,選擇「Gauge」。接著,選擇要產生圖表的查詢項目,如下圖。承上,選擇完自動生成結果,顯示結果:(目前MSSQL中僅有一筆log資料)將此次視覺畫圖表進行儲存,按下畫面中的「Save」,輸入完儲存內容,如下圖。此圖表物件儲存完,一樣可以在「Management」→「Saved Objects」,進行該圖表物件的管理,如下圖。

接著要把以上操作的圖表,加入Dashboard中。來到「Dashboard」頁面,操作如下圖。

按下「Add」,來新增Dashboard,選擇剛才新增的圖表,如下圖。

完成結果:會將其圖表視為一個物件,可自行對該物件進行管理設定,如下圖。確認調整後,即可為該Dashboard的設定進行儲存,如下圖。

嘗試於AppLog資料表中加入新的資料列,看是否圖表會跟著連動

MSSQL新增語法:(Table Schema內容可回去參考「於Windows環境下安裝ELK及其介接SQL Server測試」)

--再多加入6筆log做測試
INSERT [dbo].[AppLog] ([LogID], [Tid], [ParentTid], [Timestamp], [UserID], [ExecutionTime], [Direction], [SessionID], [MenuID], [Source], [Level], [AppID], [HostIP], [HostName], [ClientIP]) VALUES (N'L3544442046X5004', N'T3544442046X5002', N'P3544442046X5000', CAST(N'2019-12-10 08:30:23.164' AS DateTime), N'USER001', CAST(0.01455660 AS Numeric(16, 8)), N'1', N'yqrdvh9aosf0votbngzfu23b', N'StockInfo', N'1', N'1', N'TingSystem.MVC', N'192.168.123.1', N'DESKTOP-BAS9PLU', N'192.168.123.1')
INSERT [dbo].[AppLog] ([LogID], [Tid], [ParentTid], [Timestamp], [UserID], [ExecutionTime], [Direction], [SessionID], [MenuID], [Source], [Level], [AppID], [HostIP], [HostName], [ClientIP]) VALUES (N'L3544442046X5005', N'T3544442046X5002', N'P3544442046X5000', CAST(N'2019-12-11 11:26:05.781' AS DateTime), N'USER001', CAST(0.06388561 AS Numeric(16, 8)), N'1', N'yqrdvh9aosf0votbngzfu23b', N'TradeInfo', N'1', N'1', N'TingSystem.MVC', N'192.168.123.1', N'DESKTOP-BAS9PLU', N'192.168.123.1')
INSERT [dbo].[AppLog] ([LogID], [Tid], [ParentTid], [Timestamp], [UserID], [ExecutionTime], [Direction], [SessionID], [MenuID], [Source], [Level], [AppID], [HostIP], [HostName], [ClientIP]) VALUES (N'L3544442046X5006', N'T3544442046X5002', N'P3544442046X5000', CAST(N'2019-12-12 15:41:44.447' AS DateTime), N'USER001', CAST(0.95887563 AS Numeric(16, 8)), N'1', N'yqrdvh9aosf0votbngzfu23b', N'StockInfo', N'1', N'1', N'TingSystem.MVC', N'192.168.123.1', N'DESKTOP-BAS9PLU', N'192.168.123.1')
INSERT [dbo].[AppLog] ([LogID], [Tid], [ParentTid], [Timestamp], [UserID], [ExecutionTime], [Direction], [SessionID], [MenuID], [Source], [Level], [AppID], [HostIP], [HostName], [ClientIP]) VALUES (N'L3544442046X5007', N'T3544442046X5002', N'P3544442046X5000', CAST(N'2019-12-10 18:50:45.222' AS DateTime), N'USER001', CAST(0.05148690 AS Numeric(16, 8)), N'1', N'yqrdvh9aosf0votbngzfu23b', N'StockInfo', N'1', N'1', N'TingSystem.MVC', N'192.168.123.1', N'DESKTOP-BAS9PLU', N'192.168.123.1')
INSERT [dbo].[AppLog] ([LogID], [Tid], [ParentTid], [Timestamp], [UserID], [ExecutionTime], [Direction], [SessionID], [MenuID], [Source], [Level], [AppID], [HostIP], [HostName], [ClientIP]) VALUES (N'L3544442046X5008', N'T3544442046X5002', N'P3544442046X5000', CAST(N'2019-12-11 16:31:13.563' AS DateTime), N'USER001', CAST(0.08748589 AS Numeric(16, 8)), N'1', N'yqrdvh9aosf0votbngzfu23b', N'TradeInfo', N'1', N'1', N'TingSystem.MVC', N'192.168.123.1', N'DESKTOP-BAS9PLU', N'192.168.123.1')
INSERT [dbo].[AppLog] ([LogID], [Tid], [ParentTid], [Timestamp], [UserID], [ExecutionTime], [Direction], [SessionID], [MenuID], [Source], [Level], [AppID], [HostIP], [HostName], [ClientIP]) VALUES (N'L3544442046X5009', N'T3544442046X5002', N'P3544442046X5000', CAST(N'2019-12-12 19:41:20.871' AS DateTime), N'USER001', CAST(0.06378417 AS Numeric(16, 8)), N'1', N'yqrdvh9aosf0votbngzfu23b', N'StockInfo', N'1', N'1', N'TingSystem.MVC', N'192.168.123.1', N'DESKTOP-BAS9PLU', N'192.168.123.1')

於Logstash服務器上,再次執行以下命令,更新Elasticsearch DB的內容(SQLlog.conf的內容可回去參考「於Windows環境下安裝ELK及其介接SQL Server測試」)

logstash -f D:\ELK\logstash-7.5.0\config\custom\SQLlog.conf

回到Kibana的Dashboard畫面,會及時更新圖表內容,如下圖,即完成。

參考來源:

https://ithelp.ithome.com.tw/articles/10187493