Zabbuino - маленькое устройство для большого мониторинга.

sadman41
Онлайн
Зарегистрирован: 19.10.2016
Я давно почитываю этот форум и, порой, заимствую полезные решения для своих разработок. 
 
Но, как мне кажется, только брать - это неправильно, поэтому решил поделиться своим. Наверняка каждый уже в той или иной мере реализовывал то, что я хочу предложить. Но, быть может, кто-то еще не успел и воспользуется Zabbuino.
 
Что же это такое... Вариация "Умного дома"? Нет. Автономное устройство? Снова нет. Метеостанция? Ну, может быть.
 
Zabbuino - программная составляющая миниатюрного агента системы мониторинга Zabbix. Возможно вы слышали о ней или, даже, уже используете. Впрочем, вышло так, что кроме Zabbix вы можете использовать Cacti, RRDTool и любые другие - достаточно того, чтобы они умели принимать значение метрики, передаваемое простым текстом, из STDIO или TCP-сокета. 
 
Концептуально Zabbuino не требует предконфигурирования подключаемой перефирии на уровне прошивки. Логическая привязка датчиков к выводам Arduino, которая используется в качестве аппаратной части, осуществляется на стороне системы мониторинга, а точнее - в самом запросе. Первичные схемы подключения перефирийных устройств совершенно стандартные - прямиком из уроков по Arduino.
 
Логичен вопрос - что позволяет делать такой агент, куда его примотать? Ответ таков Zabbuino - это "гейт в мир физических процессов" для системы мониторинга.  С его помощью Zabbix может понять, что в помещении упала температура, течет крыша или пропало напряжение на сегменте силовой сети. На основании этих данных система может принять решение и послать агенту команду на включение тревожного маячка, или отображении факта произошедшего события на мини-дисплее,  подключенному к другому мини-агенту и находящемуся на столе удаленного оператора.
 
Впрочем, можно и без усложнения себе жизни мерять температуру воды в аквариуме, атмосферное давление или качество линии электропитания, отображая это на графиках.
 
И напоследок - картинки:
 
Характеристики электрической сети с Peacefair PZEM-004

Характеристики электрической сети с Peacefair PZEM-004

Информация с датчика BME280

Информация с датчика BME280

Костыли и нечестный код сложены тут (извините, но я слышал, что 300кб исходников постить на форум кто-то запретил): https://github.com/zbx-sadman/Zabbuino
 
Более подробная документация: https://github.com/zbx-sadman/Zabbuino/wiki
 
Если возникли вопросы - задавайте. Не обещаю, что смогу ответить на все, но постараюсь.
 
sadman41
Онлайн
Зарегистрирован: 19.10.2016

[Надеюсь что второй пост можно будет редактировать и использовать для уточнения технической информации]

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

sadman41 пишет:

[Надеюсь что второй пост можно будет редактировать и использовать для уточнения технической информации]

я запретил - только третий.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

sadman41 пишет:

я слышал, 300кб исходников постить на форум кто-то запретил):

и, правильно сделал - накуя на форуме постить исходники гитхаба?

Artemiy
Offline
Зарегистрирован: 20.10.2014

А по теме так никто и не отписался.

Автор, если ты сам все это замутил, то жму руку.

Я Заббикс крутил лет пять назад. Но без ардуино (тогда и не знал о таком) не вкурил в неё. Понял, что система мониторинга, сбор данных. Но что, откуда - осталось загадкой. Сейчас же видя все эти "костыли" всё становится понятней.

Вопрос сразу по делу: команды отправляются с сервера заббикса? Что есть в данном случае 192.168.0.1?

И чем сами графики строятся? Штатными средствами Zabbix'а?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Artemiy пишет:
Вопрос сразу по делу: команды отправляются с сервера заббикса? Что есть в данном случае 192.168.0.1?

И чем сами графики строятся? Штатными средствами Zabbix'а?

Применительно к Zabbix

