zabbix-agnet扩展监控脚本多次调用失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix-agnet扩展监控脚本多次调用失败相关的知识,希望对你有一定的参考价值。

你好请教一下,我zabbix是2.4服务端,agent2.4版本用自定义脚本监控,启用agnet的 UnsafeUserParameters=1和UserParameter=ipmi.bmc[*],/etc/zabbix/zabbix_scripts/bmc.sh $1 $2 后可实现监控脚本内容的几项内容,,在服务器端用zabbix_get命令是可以获取数据的,但是发现如,只能监控到风扇转速的第一个,共计四个风扇,其他3个没有数据显示与图形界面,但是我在服务器端zabbix_get命令确可以获取其他风扇的转速,是不是有脚本调用次数限制那?(能否帮忙解决),我的解决想法是多配置几个脚本能否解决?UserParameter=XX参数在配置文件里能否多次使用?

参考技术A 1.修改zabbix server端的配置文件,启用AlertScriptsPath,使其支持脚本功能
1.编辑zabbix server端的配置文件,并重启服务
# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts

# /etc/init.d/zabbix_server restart

2.在服务端添加邮件报警的python脚本,并给脚本执行权限
邮件报警,并记录日志

# vim /usr/local/zabbix/alertscripts/zabbix_sendmail.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pdb
import smtplib
import string
import time
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
#pdb.set_trace()
#HOST = "mail.gw.com.cn"
def S_Mail():
HOST = "smtp.exmail.qq.com" #邮件服务器
SUBJECT = sys.argv[2].decode(‘utf-8‘).encode(‘gbk‘) #主题
TO =sys.argv[1] #收件邮箱
FROM = "admin@qq.cn"
text = sys.argv[3].decode(‘utf-8‘).encode(‘gbk‘) #发件内容
BODY = string.join((
"FROM: %s" % FROM,
"To: %s" % TO,
"Subject: %s" %SUBJECT,
"",
text
),"\r\n")
server = smtplib.SMTP()
server.connect(HOST,25)
#server.starttls()
server.login("发件邮箱","密码")
server.sendmail(FROM,[TO],BODY)
server.quit()
# email log 记录日志
with open(‘/data/logs/zabbix/Email.log‘, ‘a‘) as f:
date=time.strftime("%y-%m-%d %H:%M:%S")
str = date + " " + TO +" " + SUBJECT + "\r\n" + "\n"
str1 = str.decode(‘gbk‘).encode(‘utf-8‘)
# print("%s" %str1)
f.write(str1)
if __name__==‘__main__‘:
S_Mail()追问

你复制的这篇文章我看过,对我没有任何帮助!

Redis 多次调用 vs lua 脚本

【中文标题】Redis 多次调用 vs lua 脚本【英文标题】:Redis multiple calls vs lua script 【发布时间】:2021-10-27 02:00:14 【问题描述】:

我有以下用例。

用值设置键 如果密钥已经退出,则获取密钥,否则将其设置为过期。

基本上,我正在尝试用 nx 做一组并得到。这是我想出的lua脚本

local v = redis.call('GET', KEYS[1])
if v then
     return v
end
redis.call('SETEX', KEYS[1], ARGV[1], ARGV[2])"

与执行两个不同的单独命令先获取然后设置相比,我是否应该使用上述 Lua 脚本有点困惑。

使用 lua 脚本的任何优点或缺点。或者应该两个单独的命令更好。

【问题讨论】:

【参考方案1】:

是的,你应该使用脚本。

如果您使用两个单独的 Redis 命令,那么您最终会遇到竞争条件:另一个进程可能会在您的 GET 和您的 SETEX 之前设置值,从而导致您覆盖它。您的逻辑要求这个命令序列是原子的,而在 Redis 中做到这一点的最佳方法是使用 Lua 脚本。

可以通过使用MULTIWATCH 在不使用脚本的情况下实现此目的,但Lua 脚本要简单得多。

【讨论】:

还有 Lua 脚本,可以节省往返时间。 Lua 目前为 +1,因为它必须是一个原子过程。寻找 Redis 7,它将通过使用 NXGET args 的单个 SET 命令解决它。

以上是关于zabbix-agnet扩展监控脚本多次调用失败的主要内容,如果未能解决你的问题,请参考以下文章

多次登录失败尝试的操作 - 验证码

在地理围栏中多次调用区域监控方法

监控Tomcat状态

在多次运行说“无法建立连接”或“连接()超时”后,CURL 失败

Zabbix监控——Zabbix自定义用户参数制作监控项

layui 监听多次提交