タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】 SNMPを起動し、ZABBIXで監視を行う (1)

安定感抜群のAS400ではありますが、自動的に監視して、異常時にはアラートを発砲できるようにしたいと考えました。情報が少なく、かなり苦戦しましたが、とりあえず監視ができるようになりましたので、その手順を記しておこうと思います。


(1)AS400 SNMP設定

SNMP設定

> CHGSNMPA SYSD('IBM I 7.1 SNMP AGENT') AUTOSTART(*YES) 
    TRPMGR(('192.168.1.251' '255.255.255.0' 'ZABBIX' *YES))   
 
SNMP 属性が正常に変更されました。 

②コミュニティ名の追加

public(出荷時に登録済み)
  • publicは、出荷時設定であるので、このまま生かすことにしました。
コミュニティー名 public
ASCIICOM *YES
INTNETADR *ANY
OBJACC *READ
LOGSET *NO
LOGGET *NO
  • 削除する場合はRMVCOMSNMPコマンドでできるようです。(ただし、試していません)
    • RMVCOMSNMP COM(‘public’)
ZABBIX(追加)
  • COMパラメータは、カンマは不要でした。
> ADDCOMSNMP COM(ZABBIX) INTNETADR(('192.168.1.251' '255.255.255.0'))

 コミュニティーが追加された。

(2)AS400 SNMP起動/確認/停止

SNMPクライアント起動

> STRTCPSVR SERVER(*SNMP)        

SNMP サーバーは開始中である。

②起動後の確認

WRKACTJOB SBS(QSYSWRK)
  • QSNMPSA、QTMSNMP、QTMSNMPRCVの3つのJOBが起動しました。
                               活動ジョブの処理  
           
OPT  サブシステム/ジョブ  ユーザー       タイプ  CPU %   機能            状況
     QSYSWRK        QSYS        SBS      .0                   DEQW
       :
       QSNMPSA      QTCP        BCH      .0  PGM-QNMSARTR     DEQW  <<<(起動) 
       :
       QTMSNMP      QTCP        BCH      .0  PGM-QTOSMAIN     DEQW  <<<(起動) 
       QTMSNMPRCV   QTCP        BCH      .0  PGM-QTOSRCVR     TIMW  <<<(起動) 
DSPMSG QSYSOPR
  • 新しいメッセージが追記されました。
                    応答が必要でないメッセージ 
SNMP coldStart トラップが生成された。   <<<<<<<(追記)
WRKTCPSTS (NETSTAT) - 3.IPV4 接続状況の処理
  • F14キーで、ポート名の表示が可能です。
  • 新しく、SNMPの標準の 161/UDP がOPENされたのを確認できました!
                              IPV4 接続状況の処理
                                                                                   
                        リモート   ローカル      アイドル   
 OPT  リモート・アドレス       ・ポート  ・ポート      時間    状態    
      *                    *     21  009:03:35   接続待機
      *                    *     23  000:11:03   接続待機
      *                    *     25  450:18:30   接続待機
      *                    *     80  000:19:28   接続待機
      *                    *    123  018:18:30  *UDP      
      *                    *    137  450:18:35   接続待機 
      *                    *    137  000:00:50  *UDP    
      *                    *    138  000:00:20  *UDP  
      *                    *    139  450:18:30   接続待機
      *                    *    161  000:04:38  *UDP     <<<<<(OPEN)
      *                    *    427  450:18:33  *UDP 
                                                                続く ...

SNMPクライアント停止

  • 起動に成功できたので、いったん、コマンドで停止を実施します。こちらも問題なく、停止できました。
> ENDTCPSVR SERVER(*SNMP)  

SNMP サーバーが終了した。
DSPMSG QSYSOPR
                    応答が必要でないメッセージ     
 ジョブ xxxxxx/QTCP/QSNMPSA がユーザー QTCP によって終了された。
 ジョブ xxxxxx/QTCP/QTMSNMPRCV がユーザー QTCP によって終了された。
  • 161ポート待ちが無くなりました。
  • JOB QSNMPSA, QTMSNMP, QTMSNMPRCV が無くなりました。