На сервере Zabbix создается "учетная" запись узла. На эту запись навешиваются элементы данных. В каждый активированный элемент данных начинают поступать значения метрик, которые Zabbix-сервер запрашивает у агента через определенные периоды. На базе этих полученных значений Zabbix может генерировать события. Ну и, естественно, отрисовывать графики - час-день-неделя-год-пять (за то время, в течении которого проводились опросы). 

Т.е., например, к Zabbuino прицеплен DS18B20 (пин D4). В Zabbix создается узел с адресом 192.168.0.1. К этой "учетной" записи присоздается элемент данных с ключом DS18x20.temperature[4,9,0x284AE0D4010000DA]. С этого момента каждые N секунд (минут, часов) Zabbix начинает теребить агента: "У тебя там, на 4-м пине, висит термометр с ID=0x284AE0D4010000DA. Спроси у него текущую температуру с разрешением в 9 бит". Агент отвечает значением температуры или кодом ошибки, Zabbix записывает полученное к себе в БД. Если к этому элементу данных привязаны триггеры, то при превышении температуры выше какого-то порога (гистерезис настраивается тоже) или отрыве датчика, генерируется событие, которое приводит к определяемому действию - отсылке e-mail, sms, команды агенту щелкнуть релюшкой или нарисовать что-то на Character LCD. Все полученные за время опросов данные доступны к отображению в виде одиночных, групповых и прочих графиков в Web-интерфейсе Zabbix (штатное средство).

Но точно так же можно запрашивать метрики в shell-скрипте и подавать их на вход RRDUpdate, что позволяет хранить данные и отрисовывать графики без применения тяжеловесных систем мониторинга.

Адрес задаваемый в Zabbuino - это адрес агента, по которому к нему будет обращаться Zabbix-server. Активный режим работы агента (когда он шлёт данные самостоятельно, выяснив, какие элементы данных привязаны к его учетке на Zabbix-серевере) на данный момент не реализован.

foreman
Offline
Зарегистрирован: 29.03.2017
1
dodther
Offline
Зарегистрирован: 30.11.2018

Решил попробовать Zabbuino. Зашил версию 1.2.1.  Через zabbix_get опрашиваю PZEM, а в ответ приходит -135.

Запрос zabbix_get -s 192.168.10.11 -k "PZEM004.voltage[4,5,0xC0A80101]"

Надо как-то отдельно настраивать пины 4 и 5?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Нет, не надо. Либо пины наоборот указали, либо адрес не сопадает. Ну, или счетчик просто не отвечает (хардварная проблема). -135 - это таймаут соединения.

dodther
Offline
Зарегистрирован: 30.11.2018

sadman41 пишет:

-135 - это таймаут соединения.

Ага! Проверил состояние A4, A5, а там высокий уровень. А эти ноги у меня отвечают за отключение питание на PZEM и нажатие кнопку сброса. Сбросил заработало.

ratman
Offline
Зарегистрирован: 11.10.2015

Простите, что-то не понял, пинаю с сервера:

[zopukh@Z-CentOS ~]$ sudo zabbix_get -s 192.168.12.12 -k agent.ping
sudo: zabbix_get: command not found

Что я не доделал? Zabbix клиента на сервер нужно вешать или?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Установить zabbix_get (не знаю, зачем он в отдельный пакет засовывается): https://www.zabbix.com/forum/zabbix-help/44447-zabbix_get-error?p=260816...

ratman
Offline
Зарегистрирован: 11.10.2015

Огромное спасибо! (ну ни фига, оперативность ;))

ratman
Offline
Зарегистрирован: 11.10.2015

Всё равно не работает:

[zopukh@Z-CentOS ~]$ zabbix_get -s 192.168.12.12 -k agent.ping
zabbix_get [1987]: Get value error: ZBX_TCP_READ() failed: [104] Connection reset by peer
zabbix_get [1987]: Check access restrictions in Zabbix agent configuration

Проверьте логику, пожалуйста, а то уже не варит:


#include "ESP8266WiFi.h"                                // Подключаем библиотеку ESP8266WiFi
#include "DHT.h"                                        // Подключаем библиотеку DHT

