调用GrayLog的RestAPI接口实现定时关闭和定时开启告警

简介: 调用GrayLog的RestAPI接口实现定时关闭和定时开启告警

调用GrayLog的RestAPI接口实现定时关闭和定时开启告警

需求场景:

由于某些业务告警,在夜间下班休息时间告警可以不用关注,但是频繁产生并推送告警,会造成一定的困扰,所以想实现晚上19点以后定时关闭告警,早上上班时间8点就自动开启告警

通过查阅GrayLog的API介绍与使用文档,最终实现了以上需求,具体操作步骤如下

1、GrayLog中创建开发者用户developer

角色我这里用Admin角色

(图片点击放大查看)

(图片点击放大查看)

(图片点击放大查看)

然后创建token

(图片点击放大查看)

(图片点击放大查看)

nc3lmi05nae01b6ulvft16okc449oglhgigeab5n7ets0u4oo07

先记录一下这个Token值,后面会用到

2、查看GrayLog的API接口

System/Nodes-------API browser

(图片点击放大查看)

(图片点击放大查看)

(图片点击放大查看)


可以看到三个接口是我们所需要的接口

GET /events/definitions   List event definitions
PUT /events/definitions/{definitionId}/schedule    Enable event definition
PUT /events/definitions/{definitionId}/unschedule  Disable event definition

3、测试并调试接口

1)、GET /events/definitions   List event definitions 列出所有事件定义

(图片点击放大查看)

2)、在GrayLog后台用curl命令测试接口 具体命令如下

curl -s -u nc3lmi05nae01b6ulvft16okc449oglhgigeab5n7ets0u4oo07:token -XGET 'http://192.168.31.170:9000/api/events/definitions?page=1&per_page=50&pretty=true'

当然你可以jq命令,这样有颜色区分更方便查看

可以通过这个接口找到我们要禁用启用的告警id

例如我们要定时控制的告警是"Linux磁盘爆满告警"这个告警

通过GET /events/definitions接口查到的id如下

"id": "647209770de3ff7a424d1f9d",

"title": "Linux磁盘爆满告警",

3)、禁用启用的接口则为

PUT /events/definitions/{definitionId}/schedule    Enable event definition
PUT /events/definitions/{definitionId}/unschedule  Disable event definition

(图片点击放大查看)

4)、我们先用命令禁用一下告警

curl -s  -u nc3lmi05nae01b6ulvft16okc449oglhgigeab5n7ets0u4oo07:token -XPUT -H 'X-Requested-By: cli' 'http://192.168.31.170:9000/api/events/definitions/647209770de3ff7a424d1f9d/unschedule' | jq .

(图片点击放大查看)

5)、然后再启用告警

curl -s  -u nc3lmi05nae01b6ulvft16okc449oglhgigeab5n7ets0u4oo07:token -XPUT -H 'X-Requested-By: cli' 'http://192.168.31.170:9000/api/events/definitions/647209770de3ff7a424d1f9d/schedule' | jq .

(图片点击放大查看)

4、接下来简单编写脚本配置crontab定时任务

vim  /opt/disable_graylogalert.sh 
#!/bin/bash
curl -s  -u nc3lmi05nae01b6ulvft16okc449oglhgigeab5n7ets0u4oo07:token -XPUT -H 'X-Requested-By: cli' 'http://192.168.31.170:9000/api/events/definitions/647209770de3ff7a424d1f9d/unschedule' | jq .
vim /opt/enable_graylogalert.sh
#!/bin/bash
curl -s  -u nc3lmi05nae01b6ulvft16okc449oglhgigeab5n7ets0u4oo07:token -XPUT -H 'X-Requested-By: cli' 'http://192.168.31.170:9000/api/events/definitions/647209770de3ff7a424d1f9d/schedule' | jq .
chmod 777 /opt/enable_graylogalert.sh 
chmod 777 /opt/disable_graylogalert.sh
crontab -e添加如下行
0 8 * * *   /opt/enable_graylogalert.sh
0 19 * * *  /opt/disable_graylogalert.sh

(图片点击放大查看)

以上就是定时开启和关闭GrayLog告警的具体实现步骤

Tips

本文章实现过程参考如下链接和chatgpt

https://go2docs.graylog.org/5-0/setting_up_graylog/rest_api.html

(图片点击放大查看)

相关文章
EMQ
|
7月前
|
SQL 存储 消息中间件
EMQX Enterprise 5.7 发布:新增会话持久化、消息 Schema 验证、规则引擎调试与追踪功能
在这个新版本中,我们引入了一系列新的功能和改进,包括会话持久化、消息 Schema 验证、规则引擎调试与追踪测试等功能。此外,新版本还进行了多项改进以及 BUG 修复,进一步提升了整体性能和稳定性。
EMQ
208 10
EMQX Enterprise 5.7 发布:新增会话持久化、消息 Schema 验证、规则引擎调试与追踪功能
|
5月前
|
JavaScript 前端开发 API
【Azure 应用服务】Azure Function HTTP 触发后, 230秒就超时。而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间?
【Azure 应用服务】Azure Function HTTP 触发后, 230秒就超时。而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间?
|
消息中间件 网络安全 RocketMQ
这个错误可能是由于RocketMQ Proxy的配置或者运行状态出现了问题
这个错误可能是由于RocketMQ Proxy的配置或者运行状态出现了问题
241 1
|
监控 小程序 API
叮咚抢菜-派送时段监听及推送工具🔧
叮咚抢菜-派送时段监听及推送工具🔧
131 0
|
SQL 监控 关系型数据库
【python小脚本】监听日志文件异常数据发送告警短信
老项目中有个用脚本启动的服务,很重要,用来做业务留痕的,涉及业务客户经常性投诉,是找第三方做的,时间长了维护需要花钱,老出各种未知bug,没办法处理所以机器上配了定时任务,定期的几天重启一次来解决。 但是有时候不知道什么原因,重启脚本运行,服务没起来,crond 也没有什么调度机制。 希望写个脚本做监控,当发现服务没起来,发送告警信息,或者重启服务。
189 0
|
监控 网络协议 关系型数据库
zabbix自动化监控---自动注册机制(二十三)
zabbix自动监控之自动注册 1.自动注册介绍 zabbix自动发现的效率非常慢,每次自动发现的时候都需要对所有的主机进行扫描,也类似与zabbix被动模式,每次都需要向机器进行一次探测,比如这次某个主机没有存在,下次上线了又要重新扫描一次,效率非常低下。 而zabbix自动注册的原理就类似主动模式,每次都是由zabbix-agent主动去向zabbix-server说我上线了,需要加入监控,这时zabbix-server同意后立马就加入监控了,这个效率是非常高的 zabbix自动注册只需要配置四个地方即可生效
432 0
zabbix自动化监控---自动注册机制(二十三)
|
SEO
解决WordPress 定时发布失败
解决WordPress 定时发布失败
233 0
|
移动开发 前端开发 JavaScript
PHP定时更新数据库,定时器,定时任务详细讲解(通过前端触发)
PHP定时更新数据库,定时器,定时任务详细讲解(通过前端触发)
694 0
|
调度 Python
定时功能
利用Py简单实现定时功能