自定義smokeping告警(郵件+短信)

前段時間接到公司IT同事需求,幫助其配置smokeping的告警功能,之前配置的姿勢有些問題,告警有些問題,現在調試OK,在此將關鍵配置點簡單記錄下。

關鍵的配置項主要有:

  1. 定義告警規則并配置將告警信息通過管道交給自定義的alert腳本?
  2. 在主機定義里調用定義的告警規則
  3. 自定義的alert腳本對告警內容進行解析和處理

定義告警規則并配置將告警信息通過管道交給自定義的alert腳本

需要在config文件的Alert配置section中進行配置

#?/usr/local/smokeping/etc/config

*** Alerts ***
# 將告警信息交給自己定的alert腳本進行處理
to = |/usr/local/smokeping/bin/send_alert.sh  
from = a@b.com# 定義各種告警規則
+hostdown
type = loss
# in percent
pattern = ==0%,==0%,==0%, ==U
comment = 對端無響應+bigloss
type = loss
# in percent
pattern = ==0%,==0%,==0%,==0%,>20%,>20%,>20%
comment = 連續3次采樣-丟包率超過20%+lossdetect
type = loss
# in percent
pattern = ==0%,==0%,==0%,==0%,>0%,>0%,>0%
comment = 連續3次采樣-存在丟包+someloss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = 間斷性丟包+rttdetect
type = rtt
# in milli seconds
pattern = <100,<100,<100,<100,<100,<150,>150,>150,>150
comment = 連續3次采樣延遲增大-超過150ms

The Alert section lets you setup loss and RTT pattern detectors. After each round of polling, SmokePing will examine its data and determine which detectors match. Detectors are enabled per target and get inherited by the targets children.

Detectors are not just simple thresholds which go off at first sight of a problem. They are configurable to detect special loss or RTT patterns. They let you look at a number of past readings to make a more educated decision on what kind of alert should be sent, or if an alert should be sent at all.

The patterns are numbers prefixed with an operator indicating the type of comparison required for a match.

告警規則參考:官方文檔配置詳解的Alert段

http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html

在主機定義里調用告警規則

配置語法

alerts = 告警規則1,告警規則2,告警規則3

如你所了解的,smokeping的配置文件里面通過"+"號的個數來定義層級關系,因此你可以在不同的層級里面調用告警規則,上級的定義可以被下級繼承和覆蓋(內層的優先級更高)

+ xxoo
menu = xxoo-top
title = xxoo-所有網絡監控列表
host = /xxoo/net-A /xxoo/net-B /xxoo/net-C
alerts = hostdown,bigloss,lossdetect,someloss,rttdetect # 這里的作用范圍就是/xxoo++net-A
menu = Menu-Name-A
title = Titile-Name-A
host = 10.10.10.101
alerts = hostdown,bigloss,lossdetect # 這里的規則作用范圍就是/xxoo/net-A++net-B
menu = Google-DNS
title = To-Google-DNS
host = 8.8.8.8

  

自定義的alert腳本對告警內容進行解析和處理

smokeping在告警的時候會發送5~6個參數到告警接收媒介(這里也就是我們自定義的alert腳本),參數按照順序分別為:name-of-alert, target, loss-pattern, rtt-pattern, hostname,[raise]。

因此我們的alert腳本需要做的就是對上述參數進行解析和處理。

告警腳本樣例:

[root@smokeping ~]# cat /usr/local/smokeping/bin/send_alert.sh
#!/bin/bash
#########################################################
# Script to email a ping report on alert from Smokeping #
#########################################################
# 解析變量
alertname=$1
target=$2
losspattern=$3
rtt=$4
hostname=$5
# 自定義變量
email="xxx@yyy.com"
phone="12345678901"
smokename="AlertName"
smokeping_mail_content=/tmp/smokeping_mail_content
#smokeping_sms_content=/tmp/smokeping_sms_content# 把所有傳過來的變量輸出到腳本調用日志里,方便統計和問題排查
echo "$(date +%F-%T)" >> invoke.log
echo $@ >> invoke.log# 網絡恢復邏輯判斷
if [ "$losspattern" = "loss: 0%" ];
thensubject="Clear-${smokename}-Alert: $target host: ${hostname}"
elsesubject="${smokename}Alert: ${target} – ${hostname}"
fi# generate mail content
# 清空并重新生成郵件內容
>${smokeping_mail_content}
echo "Name of Alert: " $alertname | tee -a ${smokeping_mail_content}
echo "Target: " $target | tee -a ${smokeping_mail_content}
echo "Loss Pattern: " $losspattern | tee -a ${smokeping_mail_content}
echo "RTT Pattern: " $rtt | tee -a ${smokeping_mail_content}
echo "Hostname: " $hostname | tee -a ${smokeping_mail_content}
echo "" | tee -a ${smokeping_mail_content}
echo "Ping Report:" | tee -a ${smokeping_mail_content}
ping ${hostname} -c 4 -i 0.5 | tee -a ${smokeping_mail_content}# send mail
# 發送email,下面的if邏輯其實沒有什么卵用,因為腳本只要被調用了,這個${smokeping_mail_content}就一定是有內容的
if [ -s ${smokeping_mail_content} ];thencontent=`cat ${smokeping_mail_content}`curl http://notice.api.ourcompany.com/send_mail -d "receiver=${email}&subject=${subject}&content=${content}"
fi# send sms
# 判斷alertname是否是hostdown,bigloss,rttdetect這幾種比較嚴重的級別,如果是的話就調用短信接口進行短信發送。
# 注意,這里需要控制下短信發送內容的字數,要花錢的~哈哈
judge_alert_type=`echo ${alertname} | egrep "hostdown|bigloss|rttdetect"|wc -l`if [ "${judge_alert_type}" -eq 1 ];thencurl http://notice.api.ourcompany.com/send_sms -d "receiver=${phone}&subject=${subject}&content=${alertname} on ${hostname}"
fi
[root@smokeping ~]#

