作者xxoo1122 (一个连IE6都能相容的男人)
看板MIS
标题[心得] Cacti+Line群组告警
时间Sat Oct 25 13:13:02 2014
前阵子小弟有简介过如何将Cacti告警讯息如何透过简讯发送,
延续这个主题,今天来简介如何透过LINE来发送告警讯息.
其实LINE并没有提供API接口,拜国外的一位大神所赐
他用了python写了LINE的api?模拟器?
第一步:你得先有LINE的帐号,如果是公司要用的帐号可以透过BlueStacks
App player,安装LINE後可以使用Facebook的帐号申请LINE帐号,
这个部分我就不多说明了,网路上应该很多教学.
第二步:下载大神的程式
https://github.com/carpedm20/LINE
使用手册
http://carpedm20.github.io/line/
但是最新版的程式被LINE公司要求移除一些code所以无法使用账号密码登入
只能用authtoken登入,所以我们改用旧版一点的程式
https://pypi.python.org/pypi/line/0.0.8
第三步:把程式下载後解压缩,安装方式非常简单 python setup.py install
第四步:安装完毕後,line的资料夹中会有__init__.py cli.py client.py models.py
这几个文件,接下来我们要来取得authtoken的值,在终端机视窗输入
#python
>>>from line import LineClient, LineGroup, LineContact
>>>client = LineClient("
[email protected]", "xxxxxx")
Enter PinCode '9023' to your mobile phone in 2 minutes
>>> print client.authToken
DLfeGYOfOR2EEMZSa4nd.qM0Hnke6HQm1dJ3gTMXiFq.j2PE6TLIx2HlBp4Sg1x
这时候authtoken值就出来了
第五步:#vi cacti.py 我们建立一个可以发讯息的script,authToken就填入刚刚
取得的值,使用client.groups[].sendMessage()另外我这边使用sys.argv
传值,就可以发讯息到你指定的群组还有更多方式可以使用,请参见使用手册
from line import sys, LineClient, LineGroup, LineContact
try:
client = LineClient(authToken="DLGXrEOTSTUTFjKUQER1.ENllx8g5EM=")
except:
print "Login Failed"
while True:
client.groups[0].sendMessage(sys.argv[1])
break
第六步:再来修改thold_functions.php这只程式,找到function thold_mail
移动到function 的最尾端可以看到return ''; ,在return '';前加入
$sms = shell_exec('python /usr/share/cacti/plugins/thold/line/line/
cacti.py '.escapeshellarg($message).'');
完成图
http://ppt.cc/bgso
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.166.70.82
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MIS/M.1414213987.A.7EF.html
1F:推 punding: 推推 10/25 13:18
2F:推 luvboa: 实用大推 10/25 13:32
3F:推 a516884: 高手隐藏在凡间XD 10/25 15:55
4F:推 trumpete: 实用大推 更大推分享 10/25 16:24
5F:→ trumpete: 请问IE6 能相容 表示这个男人很......? 老? XD 10/25 16:25
6F:推 justfor1221: 这不推不行了! 10/25 17:52
7F:推 niker168: 推一个 10/27 03:20
8F:推 luvboa: 测试成功,感谢分享!! 10/29 17:00
9F:推 shadowknight: 超实用 11/02 16:50
10F:推 peniz: 回报!小弟用0.08版实作成功。可是自动登出的状况无解。 02/20 19:18
11F:→ peniz: 请教版大也有一样的问题吗? 02/20 19:19
12F:→ peniz: 作者自己也说Token过期的话,要重新申请。(摊手) 02/25 13:50