Zabbix+Python

邮件

  • smtp( Simple Mail Transfer Protocol)即简单邮件传输协议,使用TCP协议25端口

  • 它是一组用于由源地址到目的地址传送邮件的规则, 由它来控制信件的中转方式

  • python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装

  • SMTP对象:Python发送邮件,第一步是创建SMTP对象

import smtplib  
smtp_obj= smtplib. SMTP( [host [ port [ local_hostname]]

创建SMTP对象也可以不给定参数,之后再通过对象 的其他方法进行绑定

  • 标准邮件需要三个头部信息
    • From:发件人
    • To:收件人
    • Subject:主题
'''示例,本机邮件'''
from email.mime.text import MIMEText
from email.header import Header
import smtplib

# 准备邮件,plain表示纯文本邮件
msg = MIMEText('Python email test.\n', 'plain', 'utf8')
msg['From'] = Header('root', 'utf8')
msg['To'] = Header('tom', 'utf8')
msg['Subject'] = Header('py test')

# 发送邮件
smtp = smtplib.SMTP('localhost')
smtp.sendmail('root', ['tom', 'jerry'], msg.as_bytes())
'''网络邮件'''
from email.mime.text import MIMEText
from email.header import Header
import smtplib
from getpass import getpass


def send_email(body, sender, receivers, subject, server, passwd):
    # 准备邮件,plain表示纯文本邮件
    msg = MIMEText(body, 'plain', 'utf8')
    msg['From'] = Header(sender, 'utf8')
    msg['To'] = Header(receivers[0], 'utf8')
    msg['Subject'] = Header(subject)

    # 发送邮件
    smtp = smtplib.SMTP()
    smtp.connect(server)
    # smtp.starttls()  # 类似于https,如果服务器要求加密,则启用此语句
    smtp.login(sender, passwd)
    smtp.sendmail(sender, receivers, msg.as_bytes())


if __name__ == '__main__':
    body = 'Python发送邮件测试\n'
    sender = '103635xxxx@qq.com'
    receivers = ['138xxxxxxxx@163.com', '103635xxxx@qq.com']
    subject = 'py test'
    server = 'smtp.qq.com'
    passwd = getpass()
    send_email(body, sender, receivers, subject, server, passwd)

JSON

  • JSON(JavaScript Object Notation)是一种轻量级的数据交换格式
  • 易于人阅读和编写,同时也易于机器解析和生成
  • 基于 JavaScript Programming Language
  • JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,++,c#,ava, JavaScript,perl, Python等)
  • 这些特性使JSON成为理想的数据交换语言
  • 方法:
>>> import json
>>> d1 = {'name': 'tom', 'age': 20}
# 发送字典前,先将它转成json字符串
>>> data = json.dumps(d1)
>>> type(data)
<class 'str'>
>>> data
'{"name": "tom", "age": 20}'
>>>
# 接收的json字符串通过loads转成相应的数据类型
>>> jdata = json.loads(data)
>>> type(jdata)
<class 'dict'>
>>> jdata['name']
'tom'
>>> jdata['age']
20
# 访问json数据
# 中国天气网api地址
# 实况天气获取: http://www.weather.com.cn/data/sk/城市代码.html
# 城市信息获取: http://www.weather.com.cn/data/cityinfo/城市代码.html
# 详细指数获取: http://www.weather.com.cn/data/zs/城市代码.html
# 城市代码通过搜索引擎搜索
>>> url3 = 'http://www.weather.com.cn/data/sk/101010300.html'
>>> r = requests.get(url3)
>>> r.json()    # 乱码
>>> r.encoding  # 查看当前编码
'ISO-8859-1'
>>> r.encoding = 'utf8'  # 修改字符编码
>>> r.json()
{'weatherinfo': {'city': '朝阳', 'cityid': '101010300', 'temp': '28.4', 'WD': '东南风', 'WS': '小于3级', 'SD': '27%', 'AP.6hPa', 'njd': '暂无实况', 'WSE': '<3', 'time': '17:55', 'sm': '1.7', 'isRadar': '1', 'Radar': 'JC_RADAR_AZ9010_JB'}}

requests模块

  • Requests是优雅而简单的HTTP库
  • Requests内部采用urillib3
  • Requests使用起来会比urillib3更简单便捷
  • Requests需要单独安装

特性:

  • 支持keep -alive-的连接池
  • 支持通用的域名以及URL地址
  • 支持使用 cookie
  • 支持使用类似浏览器的SSL验证
  • 文件上传、下载
[root@localhost day02] pip3 install requests
>>> import requests
# 访问文本类型的数据
>>> url1 = 'http://www.163.com'
>>> r = requests.get(url1)
>>> r.text

# 访问非文本文件数据,如图片、压缩包
>>> url2 = 'http://pic.kaixin001.com/pic/app/2/26/2_45022680_diary.jpeg'
>>> r = requests.get(url2)
>>> r.content
>>> with open('/tmp/cat.jpg', 'wb') as fobj:  # 保存到文件
...   fobj.write(r.content)

使用阿里云api

  • http://www.aliyun.com -> 云市场 -> api市场
  • 在api市场购买某一产品,如[杭州网尚科技的天气预报]后,点击“管理控制台”进
    入,可以查看APPCODE
>>> url = 'http://jisutqybmf.market.alicloudapi.com/weather/query'  #地址
>>> headers = {'Authorization': 'APPCODE 你的APPCODE'}  #请求头
>>> params = {'citycode': '101010300'}  #参数
>>> r = requests.get(url, headers=headers, params=params)
>>> r.json()

>>> url4 = 'http://icalendar.market.alicloudapi.com/ai_metaphysics/calendar/elite'
>>> headers = {'Authorization': 'APPCODE 你的APPCODE'}
>>> params = {'STRING': '20200325150330'}
>>> r = requests.get(url4, headers=headers, params=params)
>>> r.json()

钉钉机器人

  • https://www.jianshu.com/p/a3c62eb71ae3
  • https://im.dingtalk.com/ 钉钉web版 -> 创建群 -> 创建群聊机器人 -> 自定>义webhook类型
  • 说明文档:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

Zabbix编程

  • zabbix官方文档
  • Zabbix apia允许你以编程方式检索和修改 Zabbix的 配置,并提供对历史数据的访问。
  • 它广泛用于
    • 创建新的应用程序以使用 Abbi
    • 将 Zabbix与第三方软件集成
    • 自动执行常规任务
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值