На 6 серверах стоит один и тот же zabbix_agentd и одинаковая версия Windows Server 2003. На 5 серверах zabbix нормально видит аптайм системы, а на 6-ом выводиться ошибка - "Not supported by zabbix agent". Элемент данных один и тот же для всех 6-ти серверов. В чем может быть проблема?
Ad Widget
Collapse
W2k3 System.uptime Not supported by Zabbix Agent
Collapse
X
-
Настоятельно рекомендую сделать так:
Я так только что выявил старый агент.Code:root@zabbix:~# [B]for host in `cat serverlist.txt`; do \ echo -ne "$host\t$(zabbix_get -s $host -k agent.version)\t"; \ zabbix_get -s $host -k 'system.uptime'; \ done[/B] host1 1.8.3 16163189 host2 1.8.3 1879151 host3 1.8.3 5267500 host4 1.8.3 1207752 host5 1.4.4 2395995.310026
-
Comment
-
А где взять Zabbix Agent 1.8.4 для Win? Может я чего-то путаю, но на странице скачиваний есть вроде только 1.8.3. Или его можно из исходников для винды собрать? Если да, то не затруднит ли объяснить как? Спасибо.Comment
-
Скачайте архив с исходниками (ссылка о оф. страницы загрузки) и в нем в папке bin вы найдете свежие скомпилированные бинарники.
Потом просто подмените исполняемые файлы.Comment
-
Спасибо, обновил Zabbix Agent, но по прежнему не может получить system.uptime :/Скачайте архив с исходниками (ссылка о оф. страницы загрузки) и в нем в папке bin вы найдете свежие скомпилированные бинарники.
Потом просто подмените исполняемые файлы.
SysLog ~ $ zabbix_get -s 192.168.2.23 -k agent.version
1.8.4
SysLog ~ $ zabbix_get -s 192.168.2.23 -k system.uptime
ZBX_NOTSUPPORTED
SysLog ~ $Comment
-
Весьма странно, а как у вас с счетчиками производительности на именно этом сервере? Работают? Проверьте что либо.
Тут недавно на форуме проскакивал момент что в человека вообще счетчики не работали по какой то причине. Исправилось тем что какие то отсутствовавшие системные файлы были взяты из другой машины.
Я не программист, но беглый осмотр исходного кода (\src\libs\zbxsysinfo\win32\uptime.c):
говорит что вроди эта функция работает именно через счетчики производительности.Code:int SYSTEM_UPTIME(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) { char counter_path[64]; zbx_snprintf(counter_path, sizeof(counter_path), "\\%d\\%d", PCI_SYSTEM, PCI_SYSTEM_UP_TIME); if (SYSINFO_RET_FAIL == PERF_MONITOR(cmd, counter_path, flags, result)) return SYSINFO_RET_FAIL; /* result must be integer to correctly interpret it in frontend (uptime) */ if (!GET_UI64_RESULT(result)) return SYSINFO_RET_FAIL; UNSET_RESULT_EXCLUDING(result, AR_UINT64); return SYSINFO_RET_OK; }
Может покопаетесь в этом направлении?
Имейте ввиду - я могу и ошибаться
Comment

Comment