上述腳本中調用了公司的通知接口進行告警的發送,此配置結合自己的需求進行調整即可

http://notice.api.ourcompany.com/send_mail
http://notice.api.ourcompany.com/send_sms  

告警效果

郵件

?

短信

?

轉載于:https://www.cnblogs.com/thatsit/p/6395506.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284651.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284651.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284651.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF 實現抽屜菜單

分享一個WPF 實現抽屜菜單抽屜菜單作者&#xff1a;WPFDevelopersOrg原文鏈接&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40&#xff1b;Visual Studio 2022;項目使用 MIT 開源許可協議&#xff1b;更多效果可以通過GitHub[1]|碼云[2]…

selenium 定制啟動 chrome 的選項

2019獨角獸企業重金招聘Python工程師標準>>> selenium 定制啟動 chrome 的選項 博客分類&#xff1a; java 搜索引擎&#xff0c;爬蟲 使用 selenium 時&#xff0c;我們可能需要對 chrome 做一些特殊的設置&#xff0c;以完成我們期望的瀏覽器行為&#xff0c;比如…

平臺級 SAAS 架構的基礎:統一身份管理系統

業內在用戶統一身份認證及授權管理領域&#xff0c;主要關注 4 個方面&#xff1a;集中賬號管理&#xff08;Account&#xff09;、集中認證管理&#xff08;Authentication&#xff09;、集中授權管理&#xff08;Authorization&#xff09;和集中審計管理&#xff08;Audit&a…

【ArcGIS Pro微課1000例】0017:ArcGIS Pro 2.8制作炫酷的ETOPO1全球DEM地圖

ArcGIS Pro相對于ArcGIS,在制圖方面做了很大的提升,做出的地圖更加優美,本文講解基于NOAA的ETOPO1數據全球DEM數據制作炫酷的全球DEM地圖,先看效果再教學! 1. 效果展示 全球 澳大利亞大陸

Js中的for in

2019獨角獸企業重金招聘Python工程師標準>>> 后臺數據&#xff1a; List<Map<String, Object>> uTags query.selectAllList("velocity.userGetTags", map); 前端解析&#xff1a; for(var i in data.content){//由于這里是List[i](Map).IDc…

VMWare 安裝 Linux

參考 &#xff1a; http://www.aboutyun.com/thread-6780-1-1.html 這的是很詳細。贊一下 我這里就簡化一下。 1 下載&#xff1a; VMWare : https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.0-1295980.exe ubuntu : http://www.aboutyun…

【ArcGIS Pro微課1000例】0018:ArcGIS Pro 2.8通過OLE DB與個人數據庫建立連接案例

對于個人數據庫,Access程序可以直接打開。本文講解在ArcGIS Pro2.8中通過OLE DB與個人數據庫MDB建立聯系的方法與過程。 文章目錄 1. 個人數據庫準備2. OLE DB連接個人數據庫1. 個人數據庫準備 準備一個個人數據庫,在上面右鍵→復制文件地址。 文件地址為:"C:\test.md…

JAVA生成并導出json文件

將一個list集合轉換成json文件并導出&#xff1a; 數據集合&#xff1a;    List<Object> agencyList new ArrayList<Object>();Map<String, Object> agencyMap new HashMap<>();agencyMap.put("agencyName",agencyName);agencyMap.pu…

《ASP.NET Core 6框架揭秘》實例演示[02]:基于路由、MVC和gRPC的應用開發

ASP.NET Core可以視為一種底層框架&#xff0c;它為我們構建出了基于管道的請求處理模型&#xff0c;這個管道由一個服務器和多個中間件構成&#xff0c;而與路由相關的EndpointRoutingMiddleware和EndpointMiddleware是兩個最為重要的中間件。MVC和gRPC開發框架就建立在路由基…

