【问题标题】:Monitoring concurrent user in Zabbix在 Zabbix 中监控并发用户
【发布时间】:2013-05-01 06:48:31
【问题描述】:

假设我现在想使用 Zabbix http://www.zabbix.com/ 在我们的生产服务器中监控并发用户数。谁能让我知道我该怎么做?服务器是用 java 编写的。

【问题讨论】:

    标签: java sysadmin zabbix


    【解决方案1】:

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

    您也许可以使用标准的 zabbix 检查之一,但很可能您必须配置在您的服务器上运行的 zabbix 代理来监控自定义用户参数:https://www.zabbix.com/documentation/1.8/manual/config/user_parameters


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

    据说zabbix agent是在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 Agent”类型项目之后。它需要两个参数:要获取的 json 的地址和要提取的变量的名称。我正在测试以下示例:

    "usercount":30
    

    如果您的 json 格式不同,您可能需要更改正则表达式。

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

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

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

    【讨论】:

    • 是的,服务器提供http api,返回包含数字的json有效载荷。现在你能告诉我如何获取解析的号码并将其发送到 zabbix 吗?我对 zabbix 很陌生,所以任何帮助都将不胜感激
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多