Главная

Friday, 17 January 2020

Not Supported метрика в Zabbix.

Всем привет.

При работе в Zabbix для метрики(item) можно легко получить статус "Unsupported item key." Самое простое объяснение это когда я ошибаюсь с типом метрики - ее значение текстовое, а я выставил число. И наоборот. Но бывают и варианты.

Вариант 1.
Решил я промониторить температуру ЦП через внешнюю команду в агенте Zabbix:
UserParameter=Temperature.CPU[*], C:\Zabbix\CPUtemp.bat

CPUtemp.bat:
for /F "usebackq tokens=7-10" %%a in (`D:\Toolkit\OpenHardwareMonitor\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/intelcpu/0/load/0">nul && set temper0=%%a
echo %temper0%

Ручной контроль параметра:
c:\zabbix\zabbix_agentd.exe --config c:\zabbix\zabbix_agentd.win.conf --print | findstr Temperature

Однако вчера я обратил внимание, что при запуске батника из командной строки, вывод данных происходит с приличной задержкой в 3-5 секунд. В Zabbix по-умолчанию стоит параметр, по которому агент ожидает ответа от скрипта 3 секунды и на сервере есть подобный параметр, по которому сервер ждет ответа от агента 3 секунды. Если за это время данные не поступают, то Item переходит в статус "Not Supported" и данные с него не собираются.

Чтобы избавиться от этой ошибки, необходимо увеличить таймаут не менее 15-ти секунд. Меняем параметр в конфиге на клиентах и на сервере. У меня он и там и там один и тот же, на максимум:
Timeout=30


И 2-й вариант.
Для тех кто столкнулся с похожей ошибкой при работе с параметром:
Temperature [m|ZBX_NOTSUPPORTED] [Unsupported item key.]
совет будет другим.

Найдите в конфиге агента параметр "UnsafeUserParameters", он обычно закоментирован и по дефолту равен 0. Уберите знак комментария и установите ему значение 1:
UnsafeUserParameters=1

Это потому что символы \ ‘ » ` * ? [ ] { } ~ $ ! & ; ( ) | # @ изначально не позволены в «UserParameter», а значение "1" снимет это ограничение.

Возможно будут еще варианты.
Успехов.

2 comments:

  1. Поправили тип, переключение с "Not supported" на "Disable", далее на "Enable", но видим "Not supported". Ничего не трогаем, просто ждем минуту или две.

    ReplyDelete
  2. Скорее всего в Timeout=30 смысла нет. Максимум на 15.

    ReplyDelete

А что вы думаете по этому поводу?