被報警大量騷擾?來看看治理方法論
阿里妹導讀
本文記錄了作者組內監控治理過程和治理心得。
一、監控降噪背景
二、為什麼降噪治理很有必要?
三、告警治理
3.1 如何檢視噪音?
圖 1. 噪音數和故障數等趨勢
利用應急事件詳情可快速定位對應監控,其中紅框是監控id,對應於antmonter(集團監控系統)所配置報警監控。
圖 2. 噪音及對應事件和監控
3.2 降噪方法論
1. 如何衡量監控效果
對於監控報警而言,衡量效果最有效的指標為召回率——即衡量能夠正確識別出正樣本的百分比。召回率的計算公式為:召回率 = 正確識別的正樣本數 / 所有正樣本數。對於監控能夠保證召回率接近 100%,同時儘量提升準確率。在保證召回率,識別線上問題的同時,提升準確率降低噪音,便是監控治理要做的事。
2. 監控規則
有了衡量效果的指標,我們就需要對監控進行降噪。目前監控主要使用的是規則降噪,分為普通規則和智慧規則。普通規則更加個性化、更加方便實用,也有主要缺點:需要開發者同時對監控系統和組內業務非常瞭解,能夠預估報錯量,隨著業務的發展要經常更正,同時容易由於資料波動出現告警遺漏、告警頻繁。那麼針對普通規則,如何進行降噪?
(a). 避免維度單一
單一維度的監控配置,往往難以到達較好的監控效果,同時極易產生噪音。例如,單一設定業務成功量或失敗量,當n個單位採集時間低於或高於某閾值時報警。這種方法往往會在某些時刻頻繁報警,例如半夜,早晚高峰等等。必須根據業務場景增加多維度觸發條件,解決該問題方案如下:
1. 成功量級 + 成功率 / 失敗量級 + 成功率 適用降噪場景:成功量上升,是因為總量上升導致;失敗量下降,是因為總量下降導致。
2. 成功量級 + 成功率 + 總量 適用降噪場景:避免極少業務量場景下極端失敗情況,例如兩筆業務量,一筆失敗或兩筆都失敗 導致的報警。
3. 成功率 + 失敗數量 適用降噪場景:同樣適用極少業務量場景下極端失敗情況。
4. 設定採集週期 適用降噪場景:避免衝高回落導致的針狀突出噪音,如網路抖動導致問題。其中週期的範圍則需要開發運維人員更具業務量級和組內業務自行確定,透過召回率和準確率進行確定。
(b). 利用黑白名單
對於一部分監控,總會存在部分業務或介面極易超出設定報警閾值的情況,此時利用黑白名單進行單獨配置即可。
1.應用呼叫下游介面成功率監控,如果存在部分介面因業務問題造成失敗,或部分外部呼叫介面經常失敗且無影響,我們就需要將其進行單獨配置監控。首先透過噪音打標場景查出經常報警且標記為噪音的介面,在監控處透過黑白名單,黑名單過濾掉噪音介面,並對其配置一項敏感度較高的閾值,再配置一個監控,將這些介面加白,白名單部分減少監控敏感度。
圖5 敏感度配置
2. 業務錯誤碼報警。監控平臺能夠自定義配置所需監控錯誤碼,其來源於日誌當中有一些資訊,可以用來幫助我們判斷是否需要關心這種日誌。在進行資料採集時,可以自定義所需要關注的日誌資料,並配置白名單值,如圖6所示,之後可以選中其在產出日誌所在位置,利用監控自動進行資料獲取,如圖7所示。
圖6. 自定義日誌資料採集白名單
圖7. 日誌資料採集範圍
(c). 利用環比和同比
業務的總量,成功量,介面的呼叫成功率,單機應用error總數等等,總會存在一個資料慣性,如果最近一小時總量總是維持在每分鐘100,幾乎不可能會突變至每分鐘總量1000且持續存在。這樣我們就認為慣性失效,可能存在異常從而告警。這就衍生出環比和同比的作用。環比和同比是什麼?
環比,是指相鄰兩個時間段之間值的比較,即縱向的對比。以時刻為例,環比就是指此刻一小時與上一小時同一指標的變化率,計算公式為:(當前一小時指標-上一小時指標)/上一小時指標。
同比,是指同一時間段相鄰值之間的比較,即橫向的對比。以天為例,同比就是指今日此刻與昨日此刻同一指標的變化率,計算公式為:(今日此刻數值-昨日此刻數值)/昨日此刻數值。
由此可見,利用環比可監控慣性的變化,而利用同比可排除慣性的錯誤情況。對於監控而言,我們通常可以選擇 採集週期為當前五分鐘與上一個五分鐘作為環比,監控其下降或者上升的程度,從而監控慣性的變化。選擇同一時期與昨日或者上週作為同比,監控其下降或者上升的程度,從而判斷慣性變化是否所為異常。
圖8. 同比與環比監控
3. 利用智慧降噪
智慧降噪作為antmonter給出的智慧工具,可以有效進行降噪。
a.告警抑制:告警抑制可以幫助在大量報警風暴的情況下進行降噪,設定抑制採集週期數(如週期為一分鐘,則設定週期數為5則抑制五分鐘報警)。
b.短週期抖動:短週期抖動是一種網路抖動等原因導致瞬間凸狀報錯週期,會導致採集週期內整體資料求和、求平均值等偏高超過閾值而產生告警。輸入短週期比例,則可以在產生該比率的報警週期時抑制,例如,採集週期為N,短週期比率A,則產生的報警在N * A內,則會被抑制。
c.衝高回落:衝高回落通常是指指標在一段時間內呈現出明顯的上升趨勢,突破了某個閾值或警戒線,但隨後迅速回落到原來的水平,相當於是一次短暫的異常波動。衝高回落是指監控指標在一段時間內上漲後又下跌。當勾選該模式後,若出現監控指標在設定時間段內的持續衝高後又下跌回平穩狀態,將不會觸發告警通知。
4. CDO報警降噪
CDO(Complex Event Detection and Optimization)報警是一種複雜事件的監測,用於對系統的異常事件和效能問題進行監測和排查。對於CDO報警的降噪,除了列印error,warn日誌規範外,還有對異常丟擲的規範。對於一個應用來說,通常需要定義一個專有業務異常來服務於業務系統,並在出現可控業務問題時進行丟擲,而出現未在可控範圍內異常時再使用通用異常。下面舉個例子來進行異常與日誌的搭配程式碼
首先定義業務異常 BizException
public class BizException extends RuntimeException {
/** serialVersionUID */
private static final long serialVersionUID = 5840651686530819567L;
/** 異常錯誤程式碼 */
private ResultCodeEnum code = ResultCodeEnum.UN_KNOWN_EXCEPTION;
/**
* 建立一個<code>BizException</code>
*
* @param code 錯誤碼
*/
public BizException(ResultCodeEnum code) {
super(code.getMsg());
this.code = code;
}
/**
* 建立一個<code>BizException</code>
*
* @param code 錯誤碼
* @param message 自定義錯誤資訊
*/
public BizException(ResultCodeEnum code, String message) {
super(message);
this.code = code;
}
}
其次,定義業務處理模板,當丟擲業務異常時,在生產環境會進行warn日誌列印,而對於其餘不在可控之中的異常,則使用error日誌列印。在丟擲可控,不會導致系統崩潰或無法使用異常時,應丟擲業務異常,如此進行規範化。
public class HandleTemplate {
public void execute(final Response response, final HandleCallback action) {
Profiler.enter("開始進入操作模板");
try {
action.doPreAction();
action.doAction();
action.doPostAction();
} catch (BizException be) {
if (EnvEnum.DEV.getType().equals(EnvUtil.getExactEnv())) {
LogUtil.error(LOGGER, be, "業務異常:");
} else {
LogUtil.warn(LOGGER, be, "業務異常:");
}
ResultUtil.generateResult(response, be);
} catch (IntegrationException ie) {
LogUtil.error(LOGGER, ie, "查詢業務異常:" + ie.getMessage());
ResultUtil.generateResult(response, ie);
} catch (Throwable e) {
LogUtil.error(LOGGER, e, "作業系統異常:" + e.getMessage());
ResultUtil.generateResult(response, ResultCodeEnum.SYSTEM_ERROR, e.getMessage());
} finally {
}
}
}
此外,對於warn日誌和error日誌的使用也需要進行規範化,WARN日誌應該用於記錄系統發生了一些異常事件,但
這些事件不會導致系統崩潰或無法使用。例如輸入引數異常或不規範,輸入的引數為空、非法、越界等。ERROR日誌通常用於輸出一些嚴重錯誤資訊,表示系統發生了一些致命的錯誤,例如空指標異常導致系統崩潰、無法使用,未授權訪問、入侵等。如此進行規範化,則可以正確治理CDO報警。
5. 其餘方式
此外,還有一些比較有必要的降噪方法,以適合不同場景下的降噪情況。
1.去除預發環境。去除預發環境的監控報警,只訂閱生產環境,避免無謂的資源消耗和時間消耗。
2.設定生效時間段。根據業務時間調整生效時間段,對於有高低峰期業務特性,配置生效時間段,從而減少低峰期報警噪音。同時設定生效時間段 + 連續N分鐘內只報警一次,可以避免大量報警風暴。
3.報警抑制,避免報警風暴。
4.去除不必要和重複報警,正確訂閱報警,如一些自動配置化的報警,以及做好報警監控日誌分析,避免大量重複覆蓋流量的監控報警。
5.傳送渠道最佳化。根據業務重要程度設定不同報警渠道,避免大量簡訊郵件轟炸。
3.3. 治理結果
自六月治理報警以來,噪音數已經大大減少,從佔整體事件的61.70%下降到12.80%,同時打標為故障數的報警數量維持變化不大,可以說明監控保持召回率不變的同時,準確率大大提升。
五月噪音率:
六月噪音率:
最後一定要注意,降噪的治理一定要結合業務實際,並在降噪後的一定時間內以指標進行衡量,如召回率,準確率等,否則以個人感覺進行調整,就會有可能出現線上問題被遮蔽的情況!降噪的目的,是保證召回率的同時,儘量提高準確率。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2987461/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 今天你被騷擾了嗎?起底AI電話的來龍去脈AI
- 工信部:全國多地信管局加大騷擾電話治理力度
- Google報告:大量被入侵的 Google Cloud 例項被用來挖掘加密貨幣GoCloud加密
- 資料治理:說起來容易,做起來難?這個方法論值得收藏
- 滴滴:2020年Q2醉酒乘客安全透明度報告 近4成性騷擾為男乘客騷擾男司機
- AI電話機器人防騷擾調研:用AI來對抗AIAI機器人
- 12321舉報中心:2018年6月中國騷擾電話和簡訊分析報告
- 想要吸引女性使用者?來看看這位90後女製作人的方法論
- OPPO K1攔截陌生騷擾電話的方法教程 OPPO K1怎麼設定來電攔截規則?
- 運營商騷擾電話為啥越來越多?專家揭原因:怪使用者自己
- TapTap資訊洩露,使用者遭手遊推廣精準騷擾,官方:已報案APT
- AI騷擾電話,沒有洩露就沒有傷害AI
- 原來那個騷擾電話是AI打的!315晚會曝光的這“鍋”AI背不背?AI
- 電話、簡訊成騷擾工具,“手機轟炸”防治難在哪?
- 報警系統QuickAlarm之報警規則解析UI
- 3.15曝光智慧騷擾產業鏈,連你月收入也知道!網易專家支招使用者如何避免被“魚肉”產業
- 某些教育輔導班:教學你不行,騷擾第一名
- 一個13歲的女孩會在遊戲裡遇到多少性騷擾?遊戲
- 報警能不能拿回在網上網賭被騙的錢
- 教你如何製作動態海報,快來看看吧!
- Python釘釘報警及Zabbix整合釘釘報警Python
- Win10系統下禁用iCloud警報的方法Win10Cloud
- YouGov:6/10的美國女性可輕鬆面對性騷擾問題Go
- 阿里工程師養了只“二哈”,專治討厭的騷擾電話阿里工程師
- iPhone垃圾簡訊怎麼遮蔽?教你一鍵遮蔽iPhone垃圾簡訊騷擾iPhone
- 未來論壇報告:茶葉的未來
- 世界經濟論壇報告:2022年量子計算治理原則
- 天梯賽L2-013 紅色警報 (三種方法)
- Anti-Defamation League:研究稱74%的成年人在網上游戲時受到騷擾
- 工信部開展專項整治,彈窗廣告騷擾問題有救了!
- Truecaller:2020年1-10月全球騷擾電話呼叫量增長了18%
- First Orion下週將在MWC大會上展示騷擾電話解決方案
- 減半警報器
- zabbix釘釘報警
- 別進來看!Composer騷操作2.0
- 【python 監控報警】python自動發微信監控報警Python
- 美國聯邦通訊委員會計劃為運營商提供更多權力來打擊自動騷擾電話
- 反汙衊聯盟:研究顯示74%的成年網遊玩家遭受過網路騷擾