日志报警脚本

脚本介绍:

   主要是监控服务器的日志,如果在一段时间内没有收到服务器的日志,说明服务器存在日志丢弃或者服务器死机,此时就会通过邮件发送信息给管理员

脚本运行的环境:

  1.   python 3以下
  2.   安装了mailx邮件报警
  3. Rsyslog+LogAnalyzer+MySQL

脚本的代码:

   

 1 #!/usr/bin/python
 2 #coding:utf8
 3 
 4 import os
 5 import time
 6 import  MySQLdb
 7 y=None
 8 print 'weclome to  ddoslog  system'
 9 def mysql():
10  conn=MySQLdb.connect (passwd='ybl8651073',host='127.0.0.1',user='root')
11  cur=conn.cursor()
12  conn.select_db('Syslog')
13  cur.execute('select  count(FromHost) from  SystemEvents')
14  rows=cur.fetchall()
15  for i in rows:
16    for n in i:
17     global h
18     
19     h=n
20      
21 def xuhan():
22    
23    while 1:
24       mysql()
25       print h, y         
26       if h>y:
27             
28           print  '当前的日志条数为:', h 
29           print  '上次的日志条数为:' ,y
30       else:
31          print '系统日志一直没有更新,上次日志的条数为' ,y
32          print '真在发送邮件给管理员用户'
33          os.system('echo 系统日志停止更新请及时检查 |mailx -s xxxx  1014425308@qq.com')
34       try:
35        global y
36       except  SyntaxWarning:
37         pass  
38       y=h       
39       time.sleep(2)  
40 
41 xuhan()

脚本的介绍:

  1.          主要的模块有os,为了执行mailx邮件报警  time 为了让脚本多久执行一次查询日志条数   MySQLdb主要的作用是为了连接数据库得到数据
  2.          首先定义一个函数mysql,主要的作用是获得数据库日志条数,前面主要是连接数据库, 得到一个  元组 rows=cur.fetchall(),循环这个元组,获取日志条数h
  3.          定义一个循环函数,比较当前的日志条数,和上次的日志条数,如果现在的日志条数大于上次的日志条数,说明日志一直在更新,如果是其他则说明日志没有一直在更新。就会发送报警给管理员
  4.  time.sleep() 函数主要定义多久查询一次

脚本运行的结果如下

转载于:https://www.cnblogs.com/yubenliu/p/5773101.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值