Zabbix集成Cloud Alert(睿象云)实现电话短信预警
Zabbix 集成 睿象云智能告警平台 CA ( Cloud Alert )
一 、简介与前期了解
Cloud Alert 通过应用,接入监控系统/平台的告警,集中管理您的告警,统一分派通知,统一分析。
这个平台最先了解和使用是在 2017 年下半年,之前的名称叫 oneitsM
。预警产品名称为 : OneAlert
, 现在该产品已经迁移到 睿象云,并更名为 CloudAlert
。本文主要是介绍和记录下该预警产品的使用。
我们首先要注册一个账号:官网链接,然后登陆我们的账号。选择我们的 Cloud Alert
。
然后点击我们上方的集成。
我们可以直接集成业界主流的监控工具,如:Zabbix、Nagios、Prometheus、OpenFalcon、SolarWinds等,同时也可以通过 Email 邮箱集成或者 REST API 方式接入您的告警。
二、集成到 Zabbix
我们需要先获取我们的 APPkey
,然后在安装的时候,传入该参数。
一、安装 Agent
- 切换到
zabbix
脚本目录 (如何查看zabbix
脚本目录):
cd /usr/local/zabbix-server/share/zabbix/alertscripts
- 获取Cloud Alert Agent包:
wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz
- 解压、安装。
tar -xzf ca_zabbix_release-2.1.0.tar.gz
cd cloudalert/bin
bash install.sh APPkey
注:1、在安装过程中根据安装提示,输入zabbix管理地址、管理员用户名、密码。
2、zabbix管理地址正确示例:http://zabbix.server.com/zabbix
- 当提示"安装成功"时表示安装成功!
- 在
zabbix server
管理界面查看是否添加成功。
出现该脚本就意味着成功了。
三 、创建分派策略和通知策略
这里要严重的注意一点,就是 CloudAlert
的 预警级别只有三种,它和 zabbix
的级别对应见下表.我们在设置通知策略和分派策略需要注意.
zabbix 级别状态 | 参数值 | OneAlert 级别状态 |
---|---|---|
information (信息) | 1 | 提醒 |
not_classified (未分类) | 1 | 提醒 |
warning (警告) | 2 | 警告 |
average (一般严重) | 2 | 警告 |
high (严重) | 3 | 严重 |
disaster (灾难) | 3 | 严重 |
分派策略
通知策略
我们这里只使用到 CloudAlert
的通知策略的通知方式中的电话和短信,因为我们 微信已经对接了我们的企业微信预警,邮箱也使用了企业邮箱(进垃圾邮箱的概率更低一些).所以我们这里只设置 通知方式为 电话和短信. 并且只有在严重预警的时候才会触发.
四 、设置动作
在执行安装脚本的时候,默认已经帮我们添加好了动作 cloudalert action
。但是没有设置触发条件,我们可以设置一下触发条件,触发器示警度 大于等于 严重 的时候,进行触发该动作.
五 、生成预警
当我们的预警达到阈值,就会触发报警.
短信预警内容:
【睿象云】16:48:53,发生严重级别告警:Zabbix agent on Test-186 is unreachable for 5 minutesTest-186 Agent ping:Up (1)Zabbix agent on Test-186 is unreachable for 5 minutes,告警对象:Test-186,告警编号:585679
六 、卸载Cloud Alert
Web 设置卸载
- 删除报警媒介
cloudalert media
。 - 删除用户群组
cloudalert group
。 - 删除用户
cloudalert
。 - 删除动作
cloudalert action
。
有人会说我们没有添加上面的东西,为什么会存在上面这些内容,我们在 执行
install.sh
脚本的时候就会添加这些.
脚本文件卸载
删除脚本 删除 /usr/local/zabbix-server/share/zabbix/alertscripts
的cloudalert
文件夹。
七、注意事项
错误内容
我安装的 zabbix server
是使用的 docker 安装的, 脚本目录是使用的数据卷(我们可以用 docker inspect container_id
查看到)。我们将脚本放置在该数据卷后,安装,也提示成功了,但是在预警的时候,有报错。
报错内容如下:
/usr/lib/zabbix/alertscripts/cloudalert/bin
/usr/lib/zabbix/alertscripts/cloudalert/bin/log.sh: line 11: /var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/logs/cloudalert.log: No such file or directory
cp: cannot stat '/var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/logs/cloudalert.log': No such file or directory
/usr/lib/zabbix/alertscripts/cloudalert/bin/log.sh: line 16: /var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/logs/cloudalert.log: No such file or directory
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 623 0 89 100 534 1141 6850 --:--:-- --:--:-- --:--:-- 6935
/usr/lib/zabbix/alertscripts/cloudalert/bin/log.sh: line 11: /var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/logs/cloudalert.log: No such file or directory
cp: cannot stat '/var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/logs/cloudalert.log': No such file or directory
/usr/lib/zabbix/alertscripts/cloudalert/bin/log.sh: line 16: /var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/logs/cloudalert.log: No such file or directory
解析过程与解决问题
从上面我们可以看到是脚本 log.sh
执行的过程中报错了,提示没有该文件,它写入的文件是 /var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/logs/cloudalert.log
,这个文件路径是 docker 宿主机的日志文件路径,程序在 docker 里面运行,这个路径肯定是获取不到的。我们通过查看 log.sh
脚本发现,
#!/bin/bash
if [ -z "$DIR" ]; then
DIR="$( cd "$( dirname "$0" )" && pwd )"
fi
source $DIR/cloudalert.conf
function log(){
path=$base_path
log=$path/logs/cloudalert.log
time=`date +%Y-%m-%d\ %H:%M:%S`
echo $time $1 [$2]: "$3" >> $log
bak_log=$path/logs/cloudalert.log_`date +%Y-%m`
if [ ! -f $bak_log ];
then
cp $log $bak_log
> $log
fi
}
日志路径引用了 base_path
,这个值是在 cloudalert.conf
里定义的. 我们可以在配置文件中看到, base_path
值获取的是 宿主机 cloudalert
所在的路径. 而不是实际在 docker 容器里的路径。
current_path=/var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert/bin
base_path=/var/lib/docker/volumes/bb221b74a7d8ad528194867830db0c1ac8fdc31f2ab0ee4456ffce61646fd83a/_data/cloudalert
agentVersion=1130
AppKey=1233444555666
zabbix_host=http://127.0.0.1
zabbix_url=http://127.0.0.1/api_jsonrpc.php
user=Admin
password=admin
我们将 base_path
的值更改为 在docker 容器里面的值 /usr/lib/zabbix/alertscripts/cloudalert
.
然后就没有报错了.
反思
这个问题的引起,是我在 宿主机下将执行的该脚本,导致的脚本执行的时候获取的是宿主机的目录,而不是 docker 主机里面的目录路径,在 docker 容器里面执行脚本,即可避免该问题。
Zabbix集成Cloud Alert(睿象云)实现电话短信预警的更多相关文章
- zabbix 集成cloud alert
1. 了解 Cloud Alert 通过应用,接入监控系统/平台的告警,集中管理您的告警,统一分派通知,统一分析.这个平台最先了解和使用是在 2017 年下半年,之前的名称叫 oneits ...
- PHP接入阿里云市场 阿里短信服务DEMO
阿里短信服务:支持三大运营商短信.智能管道等优质能力,产品特点:3秒可达.99%到达率.超低资费. 使用阿里短信服务步骤: 1.购买服务 到https://market.aliyun.com/prod ...
- JavaWeb-SpringBoot_一个类实现腾讯云SDK发送短信
腾讯云应用列表 传送门 使用Gradle编译项目 传送门 SDK&API:qcloudsms_java 传送门 package com.Gary.sms.controller; import ...
- 如何使用微信小程序云函数发送短信验证码
其实微信小程序前端和云端都是可以调用短信平台接口发送短信的,使用云端云函数的好处是无需配置域名,也没有个数限制. 本文使用的是榛子云短信平台(http://smsow.zhenzikj.com) ,S ...
- Zabbix实战-简易教程--通过公众平台企业号发送短信
一.注册企业号[体验号] 打开页面 http://qydev.weixin.qq.com/try?t=experience (2016年注册的时候的连接)现在可能变了.进行注册操作,默认有90天的 ...
- 1、背景介绍及移动云MAS平台 --短信平台
目的: 刚开发完成一套短信平台以及一个Web端短信发送系统,短信平台耗时两个周.短信发送系统耗时两个多月,开发使用的技术没什么高科技含量,在此主要是记录下很多情况的处理方案,希望能让大家提出改善方案和 ...
- python-在python3中使用容联云通讯发送短信验证码
容联云通讯是第三方平台,能够提供短信验证码和语音通信等功能,这里只测试使用短信验证码的功能,因此只需完成注册登录(无需实名认证等)即可使用其短信验证码免费测试服务,不过免费测试服务只能给控制台中指定的 ...
- 融云发送手机短信验证短信(.net版本)
首先本次需求是在MVC5中进行的,通过收费的融云服务来验证手机号码,而且本次的项目也是前后台分离,所以添加了WEBAPI2,那么先添加WEBAPI的接口 using System; using Sys ...
- 移动 云MAS 发短信 .net HTTP 请求
本人开发移动云MAS .net Http 请求 代码如下 using Newtonsoft.Json.Linq; using System; using System.Collections.Gen ...
随机推荐
- idea 搭建 SpringBoot 集成 mybatis
编译器:IDEA2018.2.3 环境:win10,jdk1.8,maven3.4 数据库:mysql 5.7 备注:截图较大,如果看不清,可以在图片上右键=>在新标签页中打开 查看高清大图 ...
- ASP.NET中前台如何调用后台变量
.Asp.Net中几种相似的标记符号: < %=...%>< %#... %>< % %>< %@ %>解释及用法 答: < %#... %> ...
- jQuery在线选座订座(高铁版)
除了电影院在线选座,我们还会接触到飞机机舱选座,当然也有汽车票火车票选座的.假如有一天买火车票也提供在线选座,那么今天我来给大家介绍下如何使用jQuery选座插件完成高铁列车座位布置.选座.不同等级座 ...
- MySQL SYS CPU高的案例分析(一)
原文:MySQL SYS CPU高的案例分析(一) [现象] 最近关注MySQL CPU告警的问题时,发现有一种场景,有一些服务器最近都较频繁的出现CPU告警,其中的现象是 SYS CPU占比较高. ...
- 【HLSL学习笔记】WPF Shader Effect Library算法解读之[DirectionalBlur]
原文:[HLSL学习笔记]WPF Shader Effect Library算法解读之[DirectionalBlur] 方位模糊是一个按照指定角度循环位移并叠加纹理,最后平均颜色值并输出的一种特效. ...
- 一张图弄明白开源协议-GPL、BSD、MIT、Mozilla、Apache和LGPL 之间的区别
导读 在开源软件中经常看到各种协议说明,GPL.BSD.MIT.Mozilla.Apache和LGPL. - 这些协议之间的有什么区别 - 如何选择合适的开源协议 请看下文,特作记录一篇,以供后续查看 ...
- Java利用Zxing生成二维码
Zxing是Google提供的关于条码(一维码.二维码)的解析工具,提供了二维码的生成与解析的方法,现在我简单介绍一下使用Java利用Zxing生成与解析二维码 1.二维码的生成 1.1 将Zxing ...
- Headless Chrome入门
原文地址:Getting Started with Headless Chrome By EricBidelman Engineer @ Google working on web tooling ...
- krpano全球漫游相同的声音和声音添加的场景(文章内容已移至krpano中国网站)
请关注微信订阅号 krpano watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG1ob2s=/font/5a6L5L2T/fontsize/400/f ...
- TemplatePart用法说明
原文:TemplatePart用法说明 TemplatePart(Name="PART_Decrease", Type=typeof(RepeatButton)) 一直没明白这是干 ...