简介
调度器默认的告警不是挺好用所以自定义一个脚本报警。
创建一个钉钉机器人
调度失败告警脚本
1.先安装pymysql。
pip install pymysql
2.具体脚本
#!/usr/bin/env python
# coding=utf-8
# -*- coding=utf-8
import pymysql # 实现连接mysql
import requests
import json
import datetime
#要修改的钉钉webhook
token_dd = ''
mysql = pymysql.connect(
host='localhost', # 连接地址, 本地
user='账号', # 用户
password='密码', # 数据库密码,记得修改为自己本机的密码
port=3306, # 端口,默认为3306
database='dolphinscheduler' #这里就是dolphinscheduler对应的库
)
# 查询数据,t_ds_process_instance就是运行后实例,如果是6那么就代表失败,具体的状态可以去数据库进行查看这张表
find_fail_process_instance = 'select name,state,start_time from t_ds_process_instance where state=6 limit 10;'
# ======================主要是修改上面三个===================
date_str = (datetime.datetime.now()+datetime.timedelta(days=0)).strftime("%Y-%m-%d")
def send_msg(token_dd, date_str,test_str, note_str, at_all=False):
"""
通过钉钉机器人发送内容
@param date_str:
@return:
"""
url = 'https://oapi.dingtalk.com/robot/send?access_token=' + token_dd
headers = {'Content-Type': 'application/json;charset=utf-8'}
content_str = '''{} 定时推送:\n'''.format(date_str)
data = {
"msgtype": "link",
"link": {
"title": content_str,
"text": test_str+'\n告警 !', #这里有一个告警是因为在创建钉钉机器人的时候,设置了只有内容有告警的时候才能够发送成功,具体根据自己的情况来
"picUrl": "https://img0.baidu.com/it/u=2230992780,1546219343&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500",
"messageUrl": "https://www.baidu.com" #点击以后跳转的地址
}
}
res = requests.post(url, data=json.dumps(data), headers=headers)
print(res.text)
return res.text
db = mysql.cursor()
try:
# 查找数据
db.execute(find_fail_process_instance)
# 获取查询的所有记录
res = db.fetchall()
# print(res)
for item in res:
#数据库查出来的数据由于是元组类型,所以得到值进行发送
# print(item[0])
# print(item[1])
# print(item[2])
text_str='''任务: \n{} \n在 {} 失败'''.format(item[0],item[2])
send_msg(token_dd, date_str, text_str, True)
except Exception as e:
print('操作失败',e)
# 游标关闭
db.close()
# 关闭连接
mysql.close()
3.然后测试脚本发送钉钉信息成功以后放在调度器上面去执行,就达到了监控的效果。
4.或者直接使用linux只带的调度。
crontab -e
#每分钟执行一次
* * * * * /home/bigdata/shell/warn/dolphinscheduler_warn.sh
#查看下是否修改成功了
crontab -l
钉钉发送样式参考
python操作钉钉机器人 ——学习来源:Datawhale自动化办公_︶ㄣ我18、O_o岁ㄜ的博客-CSDN博客_python 钉钉机器人