Ad Widget

Collapse

Элемент данных - Timeout occurred while gathering data.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • IkarusKam
    Member
    • Dec 2023
    • 40

    #1

    Элемент данных - Timeout occurred while gathering data.

    Добрый день! Ранее составлял аналогичную тему, но решил более развернуто подойти к данному вопросу.

    Имеется Zabbix развернутый с помощью docker-compose.yml
    Пример конфигурации которую на данный момент использую -
    HTML Code:
    version: '3.8'
    services:
     mysql-server:
      image: mysql:8.0
      networks:
       - zbx_net
      command:
       - mysqld
       - --character-set-server=utf8
       - --collation-server=utf8_bin
       - --default-authentication-plugin=mysql_native_password
      environment:
       - MYSQL_USER=zabbix
       - MYSQL_DATABASE=zabbixdb
       - MYSQL_PASSWORD=#######
       - MYSQL_ROOT_PASSWORD=#########
       - ZBX_JAVAGATEWAY=zabbix-java-gateway
      volumes:
       - /zabbix-mysql:/var/lib/mysql:rw
    
     zabbix-server-mysql:
      image: zabbix/zabbix-server-mysql:alpine-latest
      sysctls:
       - net.ipv4.tcp_keepalive_time=60
       - net.ipv4.tcp_keepalive_intvl=75
       - net.ipv4.tcp_keepalive_probes=9
      dns:
       - ######
       - ######
      dns_search:
       - ######
      dns_opt:
       - ndots:1
      networks:
       - zbx_net
      ports:
       - 10051:10051
      volumes:
       - /etc/odbcinst.ini:/etc/odbcinst.ini:rw
       - ./odbc.ini:/etc/odbc.ini:rw
       - /etc/localtime:/etc/localtime:ro
       - /etc/timezone:/etc/timezone:ro
       - /zabbix-data/alertscripts:/usr/lib/zabbix/alertscripts:ro
       - /zabbix-data/externalscripts:/usr/lib/zabbix/externalscripts:ro
       - /zabbix-data/export:/var/lib/zabbix/export:rw
       - /zabbix-data/modules:/var/lib/zabbix/modules:ro
       - /zabbix-data/enc:/var/lib/zabbix/enc:ro
       - /zabbix-data/ssh_keys:/var/lib/zabbix/ssh_keys:ro
       - /zabbix-data/mibs:/var/lib/zabbix/mibs:ro
       - /zabbix-data/snmptraps:/var/lib/zabbix/snmptraps:rw
       - ./install_odbc.sh:/etc/install_odbc.sh:rw
      environment:
       - DB_SERVER_HOST=mysql-server
       - MYSQL_DATABASE=zabbixdb
       - MYSQL_USER=zabbix
       - MYSQL_PASSWORD=########
       - MYSQL_ROOT_PASSWORD=########
       - ZBX_JAVAGATEWAY=zabbix-java-gateway
       - ZBX_TIMEOUT=30
       - ZBX_CACHESIZE=2G
       - ZBX_STARTTRAPPERS=30
       - ZBX_STARTCONNECTORS=100
       - ZBX_TRAPPERTIMEOUT=300
       - ZBX_STARTAGENTPOLLERS=5
       - ZBX_STARTPOLLERSUNREACHABLE=5
       - ZBX_VALUECACHESIZE=64M
       - ZBX_STARTPREPROCESSORS=32
       - ZBX_STARTDBSYNCERS=8
       - ZBX_UNREACHABLEPERIOD=60
       - ZBX_UNREACHABLEDELAY=30
      depends_on:
       - mysql-server
      user: root
    
     zabbix-web-nginx-mysql:
      image: zabbix/zabbix-web-nginx-mysql:alpine-latest
      sysctls:
       - net.ipv4.tcp_keepalive_time=60
       - net.ipv4.tcp_keepalive_intvl=75
       - net.ipv4.tcp_keepalive_probes=9
      dns:
       - #######
       - #######
      dns_search:
       - ######
      dns_opt:
       - ndots:1
      networks:
       - zbx_net
      ports:
       - 80:8080
       - 443:8443
      volumes:
       - /etc/localtime:/etc/localtime:ro
       - /etc/timezone:/etc/timezone:ro
       - /zabbix-nginx/nginx:/etc/ssl/nginx:ro
       - /zabbix-nginx/modules/:/usr/share/zabbix/modules/:ro
      environment:
       - ZBX_SERVER_HOST=zabbix-server-mysql
       - DB_SERVER_HOST=mysql-server
       - MYSQL_DATABASE=zabbixdb
       - MYSQL_USER=zabbix
       - MYSQL_PASSWORD=#######
       - MYSQL_ROOT_PASSWORD=########
       - ZBX_TIMEOUT=30
       - ZBX_STARTTRAPPERS=30
       - ZBX_CACHESIZE=2G
      depends_on:
       - mysql-server
       - zabbix-server-mysql
      user: root
    
     zabbix-java-gateway:
      image: zabbix/zabbix-java-gateway:alpine-latest
      networks:
       - zbx_net
      ports:
       - 10052:10052
    
     zabbix-agent:
      image: zabbix/zabbix-agent2:alpine-latest
      dns_opt:
       - ndots:1
      networks:
       - zbx_net
      ports:
       - 10050:10050
      volumes:
       - /etc/localtime:/etc/localtime:ro
       - /etc/timezone:/etc/timezone:ro
      environment:
       - ZBX_SERVER_HOST=zabbix-server-mysql
       - ZBX_SERVERACTIVE=zabbix-server-mysql
       - ZBX_HOSTNAME=Zabbix server
       - ZBX_TIMEOUT=30
      depends_on:
       - zabbix-web-nginx-mysql
       - zabbix-server-mysql
      user: root
    
    networks:
     zbx_net:
       name: zbx_net
       driver: bridge
       external: true
    На данный момент ошибки - on host "ENNI" failed: first network error, wait for 15 seconds. (Так может быть с небольшим кол-во элементами данных.)
    Для себя понял что если поставить Zabbix Agent Active, то данный в Элементе данных будут отображаться (но не всегда).
    Если использовать Zabbix развёрнутый обычно, то данный элемент данных работает (Ну и другие, которые не работаю в контейнере).

    Предположения запись между веб и БД не работает стабильно. Какие есть предложение, чтобы исправить данную проблему?
  • michel789
    Junior Member
    • Apr 2025
    • 3

    #2
    Привет! Проблема, которую ты описываешь — "first network error, wait for 15 seconds" — довольно распространённая при работе Zabbix в Docker-среде. Особенно если используется zabbix-agent2 и активные проверки, и если сеть между контейнерами или до хоста работает нестабильно. Ниже — полный список возможных причин и способов решения.

    Возможные причины
    1. Сеть Docker между контейнерами
    У тебя используется внешняя bridge-сеть (external: true), и возможно она настроена нестабильно:

    Пакеты могут теряться или дропаться.

    DNS-имена не резолвятся корректно.

    ndots:1 в dns_opt иногда вызывает проблемы с разрешением коротких имён.

    Что можно сделать:

    Убедись, что zbx_net действительно существует и не конфликтует с другими bridge-сетями.

    Попробуй временно заменить zbx_net на обычную внутреннюю сеть в рамках docker-compose и посмотреть, будет ли стабильней.


    networks:
    zbx_net:
    driver: bridge
    2. Zabbix Agent работает как активный, но неправильно сконфигурирован
    Когда используешь активные чеки (active) — агент сам инициирует соединение с сервером. Важно, чтобы:

    ZBX_SERVERACTIVE был корректным (имя сервиса или IP).

    ZBX_HOSTNAME точно соответствовал имени хоста в Zabbix-интерфейсе.

    Агент видит сервер (а не только сервер его).

    Проверь, что внутри контейнера zabbix-agent:


    ping zabbix-server-mysql
    nslookup zabbix-server-mysql
    Если не пингуется или не резолвится — вот и причина.

    3. Проблемы с производительностью или конфигурацией MySQL
    Если MySQL не успевает обрабатывать запросы (особенно при больших объёмах данных или медленном диске), сервер может выдавать network-like ошибки.

    Проверь:

    Логи mysql-server: нет ли InnoDB ошибок, таймаутов.

    Попробуй увеличить буферы и connection timeout'ы.

    Убедись, что volume /zabbix-mysql на быстром диске (SSD), а не на NFS или медленном storage.

    4. Docker-ограничения по системным ресурсам
    Zabbix может работать нестабильно, если Docker контейнеры не получают достаточное количество CPU, RAM или file descriptors.

    Проверь:

    Логи zabbix-server-mysql — нет ли ошибок Timeout while connecting to DB, cannot send data, Cannot allocate memory.

    Задай явные лимиты в compose:

    deploy:
    resources:
    limits:
    cpus: '2.0'
    memory: 4G
    ✅ Что попробовать в первую очередь:
    Проверь hostname и active check:

    Убедись, что ZBX_HOSTNAME = точно такой же, как указан в интерфейсе Zabbix в "Configuration → Hosts".

    Убедись, что ZBX_SERVERACTIVE=zabbix-server-mysql.

    Отключи external: true для сети и проверь с обычной bridge-сетью (только для отладки):

    networks:
    zbx_net:
    driver: bridge
    Добавь healthcheck'и, чтобы убедиться, что контейнеры стартуют корректно и не рестартятся в фоне:

    healthcheck:
    test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
    interval: 30s
    timeout: 10s
    retries: 5
    Включи debug-логи на агенте, чтобы понять, что он делает:

    В zabbix-agent добавь переменную: Costco business center locations


    - ZBX_DEBUGLEVEL=4
    Посмотри логи: docker logs <zabbix-agent-container>

    Comment

    Working...