自定义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.mzph.cn/news/284651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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…

《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的声明一般被用来在身份提供者和服务提…

【ArcGIS微课1000例】0024:ArcGIS如何连接文件夹、设认工作目录、默认地理数据库、相对路径与绝对路径?

ArcGIS软件在初次安装完成或者为了工作的方便,通常需要连接到指定的文件夹、设置默认工作路径,默认地理数据库、相对路径与绝对路径等。 文章目录 1. 文件夹连接2. 默认工作目录3. 默认地理数据库4. 相对路径与绝对路径1. 文件夹连接 在初次安装完ArcGIS时,默认没有文件夹连…

【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;将在未来向所…

【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…

使用vh来制作高度自适应页面和元素垂直居中

为什么80%的码农都做不了架构师&#xff1f;>>> vh单位 vh是CSS3中的一个长度单位&#xff0c;其值为&#xff1a;100vh 视窗高度。即如果窗口高度为500px&#xff0c;那么 1vh 5px。具体的值会随着浏览器视窗高度的改变而实时改变&#xff0c;因此可以利用这个单…

传智168期JavaEE struts2杜宏 day32~day33(2017年2月15日23:27:09)

struts2学习完毕&#xff0c;寒假学习效率还不错。 笔记链接 链接&#xff1a;http://pan.baidu.com/s/1boBJLVp 密码&#xff1a;wwl4转载于:https://www.cnblogs.com/huangtao1996/p/6403886.html

GitLab的安装、配置、使用

前言上周去参与“中国数字经济创新发展大会”了&#xff0c;然后又忙新项目的事情&#xff0c;博客又有一段时间没有更新&#xff0c;今天周一事情比较少&#xff0c;立刻开始写文&#xff0c;最近有挺多值得记录的东西~进入正文&#xff0c;最近我们搭了个Gitlab&#xff0c;并…

【BIM入门实战】Navisworks2018简体中文安装教程(附安装包下载)

Navisworks是Autodesk公司开发的一款三维模型可视化软件,它以轻量化的运行方式进行BIM成果的后期处理及整合,是一款非常实用的软件。基于Navisworks,项目的参建方可以在施工前进行模拟施工,以达到减少返工、缩短工期、提供经济效益的目的。 Navisworks同时支持4D和5D模拟,…

微软 Windows11 Build 22000.71 更新(KB5004252)发布

微软推出了一个全新的娱乐小工具。这一部件允许用户查看 Microsoft Store 中可用的新电影和精选电影。选择一部电影会引导用户到 Microsoft Store 查看有关该影片的更多信息。 7 月 16 日消息 今日凌晨&#xff0c;微软宣布向预览体验计划用户发布 Windows 11 Build22000.71 更…