Zabbix触发器表达式 - 最近X分钟内当前值的出现次数

时间:2018-01-11 11:28:43

标签: monitoring zabbix

我想编写一个Zabbix触发器,可以检测我的服务器何时从同一个远程客户端获取太多请求 - 比如简单的DOS攻击。

具体来说,我想检测远程客户端项目当前值的出现次数是否超过最后一分钟的定义阈值。 我尝试过这样的事情 {Server:nginx.access.remote.last()}

但我得错误说表达式不正确。我想它不接受表达式count作为函数{Server:nginx.access.remote.count(1m,X,eq)}>10000的参数。

所以最终,我的逻辑就是这个 DECLARE @COLS AS NVARCHAR(MAX) DECLARE @query AS NVARCHAR(MAX) SET @COLS=STUFF((select ',' + QUOTENAME(Course) from cst_coursedetails where programid=1 FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'),1,1,'') SET @query =' SELECT * FROM(SELECT B.COLLCODE, B.COLLNAME,C.Course AS COURSE,D.ROLLNAME, E.ExamType, COUNT (A.HTNO) AS PRECOUNT FROM TableOne AS A INNER JOIN TableTwo AS B ON A.COLLCODE=B.COLLCODE AND A.PROGRAMID=B.PROGRAMID INNER JOIN TableThreee AS C ON C.CourseId=A.CourseId INNER JOIN TableFour AS D ON D.ROLLID=A.ROLLID INNER JOIN CST_EXAMTYPE AS E ON E.ExamTypeId=A.ExamTypeId WHERE A.STATUSID !=17 AND a.ProgramId=1 AND A.ROLLID IN(1,2,3) AND A.EXAMTYPEID IN(1) GROUP BY B.COLLNAME,B.COLLCODE,C.Course,d.ROLLNAME ,E.ExamType )SRC PIVOT( SUM(PRECOUNT) FOR COURSE IN('+@COLS+') )AS PIV' 其中X应该是当前值,但我不知道如何将值放在表达式中。

我将不胜感激任何帮助和建议。感谢。

0 个答案:

没有答案