zabbix / zabbix-docker

Official Zabbix Dockerfiles
https://www.zabbix.com
GNU Affero General Public License v3.0
2.35k stars 1.37k forks source link

Snmptrap docker image can't find host if "Connect to" is set to DNS in Zabbix #1100

Closed nerdalertdk closed 10 months ago

nerdalertdk commented 1 year ago
SUMMARY

Snmptrap docker image can't find host if "Connect to" is set to DNS in Zabbix

Skærmbillede 2023-09-29 kl  12 42 34

When set to IP, it works

OS / ENVIRONMENT / Used docker-compose files

Host: Debian 11 docker: Docker version 20.10.21 Zabbix: 6.2

Snmptrap log

2023-09-29 10:45:42 UDP: [XXX.XXX.XXX.XXX]:33902->[172.16.238.3]:1162 [UDP: [XXX.XXX.XXX.XXX]:33902->[172.16.238.3]:1162]:
DISMAN-EVENT-MIB::sysUpTimeInstance = 914421649 SNMPv2-MIB::snmpTrapOID.0 = OID: DEVICE DATA
CONFIGURATION
zabbix-snmptraps:
    container_name: zabbix-snmptraps
    hostname: zabbix-snmptraps
    image: zabbix/zabbix-snmptraps:ubuntu-6.2-latest
    restart: unless-stopped
    ports:
     - "162:1162/udp"
    volumes:
     - /data/docker/zabbix-srv/snmptraps:/var/lib/zabbix/snmptraps:rw
     - /data/docker/zabbix-srv/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
    networks:
      zbx_net_frontend:
       aliases:
        - zabbix-snmptraps
      zbx_net_backend:
    stop_grace_period: 5s
zabbix-server:
    container_name: zabbix-server
    hostname: zabbix-server
    image: zabbix/zabbix-server-mysql:ubuntu-6.2-latest
    restart: unless-stopped
    ports:
     - "10051:10051"
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /data/docker/zabbix-srv/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro
     - /data/docker/zabbix-srv/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro
     - /data/docker/zabbix-srv/var/lib/zabbix/export:/var/lib/zabbix/export:rw
     - /data/docker/zabbix-srv/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
     - /data/docker/zabbix-srv/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
     - /data/docker/zabbix-srv/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
     - /data/docker/zabbix-srv/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
     - /data/docker/zabbix-srv/snmptraps:/var/lib/zabbix/snmptraps:rw
    env_file:
     - /data/docker/zabbix-cfg/.env_db_mysql
     - /data/docker/zabbix-cfg/.env_srv
    depends_on:
     - zabbix-db
    networks:
     zbx_net_backend:
     zbx_net_frontend:

    stop_grace_period: 30s
    sysctls:
     - net.ipv4.ip_local_port_range=1024 65000
     - net.ipv4.conf.all.accept_redirects=0
     - net.ipv4.conf.all.secure_redirects=0
     - net.ipv4.conf.all.send_redirects=0

.env_srv

# Core
ZBX_ENABLE_SNMP_TRAPS=true

# Cache
ZBX_CACHESIZE=8G
ZBX_HISTORYCACHESIZE=2G
ZBX_HISTORYINDEXCACHESIZE=2G
ZBX_VALUECACHESIZE=4G
ZBX_TRENDCACHESIZE=1G

# Pollers and Other
ZBX_STARTJAVAPOLLERS=5
ZBX_STARTPOLLERS=100
ZBX_STARTPOLLERSUNREACHABLE=50
ZBX_STARTTRAPPERS=10
ZBX_STARTPINGERS=50
ZBX_STARTDISCOVERERS=10
ZBX_STARTPREPROCESSORS=15
ZBX_STARTHTTPPOLLERS=5
ZBX_STARTTIMERS=2
ZBX_STARTESCALATORS=2
ZBX_STARTALERTERS=5
ZBX_TIMEOUT=10
networks:
  zbx_net_frontend:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"
    ipam:
      driver: default
      config:
      - subnet: 172.16.238.0/24

  zbx_net_backend:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"
    internal: true
    ipam:
      driver: default
      config:
      - subnet: 172.16.239.0/24
dotneft commented 11 months ago

You need to modify snmptrap container and allow IP resolving. Remove "-n" option.

nerdalertdk commented 11 months ago

Nice thank you :)

any reason it’s off as default ? Performance?

dotneft commented 11 months ago

usually is not required. Also sometimes DNS in docker container is not properly configured. What is in your case?

nerdalertdk commented 11 months ago

We generally try to use DNS when we can, but after we moved from an old ass 4.2 old school style installation to docker. Traps stopped working. did not consider someone would turn off DNS resolving we are using your DockerFile's, since I maintain enough already 😅 But I'll just make one for the trap service

dotneft commented 11 months ago

Actually you can continue to use 4.2 version. There is no difference in output format. Also if you want DNS instead of IP in new versions, please tell us what current traps you receive. Feel free to hide real IP with placeholders, but we need a few ones from snmptrap.log.

dotneft commented 10 months ago

Hello!

We have modified snmptraps image (currently only for 6.4 and trunk branches). Now you can use DNS instead of IP address. Please refer to SNMP traps updated documentation.

dotneft commented 10 months ago

Fixed!