zabbix使用微信报警

附:zabbix 使用的python 脚本
1.申请微信公众号或企业号,利用申请后的API接口进行报警信息的接收
2.zabbix如何添加暂且忽略,目前只附报警脚本

python 脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( “utf-8″ )

class WeChat(object):
__token_id = ”
# init attribute
def __init__(self,url):
self.__url = url.rstrip(‘/’)
self.__corpid = ‘*****************’ 注:修改自己申请的ID
self.__secret = ‘******************’ 注:修改自己申请的ID

# Get TokenID
def authID(self):
params = {‘corpid’:self.__corpid, ‘corpsecret’:self.__secret}
data = urllib.urlencode(params)

content = self.getToken(data)

try:
self.__token_id = content[‘access_token’]
# print content[‘access_token’]
except KeyError:
raise KeyError

# Establish a connection
def getToken(self,data,url_prefix=’/’):
url = self.__url + url_prefix + ‘gettoken?’
try:
response = urllib2.Request(url + data)
except KeyError:
raise KeyError
result = urllib2.urlopen(response)
content = json.loads(result.read())
return content

# Get sendmessage url
def postData(self,data,url_prefix=’/’):
url = self.__url + url_prefix + ‘message/send?access_token=%s’ % self.__token_id
request = urllib2.Request(url,data)
try:
result = urllib2.urlopen(request)
except urllib2.HTTPError as e:
if hasattr(e,’reason’):
print ‘reason’,e.reason
elif hasattr(e,’code’):
print ‘code’,e.code
return 0
else:
content = json.loads(result.read())
result.close()
return content

# send message
def sendMessage(self,touser,message):

self.authID()

data = json.dumps({
‘touser’:touser,
‘toparty’:”1″, 注:修改部门ID
‘msgtype’:”text”,
‘agentid’:”2″, 注:修改接收消息的帐号ID
‘text’:{
‘content’:message
},
‘safe’:”0″
},ensure_ascii=False)

response = self.postData(data)
print response

if __name__ == ‘__main__’:
a = WeChat(‘https://qyapi.weixin.qq.com/cgi-bin’)
a.sendMessage(sys.argv[1],sys.argv[3])

此脚本适用Python 2.* 版本,3以上需要调整参数才能使用。

转:MySQL 优化原理

本文转自 微信公众号: 高效运维 作者:作者 CHEN川
感谢作者的无私分享!

说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。
MySQL逻辑架构

如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。

更新中….. 待续