怎样在电脑上打印表格完整
Excel表格打印全技巧!教你怎么将辛辛苦苦做好的表格完整无误的打印好,不出一点差错!转需!
2024.11.21应朋友最近需求,先出告警篇。据朋友反馈,由版本 5.4 升级到 6.0 出现 Webhook 的 JS 脚本失效。下面仅仅是其中一个报错。
先贴出 5.x 时代的 Webhook 脚本吧,下面的脚本依然适用 5.0 ~ 5.4 版本
var dingding = {key: null,message: null,msgtype: "markdown",proxy: null,sendMessage: function () {var params = {msgtype: dingding.msgtype,markdown: {title: "IT小白Kasar",(注意这里可以修改)text: dingding.message},},data,response,request = new CurlHttpRequest(),url ="https://oapi.dingtalk.com/robot/send?access_token=" +dingding.key;if (dingding.proxy) {request.setProxy(dingding.proxy);}request.AddHeader("Content-Type: application/json");data = JSON.stringify(params);// Remove replace() function if you want to see the exposed key in the log file.Zabbix.Log(4,"[dingding Webhook] URL: " + url.replace(dingding.key, ""));Zabbix.Log(4, "[dingding Webhook] params: " + data);response = request.Post(url, data);Zabbix.Log(4, "[dingding Webhook] HTTP code: " + request.Status());try {response = JSON.parse(response);} catch (error) {response = null;}if (request.Status() !== 200 || response.errcode !== 0) {if (typeof response.errmsg === "string") {throw response.errmsg;} else {throw "Unknown error. Check debug log for more information.";}}},};try {var params = JSON.parse(value);if (typeof params.Key === "undefined") {throw ‘Incorrect value is given for parameter "Key": parameter is missing‘;}dingding.key = params.Key;if (params.HTTPProxy) {dingding.proxy = params.HTTPProxy;}dingding.to = params.To;dingding.message = params.Subject + "\n" + params.Message;dingding.sendMessage();return "OK";} catch (error) {Zabbix.Log(4, "[dingding Webhook] notification failed: " + error);throw "Sending failed: " + error + ".";}正文新进来的朋友可能不明白什么情况,那么就来讲讲吧,Zabbix 的事件信息可以通过四种方式来传递事件信息,分别是:
E-mail:通过邮件发送相关事件信息;SMS:通关短信来发送相关事件信息;script:通过脚本发送相关事件信息,例如 Python;Webhooks:通过 Webhooks 方式发送相关事件信息。今天要提的就是这个 Webhooks 方式,webhook 是应用给其它应用提供实时信息的一种方式。信息一产生,webhook 就会把它发送给已经注册的应用,这就意味着你能实时得到数据。不像传统的 APIs 方式,你需要用轮询的方式来获得尽可能实时的数据。这一点使得 webhook 不管是在发送端还是接收端都非常高效。(参考网络资料)
钉钉部分操作前提条件
钉钉账号钉钉软件进入钉钉软件里,点击右上方的 + 号
钉钉软件
点击创建群聊
如果仅仅测试,最好选择组织内沟通,选人建群需要3人以上。
点击创建即可
点击群聊,再点击右上方设置图标
找到智能群助手
点击添加机器人
点击添加机器人后面的设置按钮
找到自定义(通过 Webhook 接入自定义服务)机器人,点击创建
自定义机器人的一些介绍,直接点击添加就好了
这里需要添加一些自定义机器人的参数。
需要注意的地方就是安全设置,共有三个参数:
自定义关键词:自定义关键词最多可以写十条,在发送消息的时候带上该关键字即可加签:把timestamp+"\n"+密钥当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集,有兴趣的朋友可以自行查看相关文档,文档地址会放在最后IP 地址(段):就是访问该 Webhook 的公网地址,如何获取公网地址,可以用 curl 查看,如下图二。如果公网地址一直在变,最好采用自定义关键词,第二种比较复杂,需要一定的开发能力。最后得到相关信息,需要将 Webhook 的地址记住,后面会用到。
Zabbix 部分创建媒介类型,路径为 Administration -> Media types -> Create media type
该页面配置较多,名字自行设置,可以设置为中文,类型选择 Webhook,参数部分
选择 Key,找到刚刚创建机器人的那段 webhook 地址,这里为 ‘access_token=’ 后面的一串字符串。
https://oapi.dingtalk.com/robot/send?access_token=bff7096cbd8005c9590a95dc14ae676b030a48f6771d84c261aef381635f3ef1Message 和 Subject 分别代表正文内容和标题,用的内置宏,标准格式
脚本类填写下面的代码即可,最后点击 update 按钮即可
var dingding = {key: null,message: null,msgtype: "markdown",proxy: null,sendMessage: function () {var params = {msgtype: dingding.msgtype,markdown: {title: "IT小白Kasar",text: dingding.message},},data,response,request = new HttpRequest(),url ="https://oapi.dingtalk.com/robot/send?access_token=" +dingding.key;if (dingding.proxy) {request.setProxy(dingding.proxy);}request.addHeader("Content-Type: application/json");data = JSON.stringify(params);// Remove replace() function if you want to see the exposed key in the log file.Zabbix.Log(4,"[dingding Webhook] URL: " + url.replace(dingding.key, ""));Zabbix.Log(4, "[dingding Webhook] params: " + data);response = request.post(url, data);Zabbix.Log(4, "[dingding Webhook] HTTP code: " + request.getStatus());try {response = JSON.parse(response);} catch (error) {response = null;}if (request.getStatus()!== 200 || response.errcode !== 0) {if (typeof response.errmsg === "string") {throw response.errmsg;} else {throw "Unknown error. Check debug log for more information.";}}},};try {var params = JSON.parse(value);if (typeof params.Key === "undefined") {throw ‘Incorrect value is given for parameter "Key": parameter is missing‘;}dingding.key = params.Key;if (params.HTTPProxy) {dingding.proxy = params.HTTPProxy;}dingding.to = params.To;dingding.message = params.Subject + "\n" + params.Message;dingding.sendMessage();return "OK";} catch (error) {Zabbix.Log(4, "[dingding Webhook] notification failed: " + error);throw "Sending failed: " + error + ".";}找到刚刚创建的 Webhook 并进行测试
这就是刚刚说的安全规则导致的,需要在安全条件设置合理的参数
测试成功
钉钉就能接收到来自 Zabbix 的消息了
实战表现仅有媒介不行,还得做一系列的设置。
给用户赋于该 Webhook 的使用权限
路径为 Administration -> Users -> 点击用户
进入到该用户界面,点击 Media 参数,再点击 Add,类型选择刚刚创建的钉钉,Sent to 字段随便填写,这里暂不涉及 @ 用户(后续会出),时间参数就选择默认全勾,最后点击 Add 即可。
添加后,点击下方的 update 就可以了。
创建动作
路径为 Configuration -> Actions -> Trigger action
点击 Create action
名字自行填写,Conditions 就是对应的条件,满足该条件才会触发该动作行为,如果不满则不触发该行为,本文选主机组作为演示条件。
进入到操作选项,这里指的实际的一些行为操作,这里会在后续文章继续展开,当前只需要知道这三个选项对应的是发送告警事件,发送恢复告警事件,发送更新事件,日常工作仅用到前两个选项,点击 Add 即可创建对应的事件通知动作。
这里仅需要调整两个地方,第一个是 Send to users 部分,需要将已授权的用户加入进来即可,第二个部分是 Send only to,选择钉钉即可
最终
创建模拟主机,调用 ICMP Ping 模板,主机类型为 agent 方式,地址选择一个无法 ping 通的地址。
告警产生了,但是发送失败了,还有一个问题没解决,就是媒介的消息模板没定义,目前不展开动作里和媒介里的区别,只涉及解决方法。
进入钉钉模板里,进入到 Message templates 选项,点击 Add
默认模板,直接添加就可以,后续会讲到如何美化
最终
重新再触发告警,此时可以看到发送成功了。
再看看钉钉侧效果
那么基本就完成了。
最后关于事件通知其实是一个很大的知识点,有很多可以展开的内容,欢迎大家关注我后续的文章,下期见!
Excel表格打印全技巧!教你怎么将辛辛苦苦做好的表格完整无误的打印好,不出一点差错!转需!
2024.11.21微信是我们日常工作生活中使用最频繁的软件之一,里面有我们的大量隐私信息,在使用过程中如果我们操作不当,别人就可以在我们不知情的情况下登陆我们的微信,进而导致我们隐私的泄露。那么我们应该如何防范这种情况...
2024.11.19疫情仍未彻底消散,对企业正常办公和跨地域的差旅带来了不小的影响。许多企业趁此机会开始加速自己的数字化建设。视频会议已经在近两年成为企业最重要的沟通方式之一,以往视频会议只是企业在进行数字化建设中的“可...
2024.11.19手残党在手机上根本玩不来这游戏,所以只能下载个模拟器玩了,感觉挺不错的。玩了一个通宵,最后终于有得了个第一。虽然说可能影响了游戏平衡性,但也是无奈之举(再次强调手残),当然还有原因就是电脑不能玩吃鸡...
2024.11.22企业微信终于和个人微信打通了,这一吹风多时的消息对于众多拥有“两张皮”的职场人士来说无疑是一重磅炸弹。对于他们来说,自己的微信号终于可以回到非常自我的状态,而不用动不动就向Boss展现自己元气满满的一...
2024.11.21