const char* ssid = "zopukh@home";                       // Название Вашей WiFi сети
const char* password = "zn3GXAj41T";                    // Пароль от Вашей WiFi сети

IPAddress ip(192, 168, 12, 12);
IPAddress gateway(192, 168, 12, 1);
IPAddress subnet(255, 255, 255, 0);

String readString = String(20);
// byte addr[8];

#define DHTPIN 2                                        // Пин к которому подключен датчик
#define DHTTYPE DHT11                                   // Используемый датчик DHT 11
// #define DHTTYPE DHT21
// #define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);                               // Инициализируем датчик
WiFiServer server(10050);                               // Указываем порт Web-сервера


void setup() {
  Serial.begin(115200);                                 // Скорость передачи 115200
  delay(10);                                            // Пауза 10 мкс
  dht.begin();                                          // Инициализация DHT

  Serial.println("");                                   // Печать пустой строки
  Serial.print("Connecting to ");                       // Печать "Подключение к:"
  Serial.println(ssid);                                 // Печать "Название Вашей WiFi сети"

  WiFi.begin(ssid, password);                           // Подключение к WiFi Сети
  WiFi.config(ip, gateway, subnet);

  while (WiFi.status() != WL_CONNECTED) {               // Проверка подключения к WiFi сети
    delay(500);                                         // Пауза 500 мкс
    Serial.print(".");                                  // Печать "."
  }
  Serial.println("");                                   // Печать пустой строки
  Serial.println("WiFi connected");                     // Печать "Подключение к WiFi сети осуществлено"
  server.begin();                                       // Запуск Web сервера
  Serial.println("Web server running.");                // Печать "Веб-сервер запущен"
  delay(5000);                                          // Пауза 5 000 мкс
  Serial.println(WiFi.localIP());                       // Печатаем полученный IP-адрес ESP
}