什么是 JWT -- JSON WEB TOKEN

什么是JWT Json web token (JWT), 是為了在網絡應用環境間傳遞聲明而執行的一種基于JSON的開放標準&#xff08;(RFC 7519).該token被設計為緊湊且安全的&#xff0c;特別適用于分布式站點的單點登錄&#xff08;SSO&#xff09;場景。JWT的聲明一般被用來在身份提供者和服務提…

Re-installation failed due to different application signatures.

問題&#xff1a; 在虛擬設備上運行程序時提示安裝失敗。 [2010-08-08 00:38:30 - myApp] Re-installation failed due to different application signatures. [2010-08-08 00:38:30 - myApp] You must perform a full uninstall of the application. WARNING: This will remo…

【ArcGIS微課1000例】0024:ArcGIS如何連接文件夾、設認工作目錄、默認地理數據庫、相對路徑與絕對路徑?

ArcGIS軟件在初次安裝完成或者為了工作的方便,通常需要連接到指定的文件夾、設置默認工作路徑,默認地理數據庫、相對路徑與絕對路徑等。 文章目錄 1. 文件夾連接2. 默認工作目錄3. 默認地理數據庫4. 相對路徑與絕對路徑1. 文件夾連接 在初次安裝完ArcGIS時,默認沒有文件夾連…

shell 用環境變量的值修改properties文件

假設有如下屬性文件 demo.properties user.nametest user.password123456 ............................... 需求&#xff1a;先需要通過shell 腳本將 user.name 和 user.password 的value值替換為實際需要的用戶名和密碼&#xff0c; 將可以通過如下方式實現&#xff1a; sed …

【Spring Cloud】Redis緩存接入監控、運維平臺CacheCloud

CacheCloud CacheCloud提供一個Redis云管理平臺&#xff1a;實現多種類型(Redis Standalone、Redis Sentinel、Redis Cluster)自動部署、解決Redis實例碎片化現象、提供完善統計、監控、運維功能、減少運維成本和誤操作&#xff0c;提高機器的利用率&#xff0c;提供靈活的伸縮…

[Win10應用開發] 使用 Windows 推送服務 (WNS)

前言 Windows 推送服務&#xff08;WNS&#xff09;也是 Win10 通知機制中的一種&#xff0c;今天與大家一起學習一下有關WNS的相關知識。使用 Windows 推送服務的前提是你需要有一個微軟開發者賬號&#xff0c;這樣才能得到一些合法的密鑰信息用于與WNS服務器完成通訊操作。 …

Windows 11 新版 25158 推送!全新搜索框和圖標、小組件動態內容和通知標記

面向 Dev 頻道的 Windows 預覽體驗成員&#xff0c;微軟現已推送 Windows 11 預覽版 Build 25158。主要變化1.微軟宣布為 Windows 11 搜索引入全新視覺體驗&#xff0c;由搜索框或重新設計的搜索圖標呈現。目前該功能僅向部分 Windows 預覽體驗成員推出&#xff0c;將在未來向所…

Python之路【第一篇】:環境搭建

虛擬機安裝 下載VMwareWorkstation以及centos,安裝完VMwareWorkstation&#xff0c;創建一個虛擬機&#xff0c;然后在新創建的虛擬機上運行centos linux環境搭建 公司開發使用linux的原因&#xff1a;穩定、安全、開源 在虛擬機中使用centos這個版本&#xff0c;作為服務器端的…

【BIM入門實戰】Revit創建地形的幾種方法及優缺點

Revit在體量和場地選項卡的【地形表面】工具可以創建三維地形,有三種方法:放置點、指定點文件和導入實例文件、傾斜攝影點云技術和InfraWorks地形生成。 文章目錄 1. 放置點2. 指定點文件3. 導入實例文件4. 傾斜攝影點云技術5. InfraWorks地形生成1. 放置點 放置點功能位于體…

2024年起重機司機(限門式起重機)證考試題庫及起重機司機(限門式起重機)試題解析

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2024年起重機司機(限門式起重機)證考試題庫及起重機司機(限門式起重機)試題解析是安全生產模擬考試一點通結合&#xff08;安監局&#xff09;特種作業人員操作證考試大綱和&#xff08;質檢局&#xff09;特種設備作…

微服務架構下的統一身份認證和授權

一、預備知識 本文討論基于微服務架構下的身份認證和用戶授權的技術方案&#xff0c;在閱讀之前&#xff0c;最好先熟悉并理解以下幾個知識點&#xff1a; 微服務架構相關概念&#xff1a;服務注冊、服務發現、API 網關身份認證和用戶授權&#xff1a;SSO、CAS、OAuth2.0、JW…