[toc] Infoblox 提供報表和分析 (Reporting and Analytics) 解決方案,會自動收集、分析和呈現核心網路服務數據,協助管理者規劃管理網路。除了提供預先定義的儀表板和報表,可取得核心網路服務相關活動和效能資訊。也提供了增強性報表介面,以便管理者可以自行建立儀表板、報表和警報。 # 啟用報表功能 請先參考 Infoblox NIOS 9 官方文件 [[Setting Up Reporting and Analytics]](https://docs.infoblox.com/space/nios90/280857309/Setting+Up+Reporting+and+Analytics),完成 Reporting 服務組態並確認服務正常啟用。 點選 **Grid** > **Grid Manager** > **Reporting**,確認 Reporting 服務狀態正常。 ![螢幕快照 2024-03-07 14-53-32](https://hackmd.io/_uploads/r1DxLJPa6.png) 點選 **Reporting** 繼續還需要完成 **App Configuration** 任務。 > 就是覺得重複性的畫面點擊設定很麻煩!如果也可以用 API 完成就好了?! ![圖片](https://hackmd.io/_uploads/rJrHWijF6.png) 設定外部檔案伺服器以提供查詢匯出,若是測試不需要,就任意輸入內容完成即可。 ![圖片](https://hackmd.io/_uploads/HJL2-isF6.png) :::warning 若是後續的警報、報表需要匯出至檔案伺服器時,就要重新配置此選項。 點選 **Reporting** 功能,確認 Apps 選單為 **Infoblox Reporting & Analytics**,再點選上方 **Administration** > **Set up** 後,便可調整檔案服務器選項。 ![螢幕快照 2024-03-21 09-34-45](https://hackmd.io/_uploads/BkrlkztRp.png) ::: :::warning 在 Reporting 功能頁,點選右上方 **Settings** > **Alert actions**,可以設定警報和報表觸發時的作動行為。 <img width=300 src='https://hackmd.io/_uploads/rkePgftA6.png'><br> 其中 **File Transfer Action** 功能就需要設定正確的檔案伺服器,點選右側 **Setup Infoblox Reporting & Analytics** 進行組態。 ![螢幕快照 2024-03-21 09-47-53](https://hackmd.io/_uploads/r10UfMK0T.png) 只不過在我的系統上點選設定後會出現 "**我是傳奇**"?!見 :ghost: 了!暫時就用上面提供的方式進行設定吧! <img width=280 src='https://hackmd.io/_uploads/BJbB7zKRp.png'> ::: ## 目前設定 選擇 **Grid** > **Grid Manager** > **Reporting**,點擊 **`鉛筆圖示`** 進行編輯。 ![螢幕快照 2024-03-08 08-09-49](https://hackmd.io/_uploads/Bypv_0Dap.png) - 確定進入 **Grid Reporting Properties** 配置,並確認以下設定。 - **`Reporting Server`** 配置主機是否正確。 - 勾選 **`Enable Data Indexing`** 啟用資料傳輸 (預設停用)。 - **報表類別(`Report Category`)** 設定,選擇報告伺服器產生的報表類別。報告伺服器會根據報表類別,自動設定產生所需的資料來源和配置。所需的資料儲存在報告伺服器資料庫中。預設未選擇任何報表類別,至少選擇一種類別,服務才能正常運作。 | Category<br>報表類別 | Index %<br>報表索引儲存空間 | Index Name<br>報表索引名稱 | | --- | :-: | -- | | Audit Log | 5 | ib_audit | | DNS Query<br>DNS Performance<br>DNS Record Scavenging | 20 | ib_dns<br>ib_dns_summary | | Security | 5 | ib_security<br>ib_security_summary | | Syslog | 5 | ib_syslog | | System Capacity | 5 | ib_system_capacity | | System Utilization | 15 | ib_system<br>ib_system_summary | | **Total** | **55** | 索引值加總不大於 100 | ![螢幕快照 2024-03-08 08-37-57](https://hackmd.io/_uploads/BJHSRAwap.png) ![螢幕快照 2024-03-08 08-40-26](https://hackmd.io/_uploads/Sylh0Av6a.png) :::info - **`Index %`** 為報表索引所指派的實際儲存空間。 - 啟用類別並將索引設定為 0% 時,會顯示錯誤訊息。**若啟用該報表類別,至少設定為 1%**。 - 若配置索引儲存空間的加總百分比低於 100%,系統會顯示警告訊息。 ![image](https://hackmd.io/_uploads/Hk6fiyup6.png) - 以上配置僅為一般使用設定,若有其他報表分析需求,請參考 [[**官方文件:Grid Reporting Properties**]](https://docs.infoblox.com/space/nios90/280267688/Grid+Reporting+Properties) 進行調整。 ::: # 報表功能 :::warning :warning: **警告** - 原廠建議**不要直接修改預先定義的項目 (包含告警、報表和儀表板)**。因為編輯預先定義項目將會更改預設設定,而且變更將永久生效。 - **建議作法**:複製所選擇的預先定義項目,修改其相關配置以符合需求。 ::: ## 操作主頁面 點選 **Reporting** 功能選項,若報表服務正確運行,應會顯示 **首頁儀表板 Home Dashboard** 為主頁的報表使用介面。 ![螢幕快照 2024-03-07 15-48-12](https://hackmd.io/_uploads/BkRtbxDTp.png) - 報表主頁面板功能概覽 :::info 詳細說明請參考 [[**官方文件 Reporting User Interface Overview**]](https://docs.infoblox.com/space/nios90/280857174/Reporting+User+Interface+Overview) ::: ![image](https://hackmd.io/_uploads/Hybz7raa6.png) 報表面板功能區主要分成兩部份: - **報表主要功能**:提供儀表板、報表、警報、搜尋、報表資料庫和管理權限項目。 ![image](https://hackmd.io/_uploads/B1S4OSaTT.png) - **報表組態及任務狀態**:提供報表訊息、報表內容及格式內容、郵寄報表、警報活動和 Splunk 線上文件。 ![image](https://hackmd.io/_uploads/r1fP_r66p.png) ## 搜尋 (Search) **搜尋是報告伺服器用來儲存報表和儀表板面板的基本條件**。每個預先定義的報表也都有一個關聯的搜尋。詳細資訊請參閱 [[Splunk 官方文檔]](http://docs.splunk.com/Documentation)。 輸入搜尋條件,並選擇**時間範圍(預設為過去 24 小時)**,點擊搜尋圖示進行資料搜索檢視。點選 **Visualization** 可視覺化搜尋數據。點擊右上方 **另外儲存 (Save As)** 可將搜尋結果為**報表**、**警報**和**儀表板面板**。 ![螢幕快照 2024-03-12 14-27-27](https://hackmd.io/_uploads/S1KHLdp6a.png) :::info - 上述搜尋語法取自 **`Reports: CPU Utilizaion Trend`**。 ```= index=ib_system_summary report=si_cpu_usage | timechart bins=1000 avg(CPU_PERCENT) by orig_host where max in top5 useother=f | interpolate 1200 ``` ::: 點選紅框標注的 **匯出(Export)** 圖示,可以將搜尋資料匯出成 **CSV/XML/JSON** 格式的檔案。 <img width=540 src='https://hackmd.io/_uploads/HJMGsdTaT.png'> <img width=400 src='https://hackmd.io/_uploads/ryauo5p66.png'> :::info 由此可知,所有的報表、警報和儀表板面板,都可透過搜尋條件產生,管理者可根據條件及環境,客製化所需的數據顯示方式,以便提高管理效益。 ::: ## 警報 (Alert) 管理者可以設定在發生指定事件時觸發操作警報。透過搜尋結果設定警報條件,若符合條件則會觸發警報操作。警報告知可用電子郵件通知(mail notification)、SNMP 陷阱(SNMP trap)和在系統日誌中記錄訊息。警報是根據對應搜尋的更新頻率而執行的。 ![螢幕快照 2024-03-13 09-58-42](https://hackmd.io/_uploads/ByweiYCaa.png) ### 建立警報 從預先定義警報開始吧!輸入 **`search-dns`** 篩選警報項目。點選 **Edit** 可以編輯該警報類型、觸發條件、警報動作和克隆(Clone)警報。 我們選擇 **si-searhc-dns-rpz-hits** 警報,點擊 **Open in Search** 先在搜尋中開啟設定條件。 :::warning **注意** 請不要直接修改系統預設定義的設定,若要編輯或新增,可透過克隆及搜尋方式,自行調整,完成後另存。 ::: ![螢幕快照 2024-03-13 10-24-44](https://hackmd.io/_uploads/BJrCCFCaa.png) 從搜尋結果顯示,發現系統有多筆符合 RPZ 比對規則事件發生,表示 DNS 防火牆正常作用,內部有不正常的網域查詢行為。 ![螢幕快照 2024-03-13 10-40-10](https://hackmd.io/_uploads/ByV8z9RTT.png) 點選 **Custom time**,可以調整搜尋時間範圍,該警報的預設為目前時間的前 10~20 分鐘。 :::info - 前 20 分鐘以 `-20m@m` 表示。 - `Earliest Time` 表示最早時間,`Latest Time` 表示最晚時間,時間視窗指的是 `Latest Time` - `Earliest Time`。 - {`Earliest=-30m@m`, `Latest=now`} 表示 30 分鐘前,{`Earliest=@d`, `Latest=now`} 則表示今天。有關時間範圍設定,請參考 Splunk 文件說明 - [Select time ranges to apply to your search](https://docs.splunk.com/Documentation/Splunk/8.2.10/Search/Selecttimerangestoapply) - [Specify time modifiers in your search](https://docs.splunk.com/Documentation/Splunk/8.2.10/Search/Specifytimemodifiersinyoursearch) ::: 點擊 **`Save As`** 另存成警報。 <img width=480 src='https://hackmd.io/_uploads/BJ_1JiR66.png'><br> 根據警報內容指定標題,其他警報設定暫時都使用原先設定。 <img width=480 src='https://hackmd.io/_uploads/r14_ksRa6.png'><br> 在**觸發動作 (Trigger Actions)** 區塊,點擊 **`+ Add Actions`**,選擇 **`Send email`** 設定警報觸發時[**發送電子郵件**](#設定郵件通知)。 ![螢幕快照 2024-03-13 11-38-04](https://hackmd.io/_uploads/rygqlxs0a6.png) 在收件者區域中指定電子郵件地址,其餘部份暫時採用預設組態。點選 **Save** 儲存警報。 ![螢幕快照 2024-03-13 11-51-40](https://hackmd.io/_uploads/HkfXXjCa6.png) 在 **Alert** 頁面,選擇 **Yours**,可以直接檢視自行定義的警報項目。 ![螢幕快照 2024-03-13 12-04-07](https://hackmd.io/_uploads/rJwsLhC66.png) 接著可以嘗試觸發警報條件讓警報進行作動,執行 BASH 腳本進行觸發警報。 <img width=360 src='https://hackmd.io/_uploads/SJccPaCT6.png'><br> 點擊右上方區域 **Activity** > **Triggered Alerts**,來檢視已觸發的警報資訊。 <img width=480 src='https://hackmd.io/_uploads/rkwUjnA6a.png'> 可以根據警報的 **Owner**、**Severity** 和 **Alert** 篩選警報,也可透過右上方輸入關鍵字搜尋警報。 ![螢幕快照 2024-03-13 13-38-55](https://hackmd.io/_uploads/SyFwn3R6T.png) 可觀察到警報都按照設定的每 10 分鐘執行 (`2-59/10 * * * *`),只要滿足條件觸發就會發出警報。 ![螢幕快照 2024-03-13 14-12-36](https://hackmd.io/_uploads/SJxU46App.png) :::danger 當初設定錯誤,完全誤解下列結果: 從公司郵箱可以收到告警通知郵件。其實下列郵件是透過 Infonlox 系統通知(Notification)發出的郵件通知。 <img width=320 src='https://hackmd.io/_uploads/rkUJPaRaa.png'><br> <img width=320 src='https://hackmd.io/_uploads/BysJP6Cpp.png'> ::: ## 報表 (Report) 有了警報製作的經驗,報表製作也是進行類似的動作。當然系統內建了預先定義搜尋條件的報表,用來從資料庫中檢索特定資料。原廠**不建議修改預先定義的報表**。 :::info **建立自定義報表** - 執行搜尋,將搜尋結果另存為報表。 - 複製現有報表,修改搜尋條件儲存。 ::: ### 建立報表 透過 **Reporting** > **Reports**,選擇預先定義報告 **CPU Utilization Trend**,點擊 **`Open in Search`** 開啟於搜尋頁面。 ![螢幕快照 2024-03-13 15-14-13](https://hackmd.io/_uploads/HkqnNAAap.png) 調整一下時間範圍為**一個月**,點擊 **Apply** 套用,檢視該報表資訊是否合用。 ![螢幕快照 2024-03-13 15-33-26](https://hackmd.io/_uploads/SkFWvCR66.png) 如同製作警報一樣,點選右上方 **Save As** > **Report**,將搜尋結果儲存為自定義的報表。 ![螢幕快照 2024-03-13 15-34-41](https://hackmd.io/_uploads/HkuIDACpT.png) 編輯報表資訊,點擊 **Save** 完成。 <img width=400 src='https://hackmd.io/_uploads/BycZYAAaT.png'> :::danger **注意** 若該報表規劃為排程報表,**請勿啟用 Time Ranger Picker**。 <img width=400 src='https://hackmd.io/_uploads/HJyfeCyRa.png'> ::: 建立報表完成後,可依照畫面功能繼續下一步設定。 <img width=400 src='https://hackmd.io/_uploads/Sko8K0Rpp.png'> 之後若要檢視自定義報表,可以選擇 **Reporting** > **Reports** > **Yours**。 ![image](https://hackmd.io/_uploads/SJOHjC0ap.png) 直接點選報表連結即可展開報表檢視。 ![image](https://hackmd.io/_uploads/ryCQqCCa6.png) ## 儀表板 (Dashboard) 儀表板可以提供 Infoblox Grid 中大多數資料和趨勢的摘要視圖,原廠也提供預先定義的儀表板清單使用。若管理者需要修改預設儀表板的設置,可以複製預設的儀表板,或從頭開始建立新儀表板。透過建立自行定義的儀表板,可以依據需求配置面板和報表,以顯示與監控活動的相關資訊。 :::info 透過儀表板面板配置,可將**多個報表資訊在一個儀表板**上同時呈現。 ::: 選擇 **Reporting** > **Dashboards**,可正確顯示預先定義的儀表板(predefined dashboards)清單。 ![螢幕快照 2024-03-07 15-17-13](https://hackmd.io/_uploads/rkOX9Jwaa.png) ### 製作儀表板 儀表板製作的方式及流程,也是與警報、報表類似,請根據上述的經驗快速達成。 :::warning **注意** 請不要直接修改系統預設定義的設定,若要編輯或新增,可透過克隆及搜尋方式,自行調整,完成後另存。 ::: #### 複製儀表板 進入 **Reporting** > **Dashboards** 功能頁面,輸入關鍵字 **`home`** 取得儀表範本。 > **Home Dashboard** 就是 Reporting 主頁的儀表板。 點選該儀表板右側 **Edit** > **Clone** 複製預先定義儀表板。 ![螢幕快照 2024-03-07 16-19-19](https://hackmd.io/_uploads/SyoR_gPap.png) 填入所需資訊,點選 **Clone Dashboard**。 <img width=400 src='https://hackmd.io/_uploads/r1yQceDaT.png'> :::info 若是不想變更原有的**權限 (Permissions)** 的話,可以點選 **Clone** 複製權限。預設選項為 **Private**,僅有儀表板建立者可供使用。之後編輯儀表板可變更權限。 ::: 複製完成後,可以點選其他設定功能。 <img width=400 src='https://hackmd.io/_uploads/S1tPqxwpa.png'> 先直接點擊 **View** 檢視結果吧。 ![image](https://hackmd.io/_uploads/SJPFqxDT6.png) 回到 **Reporting** > **Dashboards** 檢視剛剛複製的儀表板,其擁有者(owner)為 **`infoblox-admin`**。 ![螢幕快照 2024-03-07 16-28-58](https://hackmd.io/_uploads/Bk0WjlDTp.png) ### 新增儀表板 儀表板提供多個面板及報告新增至儀表板,可根據不同管理需求,自行定義建立儀表板,但較為便利的方式,就是以原廠提供預先定義的儀表板或報表作為範本,進行調整後產生。 在此之前,我們先新增一個新的儀表板,作為**儀表板容器**。從 **Reporting** > **Dashboards** 進入儀表板功能,點擊右側 **Create New Dashboard** 新增儀表板容器。 ![螢幕快照 2024-03-07 16-34-13](https://hackmd.io/_uploads/ryXV2xvpa.png) 輸入 **Dashboard Title** 標題名稱,這裡不用介意之後還可以進行修改。 :::warning 但這裡設定的標題名稱會影響 **`Dashboard ID`**,在 Reporting 資料庫中,識別碼應該是檔案名稱,必須唯一存在。 ::: 儀表板類型先選擇 **Classic Dashboards** 類型,這也是目前 Infoblox Reporting 主要使用的儀表板型態。至於 **Dashboard Studio** 是 Splunk 最新版本的儀表板類型,有興趣的請參考下列資訊研究。 :::info - **Classic Dashboards** 是 Splunk 傳統類型儀表板。 - **Dashboard Studio** 是 Splunk 最新版本的新型儀表板。相關資訊請參考 [[**Splunk 官方說明**]](https://docs.splunk.com/Documentation/Splunk/8.2.4/DashStudio/IntroFrame)。 ::: 點擊 **Create** 完成儀表板容器建立。 <img width=440 src='https://hackmd.io/_uploads/ByLypxw66.png'> ### 編輯儀表板 新儀表板建立完成後,**裡面什麼都沒有**!對,就是剛剛提到的**儀表板(空白)容器**。 ![螢幕快照 2024-03-14 16-05-47](https://hackmd.io/_uploads/H1lOg4lCp.png) 先點選右上方 **Edit** 編輯儀表板,再點選左上方的 **Source**。 ![螢幕快照 2024-03-14 16-09-48](https://hackmd.io/_uploads/rya_W4lRT.png) 此時會顯示儀表板的 XML 語法組態。待會我們會**使用編輯 XML 設定的方式來編修儀表板**容器。 ![螢幕快照 2024-03-14 16-09-59](https://hackmd.io/_uploads/H1zVX4gA6.png) 暫時先使用之前學到的技巧,將報表 **`CPU Utilization Trend`** 另存至新增的儀表板容器中。先找到相關報表,並顯示於搜尋頁面。 ![螢幕快照 2024-03-14 15-42-16](https://hackmd.io/_uploads/BkN4o7e0p.png) 選擇 **Save As** > **Existing Dashboard**,將該報表儲存在指定已存在的儀表板(Existing Dashboard)。 ![螢幕快照 2024-03-14 15-46-29](https://hackmd.io/_uploads/HJE5imeAT.png) 選擇先前新增的儀表板容器,點擊 **Save to Dashboard** 完成儲存。 <img width=400 src='https://hackmd.io/_uploads/rJixhQxAT.png'><br> 這時原先空白的儀表板容器,多了一個 CPU 使用率的面板。 ![螢幕快照 2024-03-14 15-49-48](https://hackmd.io/_uploads/SkHK2mlA6.png) 再次查看儀表板 XML 原始檔,發現原本空白的儀表板容器多了一些組態資訊,紅框標注的部份就是使用 UI 流程加入的報表面板。 ![螢幕快照 2024-03-14 16-35-48](https://hackmd.io/_uploads/rkTBwVxA6.png) 當然,我們可以這樣一步一腳印,用剛剛 UI 設定的流程步驟,將相關的面板和報表加入儀表板容器。但如果有儀表板或面板的 XML 範本組態檔,**直接編修原始檔案儲存,就可以快速完成自定義儀表板了**! ### XML 編輯 使用原廠提供的 **`CPU Utilization Trend`** 報表並取出以下的 XML 格式組態。 ```xml= <row> <panel> <title>CPU Utilization Trend 詳細視圖</title> <chart> <search ref="CPU Utilization Trend (Detailed)"></search> <option name="charting.chart">line</option> </chart> </panel> </row> ``` 按照下圖將取得的 XML 組態,置於另一個 **`<row>...</row>`** 區塊上方。同時編輯 **`<label></label>`** 變更儀表板標題名稱。 ![螢幕快照 2024-03-14 17-14-47](https://hackmd.io/_uploads/HJkoxHgCT.png) 結果清楚可見! ![image](https://hackmd.io/_uploads/S1D3brlR6.png) #### 匯入 XML 組態 從 Infoblox Community 找到專家分享的儀表板範本,按照上述的方式建立儀表板。 ![image](https://hackmd.io/_uploads/BkVuKuW0a.png) 該儀表板範本提供以下功能面板: > 我將部份測試環境用不到或是沒有資料產生的報表面板,用 **`<!--` ... `-->`** 註解封印起來,若後續環境允許再開啟吧。 - **DNS Daily Peak Hour Query Rate by Member - Last 30 Days** DNS Query rate (QPS) at the busiest hour within a day. One data point per day. - **DNS Query Rate by Member - Last 7 Days** QPS plotted every 10 minutes. - **DNS Query Count - Last 30 Days** The total DNS query count over the last 30 days. - **Reporting Disk Utilization** The capacity (GB), usage (GB) and utilization (%) of each of the file systems used for Reporting - **DNS kQPS Usage - Last 365 Days (Requires 8.5+)** Measures every 10 min for a kQuery per second (kQPS) count and records a max for the day. Then displays the 5 day rolling average of those maxes. One data point per day. Report will be empty if not on 8.5 or later code. ##### 儀表板 XML 組態 ```xml <dashboard> <label>DEMO LAB::Metrics Collection</label> <description>Value Metrics Collections and Capacity Planning</description> <row> <panel> <title>DNS Daily Peak Hour Query Rate by Member - Last 30 Days</title> <chart> <search> <query>index=ib_dns_summary report=si_dns_member_qps_trend_per_hour | lookup dns_viewkey_displayname_lookup VIEW output display_name | rename orig_host as host | msservers MS_SERVER | eval source_host=if(MS_SERVER !="", coalesce(ms_resolved_names,ms_resolved_ips),host) | stats avg(QCOUNT) as avg_COUNT, max(QCOUNT) as max_COUNT by _time source_host VIEW | bucket span=1d _time | streamstats max(avg_COUNT) as MAX_AVG_COUNT by _time, source_host, VIEW | eval avg_COUNT = if (avg_COUNT == MAX_AVG_COUNT, avg_COUNT, 0) | eval max_COUNT = if (avg_COUNT == MAX_AVG_COUNT, max_COUNT, 0) | stats max(avg_COUNT) as avg_COUNT, max(max_COUNT) as max_COUNT by _time, source_host, VIEW | timechart span=1d eval(max(max_COUNT)/600) by source_host where max in top500 useother=f | interpolate 172800</query> <earliest>-30d@d</earliest> <sampleRatio>1</sampleRatio> </search> <option name="charting.legend.placement">none</option> <option name="charting.chart">area</option> <option name="charting.chart.stackMode">stacked</option> </chart> </panel> </row> <row> <panel> <title>DNS Query Rate by Member - Last 7 Days</title> <chart> <search> <query>index=ib_dns_summary report=si_dns_member_qps_trend | lookup dns_viewkey_displayname_lookup VIEW output display_name | rename orig_host as host | msservers MS_SERVER | eval source_host=if(MS_SERVER !="", coalesce(ms_resolved_names,ms_resolved_ips),host) | stats sum(QCOUNT) as QCOUNT by _time source_host | timechart bins=1000 eval(avg(QCOUNT)/600) by source_host where max in top500 useother=f | interpolate 1200</query> <earliest>-7d@d</earliest> <sampleRatio>1</sampleRatio> </search> <option name="charting.legend.placement">none</option> <option name="charting.chart">area</option> <option name="charting.chart.stackMode">stacked</option> </chart> </panel> </row> <row> <panel> <table> <title>DNS Query Count - Last 30 Days</title> <search> <query>index=ib_dns sourcetype=ib:dns:query:by_member | bucket _time |stats sum(QCOUNT) as QCOUNT | rename QCOUNT as "Query Total"</query> <earliest>-30d@d</earliest> <latest>now</latest> </search> <option name="drilldown">none</option> </table> </panel> </row> <row> <panel> <table> <title>Reporting Disk Utilization</title> <search> <query>| rest /services/server/status/partitions-space | eval free = if(isnotnull(available), available, free) | eval usage = capacity - free | eval pct_usage = floor(usage / capacity * 100) | stats first(fs_type) as fs_type first(capacity) as capacity first(usage) as usage first(pct_usage) as pct_usage by mount_point | eval usage=round(usage / 1024, 2) | eval capacity=round(capacity / 1024, 2) | rename mount_point as "Mount Point", fs_type as "File System Type", usage as "Usage (GB)", capacity as "Capacity (GB)", pct_usage as "Usage (%)"</query> <earliest>-24h@h</earliest> <latest>now</latest> </search> <option name="drilldown">none</option> </table> </panel> </row> <row> <panel> <title>DNS kQPS Usage - Last 365 Days (requires 8.5+)</title> <chart> <search> <query>index=ib_usage_count report=si_usage_count_member_qps_trend_per_5days | stats max(QCOUNT) as stats_COUNT by _time |eval stats_COUNT = stats_COUNT/1000 | sort _time | streamstats window=5 avg(stats_COUNT) as Peak_QPM | eval Date=strftime(_time, "%a %b %e"),"5-Day Average Peak kQPS"=round((Peak_QPM/60),3) | table Date, "5-Day Average Peak kQPS"</query> <earliest>-365d@d</earliest> <latest>now</latest> <sampleRatio>1</sampleRatio> </search> <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option> <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option> <option name="charting.axisTitleX.visibility">visible</option> <option name="charting.axisTitleY.visibility">visible</option> <option name="charting.axisTitleY2.visibility">visible</option> <option name="charting.axisX.abbreviation">none</option> <option name="charting.axisX.scale">linear</option> <option name="charting.axisY.abbreviation">none</option> <option name="charting.axisY.scale">linear</option> <option name="charting.axisY2.abbreviation">none</option> <option name="charting.axisY2.enabled">0</option> <option name="charting.axisY2.scale">inherit</option> <option name="charting.chart">line</option> <option name="charting.chart.bubbleMaximumSize">50</option> <option name="charting.chart.bubbleMinimumSize">10</option> <option name="charting.chart.bubbleSizeBy">area</option> <option name="charting.chart.nullValueMode">gaps</option> <option name="charting.chart.showDataLabels">none</option> <option name="charting.chart.sliceCollapsingThreshold">0.01</option> <option name="charting.chart.stackMode">default</option> <option name="charting.chart.style">shiny</option> <option name="charting.drilldown">none</option> <option name="charting.layout.splitSeries">0</option> <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option> <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option> <option name="charting.legend.mode">standard</option> <option name="charting.legend.placement">right</option> <option name="charting.lineWidth">2</option> <option name="trellis.enabled">0</option> <option name="trellis.scales.shared">1</option> <option name="trellis.size">medium</option> </chart> </panel> </row> </dashboard> ``` - **傳統儀表板** ![image](https://hackmd.io/_uploads/rJ-7idWRT.png) ![image](https://hackmd.io/_uploads/rkKriuZCT.png) - **Studio 儀表板** ![image](https://hackmd.io/_uploads/BJZM3dW0T.png) ![image](https://hackmd.io/_uploads/HkQCoO-Rp.png) :::warning **注意** 儀表板的時間屬性若以**時間變數**表示。 <img width=400 src='https://hackmd.io/_uploads/rJ5At4b0a.png'> 則**無法使用排程傳送 PDF (Schedule PDF Delivery)** 功能。 ![螢幕快照 2024-03-15 11-02-02](https://hackmd.io/_uploads/rJHA9Nb0a.png) ::: ## 報告排程 我們大致上已經可以初步地根據原廠提供的範本,產生出警報、報表和儀表板,接著就是看看這些產生出來的結果,是否可以自動化排程地傳送給管理者。一般最常使用的觸發動作,就是 - [**傳送檔案 (File Transfer Action)**](#傳送檔案設定):傳送至指定的檔案伺服器位置。 - [**郵件通知 (Send email)**](#郵件通知設定):利用電子郵件寄送。 | 類型 | 電子郵件 | 檔案傳送 | 啟用方式 | | --- | :-: | :-: | --- | | 警報 (Alert) | V | V | 點選編輯,在觸發動作 (**Trigger action**) 中新增行為及設定。 | | 報表 (Report) | V | V | 點選編輯,選擇 **Edit Schedule**,並與警報類型使用相同方式設定。 | 儀表板 (Dashboard) | V | | 點選編輯,選擇 **Schedule PDF Delivery** 進行設定。 | ### 傳送檔案設定 還記得首次進入 Reporting 服務組態,系統就會要求完成外部檔案伺服器的設定。 ![圖片](https://hackmd.io/_uploads/rJrHWijF6.png) 若是測試不需要或之後不會用到檔案傳輸功能,可以直接跳過。若是後續的警報、報表需要匯出至檔案伺服器時,就要重新配置此選項。 <img width=640 src='https://hackmd.io/_uploads/HJL2-isF6.png'><br> - **方法1** 點選 **Reporting** 功能,確認 Apps 選單為 **Infoblox Reporting & Analytics**,再點選上方 **Administration** > **Set up** 後,便可調整檔案服務器選項。 ![螢幕快照 2024-03-21 09-34-45](https://hackmd.io/_uploads/BkrlkztRp.png) - **方法2** 在 Reporting 功能頁,點選右上方 **Settings** > **Alert actions**,可以設定警報和報表觸發時的作動行為。 <img width=360 src='https://hackmd.io/_uploads/rkePgftA6.png'><br> 其中 **File Transfer Action** 功能就需要設定正確的檔案伺服器,點選右側 **Setup Infoblox Reporting & Analytics** 進行組態。 ![螢幕快照 2024-03-21 09-47-53](https://hackmd.io/_uploads/r10UfMK0T.png) ### 郵件通知設定 有關警報和報表的郵件通知設定,需要另外配置。點選右上方 **Settings** > **System - Server settings**。 <img width=360 src='https://hackmd.io/_uploads/ryMf9aA6a.png'><br> 進入主機設定中,選擇 **Email settings** 進行設定。 <img width=540 src='https://hackmd.io/_uploads/SkeT9TCa6.png'><br> 根據郵件伺服器組態給予對應的設定值。其他 **Email Format** 和 **PDF Report Settings** 都先使用預設配置,點擊 **Save** 儲存上述設定。 ![image](https://hackmd.io/_uploads/B198ZmKA6.png) :::info 使用 Office365 寄送郵件組態,可參考附錄 [[**配置 Office365 郵件服務**]](#配置-Office365-郵件服務)。 ::: ### 警報排程設定 要將警報進行排程執行,選擇該警報進行編輯內容 (**Edit Alert**)。 ![螢幕快照 2024-03-22 10-30-42](https://hackmd.io/_uploads/ryYn6vcRT.png) :::info 在警報列表頁面,點選指定警報左側 **`>`** 箭頭,可顯示警報設置狀態。可根據需求點擊 **Edit** 跳轉編輯頁面。 <img width=400 src='https://hackmd.io/_uploads/BkLE-KcAp.png'> ::: 請根據警報需求配置所需排程。警報類型 (Alert Type) 可選擇排程 (Scheduled) 和即時 (Real-time),只有設定為排程類型,才會有時間範圍可供設定,一般建議採用**排程警報**即可,即時警報可能需要較多的系統資源。 設定時間表時,若是採用 **`Run every {hour|day|week|month}`** 的方式。 <img width=580 src='https://hackmd.io/_uploads/SJ8ezucAp.png'><br> 在下方的時間範圍的選擇,**時間設定只有整點可以選擇**。 <img width=580 src='https://hackmd.io/_uploads/rkjrfuc06.png'><br> 若是需要特別**指定時間**,則會需要使用 **`Run on Cron Schedule`**,時間設定請參考 **crontab** 設定語法。此範例設定每 15 分鐘執行排程警報。 <img width=540 src='https://hackmd.io/_uploads/Bkl_Bd9Aa.png'><br> :::info **參考** [splunk - **Use cron expressions for alert scheduling**](https://docs.splunk.com/Documentation/Splunk/8.2.10/Alert/CronExpressions) ::: 另外提供排程警報執行的時間範圍設定。此範例設定執行排程警報時檢視啟動前 15 分鐘內的資料。 <img width=400 src='https://hackmd.io/_uploads/SyCGrO5Ap.png'><br> 接著啟動先前的 BASH 腳本觸發警報。選擇 **Activity** > **Triggered Alerts** 檢視警報觸發狀態。 ![螢幕快照 2024-03-22 11-16-40](https://hackmd.io/_uploads/HJdKOucA6.png) 另外檢視我的電子郵箱,也有正確收到排程警報根據觸發動作(Trigger Action)寄送的通知信。:100: ![螢幕快照 2024-03-22 11-19-47](https://hackmd.io/_uploads/rkEy5uq06.png) 另一個觸發動作是傳送檔案。登入至檔案服務器進行確認,也可看到設定路徑下正確地接收到檔案。:100: ![image](https://hackmd.io/_uploads/HJ-I2_cCp.png) ### 報表排程設定 報表排程的方式,也與警報排程類似。也是透過開啟對應的報表,選擇右上方 **Edit** > **Edit Schedule**,可以將報表依照計畫時間進行排程,透過電子郵件寄送報表或傳送報表至檔案伺服器指定資料夾。 <img width=420 src='https://hackmd.io/_uploads/HJsBnC0pa.png'> 根據需求制定報表排程,輸入**時間表(Schedule)** 和**時間範圍(Time Range)**。新增動作部份,採用**檔案傳送 (File Transfer Action)** 和 **傳送電子郵件 (Send email)**,設定方式就跟設置警報排程的流程相同,這裡就省略不提囉。 跟檢視警報設置內容一樣,點選報表左側 **`>`** 箭頭可快速檢視配置。 <img width=400 src='https://hackmd.io/_uploads/Skx4fYcAT.png'><br> 點擊 **Edit** 檢視詳細設定。範例報表設定每天 11:55 執行排程,產生過去 24 小時統計資料,並透過檔案及郵件方式傳送報表。 <img width=560 src='https://hackmd.io/_uploads/S1icfKcCp.png'><br> 同樣地回到個人郵箱確認,報表排程是否正確寄送報表。:100: ![螢幕快照 2024-03-22 12-04-45](https://hackmd.io/_uploads/r1yAXt5R6.png) 連線檔案伺服器確認傳送檔案狀態。:100: ![image](https://hackmd.io/_uploads/B1VdPF9Ca.png) 我們可以透過 **Reporting** > **Activity** > **Jobs** 來檢視任務執行狀態。看來警報跟報表都有按照設定排程執行。:100: ![螢幕快照 2024-03-22 12-08-56](https://hackmd.io/_uploads/BkhzPYcRa.png) :::info - 傳送電子郵件,附加選項有以下選擇 - **Inline Table** - **Attach CSV** - **Attach PDF** - 以下選項原廠建議**不選擇** - **Link to Report** - **Link to Results** - **Search String** ::: ### 儀表板排程設定 要進行儀表板排程也是類似的方式,儀表板排程僅支援傳送郵件的方式。 選擇 **Reporting** > **Dashboards**,開啟對應的儀表板,選擇 **Edit** > **Schedule PDF Delivery** 功能設定排程。 ![螢幕快照 2024-03-22 12-32-44](https://hackmd.io/_uploads/B1baG99AT.png) 根據先前的經驗應該可以很快地配置完成,在**儲存 (Save)** 之前,可以點擊下方 **Send Test Email** 和 **Preview PDF** 功能,確認郵件設定及儀表板內容沒有問題。 <img width=600 src='https://hackmd.io/_uploads/BkKz855Ca.png'> 同樣地回到個人郵箱確認,儀表板排程是否正確完成工作!:100: ![螢幕快照 2024-03-22 13-29-56](https://hackmd.io/_uploads/SyUnD55Rp.png) 還是透過 **Activity** > **Jobs** 來檢視相關排程任務執行的狀態。:100: ![螢幕快照 2024-03-22 13-27-30](https://hackmd.io/_uploads/S1a-wcqAT.png) 以上就是對於 Infoblox Reporting & Analytics 服務提供的警報、報表和儀表板基本的設定及功能測試。有興趣的可以參考 Splunk 文件深度學習。 # 初探 Dashboard Studio Splunk Dashboard Studio 是一種使用各種工具建立 Splunk 儀表板的新方法,以實現更好的自定義儀表板。雖然許多功能和視覺化與傳統的 Splunk 儀表板框架相似,但新框架中可用的功能和視覺化的外觀都存在著也許差異。 目前 Infoblox Reporting 並沒有直接提供屬於 Studio 類型的儀表板範本,但可以透過既有傳統儀表板進行轉換 (Clone in Dashboard Studio)。 ![螢幕快照 2024-03-15 09-43-44](https://hackmd.io/_uploads/H13UuXbRa.png) 不過並不保證所有的面板可以完全移轉! <img width=400 src='https://hackmd.io/_uploads/Bk1poQZ0T.png'><br> 以下是將傳統儀表板 **Home Dashboard** 轉換為 Studio 儀表板的顯示結果,轉換後還需要調整一下。 ![螢幕快照 2024-03-15 09-50-22](https://hackmd.io/_uploads/SkQhtmWA6.png) Studio 儀表板似乎在呈現上較為生動! ![image](https://hackmd.io/_uploads/B1htmBeRa.png) 儀表板編輯模式下,點擊面板後,右側會出現組態編輯功能面板,可直接針對點選面板的屬性進行調整。 ![image](https://hackmd.io/_uploads/rJBx7rx0T.png) 也可以直接透過滑鼠拖拉面板,調整整體儀表板面板的位置及大小。 ![image](https://hackmd.io/_uploads/HJfwmBeA6.png) 從 XML 語法改為 **JSON 語法**?奇怪,Dashboard Studio 怎麼有點 Visual Studio Code 的味道? ![image](https://hackmd.io/_uploads/rkhnfrxAp.png) 單一面板的原始碼,可以在右側組態編輯面板 Code 功能取得。 ![螢幕快照 2024-03-15 10-17-28](https://hackmd.io/_uploads/BkA7gVZAa.png) 有專家要嘗試幫大家轉換成 Studio 儀表板?! # 附錄 ## 配置 Office365 郵件服務 公司郵件服務**使用 MS Office365**,個人帳戶登入還增加 **MFA** 驗證機制,所以一般要提供給應用程式或 API 使用,必須要使用**應用程式密碼**,GMail 郵件服務應該也是類似的配置。 ### MS O365 部份 - 正常登入 O365 服務,點選右上方個人頭像,點選 **檢視帳戶**。 <img width=200 src='https://hackmd.io/_uploads/SJfFCMt0a.png'><br> - 進入個人帳戶設定,點選左側面板的 **安全性資訊**。 <img width=180 src='https://hackmd.io/_uploads/B1sFRMtAp.png'><br> - 在 **安全性資訊** 頁面,點選 **新增登入方法**。 <img width=560 src='https://hackmd.io/_uploads/Byeq0MKCT.png'> - 下拉選單,選擇**應用程式密碼**,確認後點擊**加入**。 <img width=360 src='https://hackmd.io/_uploads/HyE90GtA6.png'> - 輸入可識別該應用程式的名稱 (最短 8 字元,最長 16 字元),確認後點選**下一步**繼續。 <img width=360 src='https://hackmd.io/_uploads/HyTzJ7tA6.png'> - 成功建立應用程式密碼,點選**複製圖示**,待後續使用,點選**完成**結束。 <img width=360 src='https://hackmd.io/_uploads/ryQ1xmY0T.png'> - 設定後可正確顯示該設定名稱。 ![image](https://hackmd.io/_uploads/SyI4qQKR6.png) :::danger **應用程式密碼無法重置**,若是遺失請刪除原有設定,並按照先前流程重新設定即可。 ::: ### Infoblox 設定 有關警報和報表的郵件通知設定,需要另外配置。點選右上方 **Settings** > **System - Server settings**。 <img width=480 src='https://hackmd.io/_uploads/ryMf9aA6a.png'><br> 進入主機設定中,選擇 **Email settings** 進行設定。 <img width=540 src='https://hackmd.io/_uploads/SkeT9TCa6.png'><br> - **Mail Server Settings** | 設定名稱 | 組態值 | | --- | --- | | Mail Host | smtp.office365.com:587 | | Email Security | Enable TLS | | Username | 有效郵件用戶帳號<br> | | Password<br>Confirm password | 有效郵件用戶密碼 | ![image](https://hackmd.io/_uploads/ByCQCmYCa.png) - **Email Domains** 輸入可被允許的電子郵件網域,若有多組請用逗點區隔。**若沒有限制請留空白**。 ![image](https://hackmd.io/_uploads/SkUBC7FCa.png) - **Email Format** **Send emails as** 選項預設為 **`Splunk`**。請修正此設定為有效用戶帳號,否則在 O365 寄件時會發生寄件者不同而產生錯誤。 :::info 使用預設參數,寄送郵件帳號會採用 **`splunk@<reporting_vm_fqdn>`**,郵件服務器會回傳錯誤碼 **`554, b'5.2.252 SendAsDenied`**。 ::: ![螢幕快照 2024-03-21 11-50-38](https://hackmd.io/_uploads/BJMQJ4KA6.png) - **PDF Report Settings** 這部份就依照個人或客戶需求進行調整,暫時先用預設值即可。 ![image](https://hackmd.io/_uploads/HkaryEF06.png) ## 配置系統郵件通知 有關**系統的郵件通知**,則是在以下設定進行組態。 **Grid** > **Grid Manager**,點擊右側功能面板 **Grid Properties** 編輯屬性。點擊 **Toggle Advanced Mode**,再選擇 **Email** 項目,勾選 **Enable Email Notification**。根據郵件伺服器組態給予對應的設定值。 - **使用 O365 郵件服務** - [X] Enable Email Notification - [X] Use SMTP over TLS - From Email Address: 輸入有效郵件用戶帳號 - [X] Use Authentication - Password: 輸入有效郵件用戶密碼 - To Email Address: 輸入收件者 (收件者僅能一位,若要多人接收請使用群組郵件帳號) - [X] Use SMTP Relay - SMTP Relay Name or Address: smtp.office365.com - Port NUmber: 587 - **使用 Infoblox 內建郵件服務** - [X] Enable Email Notification - [ ] Use SMTP over TLS - From Email Address: 可留空白或是輸入指定帳號,例如:<no-reply@infoblox.localdomain> - [ ] Use Authentication - Password: (空白) - To Email Address: 輸入收件者 (收件者僅能一位,若要多人接收請使用群組郵件帳號) - [ ] Use SMTP Relay - SMTP Relay Name or Address: (空白) - Port NUmber: 25 ![螢幕快照 2024-03-18 09-47-59](https://hackmd.io/_uploads/Hkg5JXB06.png) 設定完成後,點擊 **Test email settings** 進行郵件測試,若成功的話,上方會顯示 **Email settings are correct** 訊息。 <img width=400 src='https://hackmd.io/_uploads/Skp2y7BCa.png'> 點選 **Notification**,可以選擇 SNMP 和 Email 通知項目。請根據管理需求選取。 <img width=400 src='https://hackmd.io/_uploads/ryHFlmrC6.png'> 以下是 Grid Member-Reporting 設備重啟時,系統會發現設備連線不正常而發送系統郵件通知告知管理人員。 <img width=320 src='https://hackmd.io/_uploads/HJ_7H7SRT.png'> # 參考 - [Infoblox Reporting and Analytics](https://docs.infoblox.com/space/nios90/280659447/Infoblox+Reporting+and+Analytics) - [Reporting User Interface Overview](https://docs.infoblox.com/space/nios90/280857174/Reporting+User+Interface+Overview) - [About Dashboards](https://docs.infoblox.com/space/nios90/280400911/About+Dashboards) - [Predefined Dashboards](https://docs.infoblox.com/space/nios90/280400911/About+Dashboards) - [Datasheet - Infoblox reporting and analytics Sample Reports (PDF)](https://insights.infoblox.com/resources-datasheets/infoblox-datasheet-infoblox-reporting-and-analytics-sample-report)