前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >yarn任务简单的python钉钉告警

yarn任务简单的python钉钉告警

原创
作者头像
平常心
修改2021-07-21 15:20:12
6400
修改2021-07-21 15:20:12
举报
文章被收录于专栏:个人总结系列个人总结系列

1.环境

开通钉钉群自定义告警机器人,主要是否要加签和关键词,本次使用告警的关键词是Flink任务。

2.开发代码

2.1 告警信息发送python代码

代码语言:javascript
复制
# -*- coding: UTF-8 -*-
import json
import time
import requests

class SendMesg(object):
    def __init__(self):
        self.__headers = {'Content-Type': 'application/json;charset=utf-8'}
        self.__url = "https://oapi.dingtalk.com/robot/send?xxxx"
        self.__out_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

    def sendMsg(self, subject, content):
        out_content = "{0}\ntime: {1}".format(content, self.__out_time)
        out_subject = "[<alert>{0}]\n".format(subject)
        text = {"content": out_subject + out_content}
        data = {"msgtype": "text", "text": text}

        info = requests.post(url=self.__url, data=json.dumps(data), headers=self.__headers)
        return info  

2.2 yarn任务内容处理,通过关键词

代码语言:javascript
复制
# -*- coding: UTF-8 -*-
import re
import sys
from app_info import Apps
from send_msg import SendMesg

apps_info= Apps()

def get_job_names(text):
    pattern = re.compile(r'flink_\w+')
    job_name = pattern.findall(text)
    if job_name is None:
        return []
    return job_name

if __name__ == '__main__':
    text = sys.stdin.read()
    input_info = get_job_names(text)
    print(input_info)
    out_info = list(set(apps_info.apps).difference(set(input_info)))
    print(out_info)
    if len(out_info) > 0:
        sender = SendMesg()
        info_str = "\n".join([str(x) for x in out_info])
        #print(info_str)
        print_info = sender.sendMsg("Flink任务挂掉", info_str)
        print(print_info)

2.3 配置sh执行

代码语言:javascript
复制
#! /bin/bash
source /home/hadoop/.bash_profile
# yarn application -list
result=$(yarn application -list)
echo $result
echo $result 2>/dev/null | python /mnt/disk1/flink_monitor/flink_job.py

2.4 配置对应调度执行

代码语言:javascript
复制
sudo crontab -u hadoop -e
*/1 * * * * /usr/sh /flink_monitor/flink_job.sh >> /flink_monitor/flink_job.log

3.效果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.环境
  • 2.开发代码
    • 2.1 告警信息发送python代码
      • 2.2 yarn任务内容处理,通过关键词
        • 2.3 配置sh执行
          • 2.4 配置对应调度执行
          • 3.效果
          相关产品与服务
          大数据
          全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档