Задать вопрос
@SA_kr

Ошибка zabbix Get value from agent failed: ZBX_TCP_READ() timed out?

Доброго дня. Пытаюсь подключить zabbix агента windows 10
кусок лога агента:
лог zabbix agent
9440:20210725:193728.919 In collect_perfstat()
9440:20210725:193728.929 End of collect_perfstat()
9440:20210725:193729.946 In collect_perfstat()
9440:20210725:193729.951 End of collect_perfstat()
9440:20210725:193730.955 In collect_perfstat()
9440:20210725:193730.960 End of collect_perfstat()
7752:20210725:193731.635 execute_str() command:' C:\OpenHardwareMonitorReport\TemperatureCPU.bat' len:2 cmd_result:'36'
7752:20210725:193731.636 Sending back [36]
9440:20210725:193731.975 In collect_perfstat()
9440:20210725:193731.977 End of collect_perfstat()
9440:20210725:193732.979 In collect_perfstat()
9440:20210725:193732.981 End of collect_perfstat()
9440:20210725:193733.985 In collect_perfstat()
9440:20210725:193733.987 End of collect_perfstat()
вызов получается успешный.
Вырезка с лога сервера zabbix (получал данные через запрос!!!):
Лог сервера zabbix
975:20210725:133930.837 trapper got '{"request":"item.test","data":{"type":"0","proxy_hostid":"0","key":"Temperature.CPU","interface":{"address":"192.168.*.*","port":"10050","type":0}},"sid":"017a5544d64164658cfc79995e8ec5d0"}'
975:20210725:133930.839 In get_value_agent() host:'' addr:'192.168.*.*' key:'Temperature.CPU' conn:'unencrypted'


что делать с этой ошибкой? In get_value_agent() host:'' addr:'192.168.*.*' key:'Temperature.CPU' conn:'unencrypted'
agent.conf
# This is a configuration file for Zabbix agent service (Windows)

LogFile=C:\Program Files\Zabbix Agent\zabbix_agentd.log

DebugLevel=4

Server=192.168.*.*

Hostname=IT

# TLSConnect=unencrypted
# TLSAccept=unencrypted
UserParameter=Temperature.CPU, C:\OpenHardwareMonitorReport\TemperatureCPU.bat


# TLSConnect=unencrypted
# TLSAccept=unencrypted
Пробовал раскоментить - не помогает. Может чего настроить на самом серваке надо? Последний раз на 5 версии всё норм работало ( в другом месте).
telnet в обе стороны ОК, agent 5.4.3, ubuntu 20 на серваке
  • Вопрос задан
  • 7099 просмотров
Подписаться 2 Средний 4 комментария
Решения вопроса 1
@nekit0d
в настройка
zabbix_agentd.conf
zabbix_server.conf
параметр
### Option: Timeout
# Spend no more than Timeout seconds on processing
#
# Mandatory: no
# Range: 1-30
# Default:
# Timeout=3

Timeout=30
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Invyl
@Invyl
Пытался я завести в заббиксе (правда агент у меня на линуксе, а не на винде) связку system.run + python скрипт с Selenium WebDriver (firefox geckodriver в моём случае), и тоже получал ошибку ZBX_TCP_READ() timed out. Причём у меня при выполнении python-скрипта через терминал за пользователя root скрипт выполнялся успешно.
Оказалось, что дело вовсе не в настройках таймаута заббикса, а в реальном таймауте выполнения скрипта.

Для диагностики я попробовал запустить мой скрипт через терминал после переключения на юзера заббикса. Переключил пользователя командой
sudo -u zabbix /bin/bash
либо
su zabbix -c /bin/bash (если бы первая не сработала).

Выполнил скрипт и увидел, что за пользователя zabbix скрипт действительно выполняется очень долго, но не бесконечно - в конце концов он завершался ошибкой selenium.common.exceptions.TimeoutException: Message: Failed to read marionette port.

Погуглил я эту ошибку и нашёл решение:
Выполняем cat /etc/passwd
Находим строку с упоминанием заббикса вида zabbix:x:997:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
Из неё берём путь домашней директории заббикса (в данном случае /var/lib/zabbix), пытаемся перейти в неё и видим, что такой директории нет. Надо создать её и директории веб-драйвера Firefox:
mkdir /var/lib/zabbix
mkdir /var/lib/zabbix/.mozilla
mkdir /var/lib/zabbix/.cache
chown -R zabbix:zabbix /var/lib/zabbix

Вот и всё, с этого момента скрипт за юзера zabbix выполняется в терминале быстро и без ошибки, и элемент в заббиксе больше не выдаёт ошибку про таймаут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы