为什么zabbix不显示从java代码收到的值?

时间:2016-07-16 19:33:13

标签: java zabbix

考虑一下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

1 个答案:

答案 0 :(得分:1)

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

maven示例(source):

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