【问题标题】:Why zabbix do not show a value received from java code?为什么 zabbix 不显示从 java 代码接收到的值?
【发布时间】:2016-07-16 19:33:13
【问题描述】:

考虑一个java代码:

    String host = "zabbixHost";
    int port = 10051;
    ZabbixSender zabbixSender = new ZabbixSender(host, port);

    DataObject dataObject = new DataObject();
    dataObject.setHost("testHost");
    dataObject.setKey("test.ping.count");
    dataObject.setValue("10");
    // TimeUnit is SECONDS.
    dataObject.setClock(System.currentTimeMillis()/1000);
    SenderResult result = zabbixSender.send(dataObject);

    System.out.println("result:" + result);
    if (result.success()) {
        System.out.println("send success.");
    } else {
        System.err.println("sned fail!");
    }

结果是{"failed":0,"processed":1,"spentSeconds":0.001715,"total":1}

然后我通过zabbix_sender工具从命令行发送一个请求:

zabbix_sender -z zabbixHost -p 10051 -s testHost -k test.ping.count -o 8 -v

输出是:

info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.002052"
sent: 1; skipped: 0; total: 1

目前有 2 个值被发送到 Zabbix。但是当我看到test.ping.count 的监控图形时,只显示8 值。例如。即使响应成功,也没有收到来自 java 代码的值。

发生了什么事?这种情况如何解决?

注意

图书馆是-io.github.hengyunabc:zabbix-sender:0.0.3 Zabbix 版本是 3.0

【问题讨论】:

  • 您究竟在哪里以及如何检查这些值?如果是图表,如果切换到值(右上角),你会看到它吗?如果仍然没有,如果将时间段滚动条拖到最右边并单击“全部”进行时间段选择,是否会显示两个值?如果仍然没有,您是否在数据库中看到该项目的两个值?如果您在数据库中看到它们,则可能是 Zabbix 中的错误:support.zabbix.com/browse/ZBX-9236
  • 你能告诉或分享一个链接在哪里查看zabbix数据库连接设置吗?

标签: java zabbix


【解决方案1】:

问题出在时间戳上,版本为0.0.1 的zabbix-sender 设置请求(不是数据对象)时钟以毫秒为单位,而版本0.0.3 以秒为单位。所以使用正确的版本修复问题。

maven 示例 (source):

    <dependency>
        <groupId>io.github.hengyunabc</groupId>
        <artifactId>zabbix-sender</artifactId>
        <version>0.0.3</version>
    </dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2013-12-03
    • 1970-01-01
    • 2018-05-09
    • 2022-10-21
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多