SNMPクライアント起動(再)

  • 停止後は、正式に起動開始です!
> STRTCPSVR SERVER(*SNMP)  

SNMP サーバーは開始中である。 

(3)SNMPマネージャーからの動作検証

  • AS400上で、SNMPが起動できたので、今後はZABBIXサーバやWindowsPCから、SNMP情報をゲットするための snmpwalkコマンドを試します。
  • 事前に、LinuxWindowsに「net-snmp」をインストールしてあります(ここでの説明は省略)。

Zabbixから操作

  • ZABBIXサーバにSSH接続しての検証結果です。
成功
  • コミュニティ名は、public と ZABBIXでそれぞれ成功しました!
$ snmpwalk -v 1 -c public 192.168.1.250

$ snmpwalk -v 1 -c ZABBIX 192.168.1.250

$ snmpwalk -v 1 -c ZABBIX -t 10 192.168.1.250
失敗
  • ただし、version2 とコミュニティ名=zabbix(小文字)では、失敗しました。
$ snmpwalk -v 2c -c public 192.168.1.250
Timeout: No Response from 192.168.1.250     (ver2 では応答なし)

$ snmpwalk -v 1 -c zabbix 192.168.1.250
Timeout: No Response from 192.168.1.250     (zabbixでは応答なし)

WindowsPCから操作

  • 今度は、WindowsPCからの検証結果です。
  • コミュニティ名は、public のみ成功! 当然ながら IPアドレスが不一致なので、ZABBIX では失敗です。
成功
> snmpwalk -v 1 -c public 192.168.1.250
失敗
> snmpwalk -v 1 -c ZABBIX 192.168.1.250
Created directory: C:/apps/net-snmp/snmp/persist/mib_indexes
Timeout: No Response from 192.168.1.250

OID

  • SNMPでは、MIB(ミブ)と呼ばれるフォーマットで、ツリー構造になっています。
  • MIBにある情報の1つ1つをオブジェクトと呼ばれ、どのオブジェクトもOID (オブジェクトID)で表現されているようです。

1.3.6.1.2.1.1 (SNMP MIB-2 System)

  • まずは、基本的なsystemサブツリーを取得してみました。
  • OS名やシステムが起動中のトータル時間などを確認できました!
> snmpwalk -v 1 -c public 192.168.1.250 1.3.6.1.2.1.1
SNMPv2-MIB::sysDescr.0 = STRING: IBM OS/400 V7R1M0
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.2.6.11
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1736729) 4:49:27.29
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: xxxxxxxxxxxxxx
:

1.3.6.1.2.1.25.2.3.1 (hrStorageEntry)

> snmpwalk -v 1 -c public 192.168.1.250 1.3.6.1.2.1.25.2.3.1
:
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 136323072  <<<<<<<<<<<<<<<<<<<
HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 397311
HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: 6215637
HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 1367371
HOST-RESOURCES-MIB::hrStorageSize.5 = INTEGER: 80609
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 80001828   <<<<<<<<<<<<<<<<<<<
HOST-RESOURCES-MIB::hrStorageUsed.2 = INTEGER: 338366
HOST-RESOURCES-MIB::hrStorageUsed.3 = INTEGER: 4352806
HOST-RESOURCES-MIB::hrStorageUsed.4 = INTEGER: 865096
HOST-RESOURCES-MIB::hrStorageUsed.5 = INTEGER: 72730

1.3.6.1.4.1.2.6.4.5.1.0 (IBMCPU-MIB (v1))

  • 最後にCPU使用率の取得です。
  • IBM独自のOIDで確認可能なようです。

AS/400 CPU = “1.3.6.1.4.1.2.6.4.5.1.0” (10000=100%)

> snmpwalk -v 1 -c public 192.168.1.250 1.3.6.1.4.1.2.6.4.5.1.0
SNMPv2-SMI::enterprises.2.6.4.5.1.0 = Gauge32: 60   <<<<<<<<< 0.60% 

これで、準備は整いました。

次回は、ZABBIX側での設定をまとめようと思います。