为进一步提高系统安全,有必要对系统登录的用户数进行监控,脚本内容如下:
#cat check_snmp_usets.py
- #!/usr/bin/python
- #_*_ coding: utf-8 _*_
- #_*_ coding: cp950 _*_
- '''
- Create date: 2012-10-24
- Last update: 2012-10-24
- Version: 1.0
- Description: Monitor login users
- Author: Victor
- QQ:1409175531
- '''
- import sys
- import netsnmp
- import os
- def help():
- print '''Usage:
- %s ''' % (sys.argv[0])
- oid = netsnmp.Varbind('HOST-RESOURCES-MIB::hrSystemNumUsers.0')
- odilist = netsnmp.VarList(oid)
- try:
- resultList = netsnmp.snmpget(oid, Version=2, Community=sys.argv[1], DestHost=sys.argv[2])
- except IndexError:
- help()
- sys.exit()
- result = str(resultList)[2:-3]
- c = result.split()
- if not len(sys.argv) == 4:
- help()
- sys.exit()
- else:
- try:
- if int(c[0]) < int(sys.argv[3]):
- print 'OK - 登录用户数: %s | 登录用户数: %s (报警阀值: %s)' % (c[0], c[0], sys.argv[3])
- sys.exit(0)
- elif c[0] >= int(sys.argv[3]):
- print 'Warning - 登录用户数: %s | 登录用户数: %s (报警阀值: %s)' % (c[0], c[0], sys.argv[3])
- sys.exit(1)
- else:
- print 'Unknown'
- sys.exit(3)
- except ValueError:
- print 'Warning_threold Must be an integer'
直接执行脚本可以看到脚本的使用方法:
# python check_snmp_users.py
Usage:
check_snmp_users.py
团体名,如public;
主机名或IP地址;
报警阀值;
实例:
将check_snmp_users.py脚本放在/usr/local/nagios/libexec目录下,给执行权限。
commands.cfg配置:
define command {
command_name snmp_users
command_line $USER1$/check_snmp_users.py $ARG1$ '$HOSTADDRESS$' '$ARG2$'
}
services.cfg配置:
define service{
use service02
host_name test
service_description Login Users
check_command snmp_users!public!1 //只要有一个用户登录系统就报警;
}
效果图如下:
PS:本脚本可监控Linux/Windows登陆的用户数。
本文乃何秋平原创文章,请勿转载。如须转载请详细标明转载出处。
阅读(665) | 评论(0) | 转发(0) |