一、 问题

但是,总觉得某些地方用着不舒服,主要是以下几个问题

  1. 查看 Windows 登录事件很繁琐,描述了太多内容,而我只关注登录IP
  2. 远程桌面登录失败事件 (4625)不包含 IP,所以,Failed 监控几乎没有意义
    抄录一下:
    使用TLS / SSL作为RDP协议的加密,Windows不会记录尝试登录的用户的IP地址.
    当您将服务器配置为使用(旧版)RDP加密对协议进行加密时,它会将IP地址写入安全事件日志.
    你将不得不做出权衡.要么您的协议加密安全性较低,要么您永远不会知道潜在攻击的来源.拥有正确的入侵检测系统(可以免费下载),系统将在定义数量的无效登录后自动锁定潜在的攻击者.
  3. 登录失败事件没有多大的价值,登录成功,但是不是我们预想的 IP ,这才是危险所在,虽然是亡羊补牢!
  4. Windows 服务器基本上都是 RDP 远程登录,所以,我希望关注的是谁在什么时候登录了,什么时候logout了!
  5. 登录事件触发器会自动变成 “已解决”,然后消失!这不是我希望的!

二、记录远程登录日志

  1. 前提

Windows 远程桌面组策略和登录注销策略设置

  1. logon 和 logoff脚本
    假设 log 文件在 c:/test/3389.log
    logon 登录脚本 login_3389.bat
    logoff 注销脚本 logout_3389.bat
    用于采集数据的关键字: Wellcome 和 Bye

login_3389.bat

@echo off
	set port=3389
	set logFile=c:/test/3389.log
	
	echo "Wellcome Logon!...",%DATE%%TIME%,"..." >> %logFile%
	netstat -an |findstr %port% | findstr "ESTABLISHED" >> %logFile%

logout_3389.bat

@echo off
	set port=3389
	set logFile=c:/test/3389.log

	echo "Bye! login off ... ",%DATE%%TIME% >> %logFile%
	netstat -an |findstr %port% | findstr "ESTABLISHED" >> %logFile%

三、新建 Zabbix 模版


  1. 配置模版和应用集
  2. zabbix6执行远程命令执行 zabbix远程执行命令windows_IP

  3. 配置监控项

    图中特意列出了 Windows Login Error 和 Windows Login Success
    完全参照别人编写
    重点是 Windows 3389 log

zabbix6执行远程命令执行 zabbix远程执行命令windows_触发器_02


键值 : log[c:/test/3389.log]

  1. 配置触发器

    Windows Login Error-2 和 Windows Login Success-2 和别人一样

zabbix6执行远程命令执行 zabbix远程执行命令windows_IP_03

表达式

({Template Windows Login Event by wzh:log[c:/test/3389.log].str(Wellcome)}=1 or {Template Windows Login Event by wzh:log[c:/test/3389.log].str(Bye)}=1)

  1. 配置主机
    将需要监控的 Windows 服务器加上以上模版链接即可!
  2. 确认监控项和触发器

    触发器

四、为什么去掉 nodata 条件

  1. 起初触发器表达式

({Template Windows Login Event by wzh:log[c:/test/3389.log].str(Wellcome)}=1 or {Template Windows Login Event by wzh:log[c:/test/3389.log].str(Bye)}=1) and {Template Windows Login Event by wzh:log[c:/test/3389.log].nodata(60)}=0

  1. 后来,我去掉了 nodata(60) 这一个条件!
    包括 Windows Login Success 的触发器,也去掉了 nodata(60) 这一个条件
  2. 因为实际监控我没有发送邮件或者短信通知,所以,我希望发生的问题一直存在,直到我从 WEB 控制台手工处理之后,才让他变成 “已解决”
  3. 否则,意料之外的登录事件自动变成“已解决”,然后消失
    就会出现很多漏网之鱼!因为,你都没有看到“问题”!
  4. 所以,现在情况是这样子的

zabbix6执行远程命令执行 zabbix远程执行命令windows_IP_04

红牌警告的 “问题”会一直存在!除非我手动处理后,关闭这个问题!

五、列举一下监控项和触发器表达式

监控 key
log[c:/test/3389.log]

触发器表达式
({Template Windows Login Event by wzh:log[c:/test/3389.log].str(Wellcome)}=1 or {Template Windows Login Event by wzh:log[c:/test/3389.log].str(Bye)}=1)

六、遇到的问题

  1. 开始的时候,我在 zabbix-agent 端服务器上,配置了一个 conf 文件
    C:\zabbix\zabbix_agentd.conf.d/login_3389.conf
UserParameter=login_check_3389,c:/test/login_3389_log.bat

结果,始终提示 Unsupported item key

测试 $ zabbix_get -s 192.168.0.123 -k log[c:/test/3389.log]

ZBX_NOTSUPPORTED: Accessible only as active check.
  1. 修改 zabbix_agent.conf
    修改 UnsafeUserParameters 内容为:“UnsafeUserParameters=1”
    修改了 Timeout=20 ,让他慢慢的去 get !哈哈哈!
    结果是枉然!啊啊啊~~~
  2. 回去阅读文档,才发现:

监控 log 文件 属于 zabbix缺省自带的一个项目,所以,无需再配置 zabbix-agent 端