Chinaunix首页 | 论坛 | 博客

XX

  • 博客访问: 510260
  • 博文数量: 281
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 562
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-17 21:40
个人简介

XXX

文章分类

全部博文(281)

文章存档

2017年(1)

2015年(3)

2014年(117)

2013年(160)

我的朋友

分类: LINUX

2014-04-01 04:55:48

原文地址:使用飞信为系统监控报警 作者:xjc2694

一、飞信机器人软件
官网地址:
需要Glibc2.4以上的版本;RHEL5默认安装的Glibc2.5,所不需要额外升级;

二、安装过程
下载包地址LINUX X86/32:支持库  最新程序fetion20080901004-linux.tar.gz
分别下载支持库和最新程序
1.安装支持库 
[root@RHEL5 fetion]# tar -xvf lib_lin_32.tar.gz.tar 
library_linux32/
library_linux32/libcrypto.so.0.9.8
library_linux32/libACE.so.5.4.7
library_linux32/libACE_SSL.so.5.4.7
library_linux32/libssl.so.0.9.8

[root@RHEL5 fetion]# cd library_linux32/
[root@RHEL5 library_linux32]# cp *so* /usr/lib

2.安装fetion
[root@RHEL5 fetion]# tar -xvf fetion20080901004-linux.tar.gz.tar 
[root@RHEL5 fetion]# mv install/  /opt/fetion
3. 测试fetion是否可以正常使用
[root@RHEL5 opt]# cd /opt/fetion/
[root@RHEL5 fetion]# ldd fetion 
        linux-gate.so.1 =>  (0x00969000)
        libACE.so.5.4.7 => /usr/lib/libACE.so.5.4.7 (0x00e35000)
        libACE_SSL.so.5.4.7 => /usr/lib/libACE_SSL.so.5.4.7 (0x00110000)
        libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00393000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00791000)
        libm.so.6 => /lib/libm.so.6 (0x00d55000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00940000)
        libc.so.6 => /lib/libc.so.6 (0x00c0a000)
        libdl.so.2 => /lib/libdl.so.2 (0x00d4f000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00d7e000)
        librt.so.1 => /lib/librt.so.1 (0x00d97000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00510000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00da2000)
        /lib/ld-linux.so.2 (0x00bec000)
所有的库文件都可以正常找到

[root@RHEL5 fetion]# ./fetion -h 查看帮助

三、实际测试
1.登录飞信默认是中文utf8的,如果linux系统不支持utf8会出现乱码:我使用english的方式来登录啦。
测试帐号:13713718888
密码:123456 (如果密码中含有特殊字符,请使用单引号)
./fetion -u 13713718888 -p 123456 -EN
登录后输入?获得帮助
****************************************************************
指令                    指令说明
list                     好友列表: list
sms                    发送短信: sms 飞信号/手机号/编号 短信内容(换行请用\n代替)
chat                   在线消息: chat 飞信号/手机号/编号 短信内容(换行请用\n代替)
status                 在线状态: status online/busy/away/hidden [个性化信息]
add                    添加好友: add 飞信号/手机号 申请信息 本地呢称
del                     删除好友: del 飞信号/手机号/编号
invite                 邀请好友: invite 手机号 您的姓名(邀请好友开通飞信)
autoaccept         自动接受: autoaccept on/off/status 自动接受加为好友申请
myinfo                修改资料: myinfo nickname/impresa 内容(呢称/心情)
help                   帮助菜单: help/?
exit                   退出系统: quit/exit 
****************************************************************

sms 137******** "this is test message" # 这个就是我们需要的发送短信的指令啦!


2.脚本测试:
可以使用fetion的-b参数来实现p处理;
举例如下:
# vi p.sh
sms 137xxxxxxxx “msyqlserver is down”

保存后执行:
./fetion -u 137xxxxxxxx -p 123456 -b p.sh
就是一次发出报警信息。



3.配合监控脚本
#!/bin/bash
disk=$(df /dev/sda1 |grep /dev|awk '{print $5}'|tr -d "%")
if [ "$disk" -gt "80" ]; then
/opt/fetion/fetion -u 138xxxxxxxx -p 123456 -EN -b /opt/mon.sh  >>/opt/fetion.log 2>&1
else :
fi


4.脚本实例
监控网站是否可以正常访问,有问题时报警,恢复后提示 (注:如果复制粘贴,运行出错,注意查一下是否是某些字符复制时格式改变了)

#!/bin/sh

#############################Var################################

errpath=/tmp/alert-err
okpath=/tmp/alert-ok
fetionum=13811012345
fetionpass=12345
admin=13811012345

############################function############################
scan ()
{
rm -rf /tmp/tmp.wget
(time -p wget --delete-after  ) >/tmp/tmp.wget 2>&1

#setting realtime of run
realtime=$(cat /tmp/tmp.wget |grep "real"|awk '{ print $2}'|awk -F . '{print $1}')
#echo "Wget time is $realtime "

okstate=$(cat /tmp/tmp.wget |grep "OK"|awk '{print $5}')
#echo $okstate

}

alerterr ()
{
/opt/fetion/fetion -u $fetionum -p $fetionpass -EN -b $errpath
}


alertok ()
{
/opt/fetion/fetion -u $fetionum -p $fetionpass -EN -b $okpath
}
##############################Main###############################

while [ 1 ]
do
sleep 90
scan

if [ "$okstate" != "OK" ] ; then
if [ -f /tmp/err ];then 
echo "`date +%Y/%m/%d-%T`wget not ok but has been alert" 
#continue
else
echo "sms $admin `date +%Y/%m/%d-%T`  wget is not OK " >$errpath
echo "exit" >>$errpath
alerterr
echo "`date +%Y/%m/%d-%T` -----------------------------------> wget is not OK "
touch /tmp/err 
fi

else
if [ -f /tmp/err ];then
echo "sms $admin "`date +%Y/%m/%d-%T` Recover!! wget time is $realtime"" >$okpath
echo "exit" >>$okpath
alertok 
        rm /tmp/err
echo "`date +%Y/%m/%d-%T` ------------------------------------> Recover !!! wget time is $realtime"
#continue
else 
echo "`date +%Y/%m/%d-%T` wget time is $realtime running ok"
     fi


fi
done

阅读(812) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~