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以上需要调整参数才能使用。

SSH使用双因子认证

普通ssh远程连接,使用帐号密码就能登陆,在使用双因子认证后,在输入密码后还需要输入验证码,以增强系统的安全。
PS:更安全的是使用密钥登陆,以及限制登陆IP, 或者使用跳板机,环境不同方法亦有所区别,还需要配合系统的其他安全措施,方能更好的提高系统的安全。
PPS:Xshell 工具亦会泄漏帐号、密钥。建议从官网下载软件。

一 系统安装google authenticator
ubuntu:
$ sudo apt-get install libpam-google-authenticator
centos:
$ yum install google-authenticator
需提前安装EPEL源

二 生成验证密钥
$ google-authenticator
命令运行后,会出现二维码。 手机下载安装 google-authenticator 扫码激活。
生成后按提示,输入Y 进行下一步操作。
secret key 项备份,以备将来更换手机、安装APP时,激活验证码。
mergency scratch codes 此项数值用于紧急时使用。使用后作废。

三 SSH 添加 authenticator
修改 PAM 文件
$ sudo vi /etc/pam.d/sshd
添加如下内容:
auth required pam_google_authenticator.so
修改 SSH 配置文件
$ sudo vi /etc/ssh/sshd_config
ChallengeResponseAuthentication yes

四 重启SSH 服务
创建新的连接,验证登陆。