[[監視システム(NMS)]]
目次~
#contents
*概要 [#t91d364f]
ZabbixのUIからのスクリプト実行により、SNMPTrapの発報・検知試験を行うためのツール。~
**構造 [#x547d278]
Web UIからのスクリプトから特定のホスト宛のTrapを送するシェルスクリプトを実行し、Zabbixに検知させるための処理を行う。
**設定 [#n17068b2]
以下のコードを所定箇所に保管して設定を行う。~
送信するTrapの内容は別ファイル化することで差し替えを可能としている。~
*コード [#ge00d66a]
**Trap送信スクリプト [#f59b5896]
-書式
./sendtrap.sh [送信元IP] [ポート番号] [Trapファイル名]
-sendtrap.sh
#!/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
**トラップ内容のファイル [#meca7a3b]
-linkdown
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
-linkup
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
* Zabbixの設定 [#l4484754]
Web UIの[管理]→[スクリプト]にて以下の内容を登録する。~
**LinkDown設定 [#v2e931f9]
|名前|Trap送信/Linkup/Port1|
|タイプ|スクリプト|
|次で実行|Zabbixサーバー|
|コマンド|/opt/zbx-cmd/trap/sendtrap.sh {HOST.IP} 1 linkup.txt|
**LinkUp設定 [#s5c178f6]
|名前|Trap送信/Linkdown/Port1|
|タイプ|スクリプト|
|次で実行|Zabbixサーバー|
|コマンド|/opt/zbx-cmd/trap/sendtrap.sh {HOST.IP} 1 linkdown.txt|