void loop() {

  char c = '\0';
  float temp = 0;
  float hum = 0;


  if (WiFiClient client = server.available()) {               // Получаем данные, посылаемые клиентом

    if (client) {
      Serial.println("New client");                       // Отправка "Новый клиент"

      while (client.connected()) {
        if (client.available()) {
          c = client.read();
          if (c == '\n') {  // end of query from zabbix server
            temp = dht.readTemperature();
            hum = dht.readHumidity();

            client.print("ZBXD\x01"); // response header
            if (readString == "agent.ping") {
              byte responseBytes [] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, '1'};
              client.write(responseBytes, 9);
            } else if (readString == "env.temp") {
              byte responseBytes [] = {(byte) String(temp).length(), 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
              client.write(responseBytes, 8);
              client.print(temp);
            } else if (readString == "env.hum") {
              byte responseBytes [] = {(byte) String(hum).length(), 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
              client.write(responseBytes, 8);
              client.print(hum);
            }
            else {
              byte responseBytes [] = {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
              client.write(responseBytes, 8);
              client.print("ZBX_NOTSUPPORTED");
            }
            break;
          }
          else if (readString.length() < 20) {
            readString = readString + c;
          }
        }
      }
      client.stop();                                      // Закрытие соединения
      Serial.println("Client disconnected.");             // Печать "Клиент отключен"
    }
  }
}

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Ну, это вопрос уже не по моему прожекту, а по вашему самописному. Хотите, чтобы я за его отладку сел?

ratman
Offline
Зарегистрирован: 11.10.2015

Даже вот так вот:

[zopukh@Z-CentOS ~]$ zabbix_get -s 192.168.12.12 -k bla-blah
zabbix_get [2048]: Timeout while executing operation
[zopukh@Z-CentOS ~]$ zabbix_get -s 192.168.12.12 -k env.temp
zabbix_get [2052]: Timeout while executing operation
[zopukh@Z-CentOS ~]$ zabbix_get -s 192.168.12.12 -k agent.ping
zabbix_get [2053]: Get value error: ZBX_TCP_READ() failed: [104] Connection reset by peer
zabbix_get [2053]: Check access restrictions in Zabbix agent configuration

в общем, не знаю я уже...

ratman
Offline
Зарегистрирован: 11.10.2015

Нет, конечно. Тем более, у вас на ethernet, у меня на wifi...

ratman
Offline
Зарегистрирован: 11.10.2015

Да и какой он самописный, два обрывка криво скочем склеил. Просто не пойму, почему три комманды, которые в одной цепочке ифов дают разный результат. Две падают по таймауту, третья сбрасывает соединение. Ладно, завтра ковырять буду.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Из явных проблем я вижу, что readString нигде не обнуляется, только конкатенируется. Вот и выходит у вас, что на каждом коннекте к старому ключу добавляется новый. Что при этом даст сравнение?

ratman
Offline
Зарегистрирован: 11.10.2015

Короче, не обращайте на мою чуш внимания, это всё переписывть с нуля надо. Проще, чем исправлять.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

А вам это зачем вообще - хотите Zabbix-агента в беспроводной сети сделать?

ratman
Offline
Зарегистрирован: 11.10.2015

Беспроводной контроль температуры в цехе. До 10, скажем точек.

Но я уже отказываюсь от этой идеи, из 5 штук ESP-01 стабильно работает (просто пингуется) только одна. Надо что-то другое городить.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Поэтому я и не портирую Zabbuino на ESP. Визгу много, шерсти мало.
Сейчас у меня есть проект на CAN-шине (одна пара) - как раз для производственных условий. Все метрики пушатся на Zabbix.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

dupe

ratman
Offline
Зарегистрирован: 11.10.2015

Так если проводами, то можно и гирлянду ds1820 на "няньку" повесить и будет она через w5100 всё это добро лить. Идея-то была именно по wifi.

Не, раз одна живая есть, надо хоть ради прикола сделать.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Выбор за вами, безусловно. При озвученном выборе я бы вешал гирлянду, если есть возможность.

ratman
Offline
Зарегистрирован: 11.10.2015

Возьни с проводами много. У меня 50 АРМ по всему зданию разбросано. Рабочие зоны, а это две трети, в нонстопе. Проще тогда уж переходники на ch340 и ds18b20. Вот эту мысль точно нужно продумать.

ratman
Offline
Зарегистрирован: 11.10.2015

Можете меня поздравить. ESP8266-01 с Zabbix'ом таки работает. Правда пока в наколенно-тестовом режиме, но данные отдаёт, они видны, графички есть, красота, короче.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Добро пожаловать на борт. Советую при работе в режиме траппера сразу подвесить триггер на nodata(), в противном случае отрыв агента может быть незаметен на графике.

ratman
Offline
Зарегистрирован: 11.10.2015

sadman41 пишет:

Добро пожаловать на борт. Советую при работе в режиме траппера сразу подвесить триггер на nodata(), в противном случае отрыв агента может быть незаметен на графике.

Спасибо, я на радостях совсем об этом забыл.

Есть байка, что сервисным инженерам Cisco после сдачи сертификационных экзаменов назначается пенсия. За моральный ущерб. За настройку Zabbix'а, полагаю, должно быть что-то подобное положено. ;) Ладно, хоть конструктор триггеров есть.

sysel2912
Offline
Зарегистрирован: 02.07.2019

Добрый день!

А более по подробно можно?

Схема подключения?

Скетч?

Спасибо.

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

В первопосте две ссылки: на исходник и на подробную документацию. 

sysel2912
Offline
Зарегистрирован: 02.07.2019

Извеняюсь,может,за столь тупые вопросы.

Но с Arduino работаю недавно.

Интересует следующие:

Когда заливаешь на Ардуино zabbuino.ino , показывает ошибку exit status 1, а в описании скетча zabbuino.ino  указано что нужно обратится к cfg_basic.h

Что нужно делать с этим файлом(cfg_basic.h)?

Его нужно где то прописать?

у меня Adruino UNO и arduino ethernet shield w5100.

И подключен температурный датчик ds18b20.

Спасибо.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Как Вы исходники с GitHub к себе забрали - через зеленую кнопку "Clone or download"?

sysel2912
Offline
Зарегистрирован: 02.07.2019

Да,скачал.Открыл Ardiuno IDE.

Файл-->Открыть-->zabbuino.ino

При компеляции выдает:

Arduino: 1.8.5 (Windows 10), Плата:"Arduino/Genuino Uno"

C:\Users\admin\Downloads\zabbuino-master\zabbuino-master\zabbuino\zabbuino.ino:16:28: fatal error: src/dispatcher.h: No such file or directory

 #include "src/dispatcher.h"

                            ^

compilation terminated.

exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

То есть,мне нужно добавить библиотеку src/dispatcher.h?

Правильно понимаю?

Спасибо.

 

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Всё понятно. Сразу, после распаковки архива, переименуйте каталог zabbuino-master в zabbuino. После всё должно быть OK. Это всё проделки гитхаба.

sysel2912
Offline
Зарегистрирован: 02.07.2019

Спасибо тебе,добрый человек!!!

Залил в ардуино скетч, все нормально!

Импортировал все шаблоны в zabbix.

Но там не оказалось именно шаблона для DS18B20.

Или этот параметр включается отдельно в файле cfg_basic.h?

#define FEATURE_OW_ENABLE

/*/
  /=/     Enable Dallas DS18x20 sensors handling and command:
  /=/       - DS18x20.Temperature[]
  /*/

#define FEATURE_DS18X20_ENABLE

/****       I2C bus        ****/

/*/
  /=/     Enable I2C processing and commands:
  /=/       - I2C.Scan[];
  /=/       - I2C.Write[];
  /=/       - I2C.Read[];
  /=/       - I2C.BitWrite[];
  /=/       - I2C.BitRead[]
  /=/
  /*/

Так же ,где в самом скетче прописано с какого пина читать данные с датчика ds18b20?

Сейчас датчик подключен к ардуино следующим способом:

+5 - vdd

End - End

8 pin -- Data

Интуитивно думаю что меняется вот тут --> uint8_t dsAddr[8];

То есть,8 это номер пина на ардуино?

#ifdef FEATURE_DS18X20_ENABLE
    case CMD_DS18X20_TEMPERATURE:
      //
      //  DS18x20.temperature[pin, resolution, id]
      //
      if (!isSafePin(argv[0])) {
        goto finish;
      }

      uint8_t dsAddr[8];
      dsAddr[0] = 0;
      // Convert sensor ID (if its given) from HEX string to byte array (DeviceAddress structure) and validate (sub not finished) it.
      // Sensor ID is equal DeviceAddress.
      // if convertation not successfull or ID not valid - return DEVICE_ERROR_WRONG_ID
      if (('\0' != *optarg[2]) && (8 != hstoba(dsAddr, optarg[2]))) {
        rc = DEVICE_ERROR_WRONG_ID;
      } else {
        rc = getDS18X20Metric(argv[0], argv[1], dsAddr, payload);
      }
      goto finish;
#endif // FEATURE_DS18X20_ENABLE

 

Спасибо тебе за консультацию!

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Шаблоны для DS-ки делать бессмысленно. Просто создайте в хосте новый айтем c ключом, описанным в мануале (искать по DS18x20.Temperature). Исходники править не требуется.

sysel2912
Offline
Зарегистрирован: 02.07.2019

Это я уже понял.

Делать через zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[2,9,0x284bd6d4010000f5]"

Не могу понять где мне нужно прописать в программе //  DS18x20.temperature[pin, resolution, id]

Он же должен где то прописываться, что бы Ардуино понимал с какого пина ему считывать данные.

И при запросе с командной строки zabbix_get -s 192.168.0.1 -k "DS18x20.Temperature[2,9,0x284bd6d4010000f5]" не выдает температуру.

Уже не знаю куда мне копать!

C zabbix пингую Arduino.

 Посылаю запрос,а ответа с температрного датчика нет((((((

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Вы в мануале нашли раздел "Датчики окружающей среды"? Что там написано сразу под "DS18x20.temperature[pin, resolution, id]" ?

sysel2912
Offline
Зарегистрирован: 02.07.2019

С этим рахобрался.

Почему теперь не корректно опрашивает температру.

[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k agent.ping
1
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k env.temp
ZBX_NOTSUPPORTED
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[2,9,0х28A1BE79978365]"
-136
[root@zabbix ~]#
Все подключено верно.
Если проверять температуру обыкновенным скетчем, то все ок:
ROM = 28A1BE79978365
  Chip = DS18B20
  Data = 1 97 1 55 5 7F A5 A5 66 64  CRC=64
  Temperature = 25.44 Celsius, 77.79 Fahrenheit
 

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Почему Вы указываете пин #2, если датчик на восьмом?

sysel2912
Offline
Зарегистрирован: 02.07.2019

Сейчас датьчик подключен на 2 пин.

и вот что получается:

[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[0,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[1,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[2,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[3,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[4,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[5,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[6,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[7,9,0x28A1BE79978365]"
-136
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[8,9,0x28A1BE79978365]"
0
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[9,9,0x28A1BE79978365]"
0
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[10,9,0x28A1BE79978365]"
0
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[11,9,0x28A1BE79978365]"
0
[root@zabbix ~]#
 
sadman41
Онлайн
Зарегистрирован: 19.10.2016

Ну, сделайте ow.scan[2]

sysel2912
Offline
Зарегистрирован: 02.07.2019
[root@zabbix ~]# zabbix_get -s 192.168.0.227 -k "OW.scan[2]"
zabbix_get [22835]: Warning: Message from 192.168.0.227 is longer than expected 19 bytes. Message ignored.
zabbix_get [22835]: Get value error:
zabbix_get [22835]: Check access restrictions in Zabbix agent configuration
 
Такую ошибку сыпит по всем портам(От 0 до 8) 
sadman41
Онлайн
Зарегистрирован: 19.10.2016

Ну, это может быть, конечно. Zabbix v4 мне всю лысину проел уже - "сделали удобненько", сломав совместимость с ранними версиями. Наверное не все баги вытестировал ещё.

В крайнем случае можно id вообще не писать - первый ответивший на шине термометр должен сдать температуру.

sysel2912
Offline
Зарегистрирован: 02.07.2019

да,у меня стоит 4.0.

То есть это не у меня руки кривые)))))

Что не могу подключить датчик))))

То есть,если будет Zabbix 3.0 то все будет работать?

Правильно я Вас понял?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Насчёт рук - не знаю, но сам я всё ещё на v2.4 и v3.4 сижу, там ключ plain text-ом заходит и с ним проблем нет. А в v4 устроили Холокост - plain text не поддерживается вовсе, нужно бинарный пакет формировать. А так, как прожект никто не финансирует, полное покрытие тестами на все существующие версии мне устраивать не сильно интересно. В целом я попроверял отдельные ключи - работало с zabbix_get от v4. А этот, видать, пропустил...

Ну, чтобы убедится в этом точно, можно дёрнуть zabbix_get с репы для 3.x и проделать тот же фокус, что и прежде. Можно даже из под винды, чтобы с пакетами не мучаться.

 

sysel2912
Offline
Зарегистрирован: 02.07.2019

У меня где то валяется  Zabbix 3.0.

Завтра попробую на нем все проделать,что сегодня делал с Вами.

Как поробую,отпишусь!

Надеюсь что все заработает))))

Спасибо Вам за помощь!

sysel2912
Offline
Зарегистрирован: 02.07.2019

Вообщем УРА)))

С Zabbix 3.4 все заработало!

[root@zabbix-3 ~]#  zabbix_get -s 192.168.0.227 -k "DS18x20.Temperature[2,9,0x28A1BE7997080365]"
24.0
Но созадаю,
группа элементов - DS18B20
Элементы данныз вот с таким ключем : DS18x20.Temperature[2,9,0x28A1BE7997080365]
и не отображаются данные((((
Может ключ не правильно задал(
 
sadman41
Онлайн
Зарегистрирован: 19.10.2016

Может тип данных в айтеме должен быть float?