監視システム(NMS)
目次
ZabbixのUIからのスクリプト実行により、SNMPTrapの発報・検知試験を行うためのツール。
Web UIからのスクリプトから特定のホスト宛のTrapを送するシェルスクリプトを実行し、Zabbixに検知させるための処理を行う。
以下のコードを所定箇所に保管して設定を行う。
送信するTrapの内容は別ファイル化することで差し替えを可能としている。
./sendtrap.sh [送信元IP] [ポート番号] [Trapファイル名]
#!/bin/sh # ------------------------ # SNMPTrap sender # ------------------------ # Version : 1.0 # date : 2022/07/31 export LANG=C export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH ## Config BASEDIR="/opt/zbx-cmd/trap" ZBXTRAP="/var/log/zabbix/zabbix_traps.log" ## Parameter DATE=`date +%H:%M:%S\ %Y-%m-%d` HOSTIP=$1 PORT=$2 TRAPFILE=$BASEDIR"/"$3 ## Check test -f $TRAPFILE || echo "[ERR] "$TRAPFILE" not found" test -z $3 && echo "[ERR] Parameter not found" test -z $2 && echo "[ERR] Parameter not found" test -z $1 && echo "[ERR] Parameter not found" ## Execite echo $HOSTIP echo $PORT cat $TRAPFILE | sed -e "s/HOSTIP/$HOSTIP/" -e "s/PORT/$PORT/" -e "s/DATE/$DATE/g" >> $ZBXTRAP # EOF
DATE ZBXTRAP HOSTIP PDU INFO: community localnet errorindex 0 messageid 0 version 1 requestid 2030993 notificationtype TRAP transactionid 2 receivedfrom UDP: [HOSTIP]:47322->[127.0.0.1]:162 errorstatus 0 VARBINDS: DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (4245094454) 491 days, 7:55:44.54 SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkDown RFC1213-MIB::ifIndex.PORT type=2 value=INTEGER: PORT RFC1213-MIB::ifAdminStatus.PORT type=2 value=INTEGER: 1 RFC1213-MIB::ifOperStatus.PORT type=2 value=INTEGER: 2
DATE ZBXTRAP HOSTIP PDU INFO: errorstatus 0 receivedfrom UDP: [HOSTIP]:47322->[127.0.0.1]:162 transactionid 1 messageid 0 community localnet errorindex 0 notificationtype TRAP requestid 2030992 version 1 VARBINDS: DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (4245093468) 491 days, 7:55:34.68 SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkUp RFC1213-MIB::ifIndex.PORT type=2 value=INTEGER: PORT RFC1213-MIB::ifAdminStatus.PORT type=2 value=INTEGER: 1 RFC1213-MIB::ifOperStatus.PORT type=2 value=INTEGER: 1
Web UIの[管理]→[スクリプト]にて以下の内容を登録する。
| 名前 | Trap送信/Linkup/Port1 |
| タイプ | スクリプト |
| 次で実行 | Zabbixサーバー |
| コマンド | /opt/zbx-cmd/trap/sendtrap.sh {HOST.IP} 1 linkup.txt |
| 名前 | Trap送信/Linkdown/Port1 |
| タイプ | スクリプト |
| 次で実行 | Zabbixサーバー |
| コマンド | /opt/zbx-cmd/trap/sendtrap.sh {HOST.IP} 1 linkdown.txt |