見出し画像

CPU使用率でTRAP送信するプログラムのために久しぶりにMIBの設計をした

今朝は5時半から開発開始です。久しぶりに早く起きられました。
CPU使用率の上昇でSNMPのTRAPを送信するプログラムの続きです。送信するTRAPを定義する必要があるので久しぶりにMIBの設定をしました。
定義したMIBをTWSNMP FCに読み込ませてみると、

のようにMIBツリーに表示されました。嬉しい。
プログラムのほうも、そこそこ動くところまでできました。TRAPを送ってみると

ちゃんとTWSNNMP FCで受信できました。
SNMPv3などの対応をして、もう少しテストすれば完成です。

明日に続く

ちなみに定義したMIBは、こんな感じです。
(accessible-for-notifyを思い出しました)

TWHRTRAP-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,enterprises
           FROM SNMPv2-SMI
       DisplayString FROM SNMPv2-TC;

twise                OBJECT IDENTIFIER ::= { enterprises 17861 }
twProducts           OBJECT IDENTIFIER ::= { twise 1 }

twHr2Trap MODULE-IDENTITY
       LAST-UPDATED "2301200000Z"
       ORGANIZATION "Twise Labo Inc."
       CONTACT-INFO
                  "Masayuki Yamai

               Postal: Twise Labo  Inc.
                       Saitama Japan

               E-mail: twsnmp@gmail.com"
  
       DESCRIPTION       "A MIB module for twhr2trap"

      ::= { twProducts 10 }

twHr2TrapTraps            OBJECT IDENTIFIER ::= { twHr2Trap 0 }
twHr2TrapObjects          OBJECT IDENTIFIER ::= { twHr2Trap 1 }

-- Trap data

twHr2TrapHrName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION "Host resource name"
    ::= { twHr2TrapObjects 1 }


twHr2TrapThresold OBJECT-TYPE
    SYNTAX     INTEGER
    UNITS      "%"
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION "TRAP thresold"
    ::= { twHr2TrapObjects 2 }

twHr2TrapCurrentValue OBJECT-TYPE
    SYNTAX     INTEGER
    UNITS      "%"
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION "Current value"
    ::= { twHr2TrapObjects 3 }


-- twHr2Trap  Traps

twHr2TrapCPUThOverTrap  NOTIFICATION-TYPE
    OBJECTS { twHr2TrapHrName,twHr2TrapThresold, twHr2TrapCurrentValue }  
    STATUS  current
    DESCRIPTION "Trap of CPU Usage thresold over."
    ::= { twHr2TrapTraps 1 }

twHr2TrapMemThOverTrap  NOTIFICATION-TYPE
    OBJECTS { twHr2TrapHrName,twHr2TrapThresold, twHr2TrapCurrentValue }  
    STATUS  current
    DESCRIPTION "Trap of load thresold over."
    ::= { twHr2TrapTraps 2 }

twHr2TrapLoadThOverTrap  NOTIFICATION-TYPE
    OBJECTS { twHr2TrapHrName,twHr2TrapThresold, twHr2TrapCurrentValue }  
    STATUS  current
    DESCRIPTION "Trap of load thresold over."
    ::= { twHr2TrapTraps 3 }

twHr2TrapDiskThOverTrap  NOTIFICATION-TYPE
    OBJECTS { twHr2TrapHrName,twHr2TrapThresold, twHr2TrapCurrentValue }  
    STATUS  current
    DESCRIPTION "Trap of load thresold over."
    ::= { twHr2TrapTraps 4 }

twHr2TrapBackToNormal  NOTIFICATION-TYPE
    OBJECTS { twHr2TrapHrName,twHr2TrapThresold, twHr2TrapCurrentValue }  
    STATUS  current
    DESCRIPTION "Trap of back to normal."
    ::= { twHr2TrapTraps 5 }

END

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。