Ad Widget

Collapse

Zabbix Docker и Get value from agent failed: read timeout

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

    #1

    Zabbix Docker и Get value from agent failed: read timeout

    Добрый день!
    Имеется не тривиальная проблема:
    1. Развернут Zabbix с помощью Docker. Имеется такой Docker-compose файл -
    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:
    - 192.168.#.##
    - 192.168.#.##
    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
    depends_on:
    - mysql-server
    user: root
    # command: >
    # sh -c "/bin/sh /start.sh"
    
    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:
    - 192.168.#.#
    - 192.168.#.#
    dns_search:
    - office.alpina
    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-agent:alpine-latest
    networks:
    - zbx_net
    ports:
    - 10050:10050
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
    environment:
    - ZBX_SERVER_HOST=192.168.#.#,127.0.0.1
    - ZBX_SERVERACTIVE=192.168.#.#,127.0.0.1
    - ZBX_HOSTNAME=Zabbix server
    - ZBX_TIMEOUT=30
    depends_on:
    - zabbix-web-nginx-mysql
    - zabbix-server-mysql
    networks:
    zbx_net:
    driver: bridge
    2. Имеется Элемент данных, который забирает числовое значение из PowerShell скрипта. Timeout в Zabbix Agent и Zabbix Server = 30.
    3. Если выполнять данный запрос с помощью -
    Code:
    zabbix_get -s 192.168.#.## -p 10050 -k Queue
    с контейнеров Docker (zabbix-server-mysql-1) то значение получаю.
    4. Данная ошибка появляется примерно через 5-6 секунд, другими словами таймаут даже не успевает пройти.
    5. Docker compose logs -
    zabbix-server-mysql-1 | 304:20250115:094024.897 resuming Zabbix agent checks on host "EXCH-SRV-02": connection restored
    zabbix-server-mysql-1 | 304:20250115:094058.900 Zabbix agent item "Queue" on host "EXCH-SRV-02" failed: first network error, wait for 15 seconds
    На сколько я понимаю Элементы данных в Web Оснастки выполняет тот же самый zabbix_get. Если проверять через Консоль браузера, то я получаю 200 КОД. Тоесть zabbix-web-nginx-mysql-1 получает доступ к zabbix-server-mysql-1. (P.S Все остальные шаблоны, элементы данных отрабатывают в штатном режиме, проблема остается только с данным Элементом данных! При этом если выполнять данный Элемент данных с сервера, который развернут вне контейнера то значение получаю!)
    Last edited by IkarusKam; 15-01-2025, 12:17.
  • IkarusKam
    Member
    • Dec 2023
    • 40

    #2
    Проблема заключается в ожидании Timeout от любого Элемента данных, который выполняется сам по себе более 10 секунд.

    Делал скрипт, который записывает данные в текстовый документ и из данного текстового документа забирал данные, но это жуткий кастыль.

    Есть варианты решения данной проблемы?

    Comment

    Working...