zabbix监控SNMP Trap 类型

环境

  • 两台虚拟机,一台server(公网IP),一台proxy(内网IP)。
  • Docker环境, 使用 docker compose启动。
  • 内网里有一台华为网络设备

目的

通过内网下的proxy接收内网一台网络设备,改网络设备通过SNMP trap发送数据给proxy。proxy把数据发给zabbix server。

使用的方式是通过snmptrapd + bash 方式完成此功能。
官方文档

部署

  • zabbix server+agent+web套装 和之前文章环境类似
  • proxy+agnet+snmp
version: '3.5'
services:
  agent:
    container_name: magnet 
    image: zabbix/zabbix-agent
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    privileged: true
    pid: 'host'
    env_file:
      - ./menvs/.env_magent
    restart: 'unless-stopped'
    stop_grace_period: '5s'
    networks:
      - monitor
  proxy:
    container_name: mproxy
    image: zabbix/mproxy-sqlite3:alpine-6.0
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./snmptraps:/var/lib/zabbix/snmptraps:rw
    env_file:
      - ./envs/.env_mprx
    depends_on:
      - magent
    privileged: true    
    restart: 'unless-stopped'
    stop_grace_period: '30s'
    networks:
      - monitor

  zabbix-snmptraps:
    image: zabbix/zabbix-snmptraps:6.0-alpine-latest
    volumes:
      - /etc/localtime:/etc/localtime
      - ./snmptraps:/var/lib/zabbix/snmptraps:rw
    restart: always
    privileged: true
    ports:
      - "162:1162/udp"
    networks:
      - monitor
networks:
  monitor:

挂在文件、目录:

  1. docker-compose.yaml 同级创建目录snmptraps 赋予读写权限,为简单可以chmod -R 777 snmptraps
  2. 挂在env_file,此处需要配置正常,具体是.env_mprx与zabbix server的通信配置。
    .env_magent与proxy的通信配置。
# env_magent
ZBX_SERVER_HOST=proxy 
ZBX_PASSIVESERVERS='0.0.0.0/0'
ZBX_ACTIVE_ALLOW=0 #主动
ZBX_HOSTNAME=agnet001
# .env_mprx
ZBX_SERVER_HOST=xx.xx.xx.xx #zabbix server地址
ZBX_SERVER_PORT=10051
ZBX_HOSTNAME=Ed3oBNt2EP111 #zabbix添加proxy的name 
ZBX_CONFIGFREQUENCY=30
ZBX_ENABLE_SNMP_TRAPS=true #开启snmptrapers

配置好后,docker-compose up -d.

配置host&item

上面启动后,还需要网络设备配置snmp trape到指定的IP。 也就是当前跑服务设备的IP。

然后开始配置zabbix了。登陆zabbix web后,添加host。
zabbix监控SNMP Trap 类型_第1张图片
团体名可以直接写,也可以在宏里面去配置。
在proxy那里选择在zabbix 添加后的proxy设备。例子里就是 Ed3oBNt2EP111

item添加监控项:
zabbix监控SNMP Trap 类型_第2张图片

注意时间,我开始看错了时间,使用description里面的格式不行。那个是其他方式使用的格式。bash的时间格式是这样的 yyyyMMdd.hhmmss

这里面Key 是snmptrap.fallback 。他的意思trap该接口的任何nmptrap[]项未trap的所有数据。

配置好后就得带数据来了。

程序通过接收数据保存到snmptraps目录,形成一个log文件。zabbix server 读取此文件进行获取数据。

文件内容如下:
zabbix监控SNMP Trap 类型_第3张图片
其中在 ZBXTRAP 的右侧 有一个IP。 此IP和你在host上配置的SNMP interface 上面的IP应该是一样的。他读取log内容也是按照此IP来识别的。

因为log里面有数据,我们可以在host上看到zabbixserver展示的数据:
OnpzaYu

最后一条与上面的log文件最后一条是一样的内容。

证明这个获取数据是ok的。后面需要根据此log获取数据进行告警等动作。

今完结
后待续~

你可能感兴趣的:(Docker,zabbix,监控,zabbix)