Java 在Zabbix中监视并发用户

Java 在Zabbix中监视并发用户,java,sysadmin,zabbix,Java,Sysadmin,Zabbix,假设我现在想使用Zabbix监控生产服务器中并发用户的数量。有人能告诉我怎么做吗?服务器是用java编写的。要回答的第一个问题是:如何查询服务器上的用户数?这是你可以从某个日志文件中找到的东西吗?或者您的“用java编写的服务器”允许以某种标准化的方式(即通过http)查询用户数 您可能可以使用标准的zabbix检查之一,但很可能必须配置在服务器上运行的zabbix代理来监视自定义用户参数: 所以,所需的值应该通过http从json中解析出来。从2.2版开始,您可以使用web.page.reg

假设我现在想使用Zabbix监控生产服务器中并发用户的数量。有人能告诉我怎么做吗?服务器是用java编写的。

要回答的第一个问题是:如何查询服务器上的用户数?这是你可以从某个日志文件中找到的东西吗?或者您的“用java编写的服务器”允许以某种标准化的方式(即通过http)查询用户数

您可能可以使用标准的zabbix检查之一,但很可能必须配置在服务器上运行的zabbix代理来监视自定义用户参数:


所以,所需的值应该通过http从json中解析出来。从2.2版开始,您可以使用web.page.regexp[]来完成此操作,但由于它还没有准备好生产,您必须坚持使用自定义用户项

据说zabbix代理正在linux上运行。打开zabbix_agentd.conf并添加以下行:

UserParameter=json.query[*], value=$(curl -s $1 | grep -Eo "\"$2\":(\w*)"| cut -d: -f2); if [ -z "$value" ]; then echo "not found"; else echo $value; fi
重新启动代理。在此新用户参数之后,json.query将作为“Zabbix代理”类型的项在此服务器上可用。它需要两个参数:获取json的地址和提取变量的名称。我对以下样本进行了测试:

"usercount":30
如果json的格式不同,则可能需要修改正则表达式

现在需要添加新的zabbix项:配置/Hosts/Items-Create项

Description: Concurrent user count
Type: Zabbix Agent
Key: json.query[myserver.com/status.json,usercount]
Data Type: numeric

就这样。现在监控用户计数,您可以在zabbix触发器中以通常的方式引用它。

是的,服务器提供http api,返回包含该数字的json负载。现在你能告诉我如何解析这个号码并将其发送给zabbix吗?我对zabbix很陌生,所以任何帮助都将不胜感激