首页 > 系统相关 >shell 钉钉告警脚本

shell 钉钉告警脚本

时间:2023-07-28 15:22:05浏览次数:35  
标签:脚本 shell run log robot alert tail msg 告警

#!/bin/bash
# 钉钉告警
function send_notify(){
 curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxx' \
     -H 'Content-Type: application/json' \
     -d '{
           "msgtype": "markdown",
           "at": {
               "atMobiles": [
                    "158xxx",
                    "132xxx",
                    "199xxx"
               ],
               "atUserIds":[
                    "xxxx"
               ]
            },
           "markdown": { 
               "title": "Logstash错误告警",
               "text":  "### Logstash错误告警 @158xxx@132xxx \n  > '$1' "
           }
         }'
}

# 查看lostash日志文件
## 扫描时间
dt=$(date +"%Y-%m-%d %H:%M:%S")

## 查看行尾10万行数据是否有错误产生,并将错误信息写入tail.log  
tail -n 100000 /run/log_consumer.log|grep ERROR > /run/dingding_alert_robot_sh/tail.log  

# 将tail.log最后一行内容去除空格赋值给msg
msg=`tail -n 1 /run/dingding_alert_robot_sh/tail.log|sed 's/ //g'`

echo "error--------->$msg"
# 获取上次执行时间
# last_dt=`tail -n 1 /run/dingding_alert_robot_sh/logstash_error_alert.log|awk -F '=====>' {print $1}`

#判断msg是否是空字符串,如果不是发送钉钉告警
if [ $msg == ""]
then 
 # 记录日志
  echo "$dt=====>未发生错误" >> /run/dingding_alert_robot_sh/logstash_error_alert.log
else
  # 发送告警信息 
  res=$(send_notify $msg) 
  # 记录日志
  echo "$dt=====>发生了错误----->$msg" >> /run/dingding_alert_robot_sh/logstash_error_alert.log
fi

标签:脚本,shell,run,log,robot,alert,tail,msg,告警
From: https://www.cnblogs.com/dch-21/p/17587485.html

相关文章

  • skywalking 监控告警处理和外挂配置
    1、添加告警配置vimconfigs/alarm-settings.ymldingtalkHooks:textTemplate:|-{"msgtype":"text","text":{"content":"ApacheSkyWalkingAlarm:\n%s."}}webhooks:......
  • spring-boot 打包 配置、lib、脚本分开 的maven配置
    <profiles><profile><id>dev</id><properties><spring.profiles.active>dev</spring.profiles.active></properties></profile>......
  • Day5.2 Shell编程教程 - 特殊变量表达式参数
    1.特殊变量表达式参数`$0``$n``$#``$*``$@``$?``$$``$!`2.示例脚本示例脚本-`special_variables.sh`3.执行示例脚本4.结论大树哥个人信息在Shell脚本中,特殊变量提供了对脚本执行过程和执行环境的访问。它们帮助我们在脚本中获取脚本自身的名称、获取命令行参数以及处理其......
  • Windows PowerShell 使用SDKMAN
    前言sdkman(TheSoftwareDevelopmentKitManager),从名字上就可以很明显的感觉到,这个软件是干什么的,有点像Nodejs中的nvm工具。在开发过程中,总能遇到这样一种情况,就是有些时候要这个版本的,有些时候要使用其他版本的,这样就得不停的切换环境变量中的设置。使用sdkman即可......
  • Keepalived脑裂的解决和预防(附脚本)
    在实际生产环境中,我们可以从以下几个方面来防止裂脑问题的发生:同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息。当检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如Stonith、feyce)。相当于备节点接收不到心跳消患......
  • (保姆级图文)如何使用PowerShell连接Exchange Online
    直接开始菜单->所有程序-> WindowsPowerShell->WindowsPowerShell 然后右键使用管理员权限打开打开后窗口如下#连接ExchangeOnlinePowerShell#为了使从Internet下载的所有PowerShell脚本能够由受信任的发布者签名,#请在提升的PowerShell窗口(通过选择“以......
  • shell(linux)
    shell解释器可当作人与计算机硬件的“翻译官”,想要正确高效的做好系统运维工作,脚本的使用至关重要 一定程度上支持使用脚本来定制功能,这时候就要用到.bashrc了为了加载你的配置,bash在每次启动时都会加载.bashrc文件的内容。每个用户的home目录都有这个shell脚本。它......
  • 不错的shell 脚本教程
    [url]http://neoman.iteye.com/blog/1485862[/url]超强视频教程推荐】方老师shell脚本讲座。特别适合新手,也是老手复习的好资料下载地址:(一)shell脚本与应用示例.rmvb:[url]http://szdxr008.qjwm.com/down_2730621.html[/url](二)三剑客--文本处理......
  • linux shell编程入门
    摘要介绍shell是什么shell快速开始一、基本概念1.shell是什么Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停止甚至是编写一些程序。2.shell脚本|执行方式脚本格式要求脚本以#!/b......
  • shell条件判断 | shell if语句
    摘要shell的if语句shell的elif语句一、基本语法if[condition]then 程序fi注意:condition前后要有空格condition的语法见这篇博客多条分支如下if[condition1]then 程序elif[condition2]then 程序2fi二、快速入门1.if案例1:"ok"是否等于"ok"(判断语......