安定感抜群の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 接続状況の処理
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コマンドを試します。
- 事前に、LinuxやWindowsに「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)
- 次は、HDDの使用率の調査です。
- こちらのサイトを参考にさせていただきました。
- 80001828 / 136323072 = 58.685% という結果で、WRKDSKSTSの表示と合致しました!
> 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))
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側での設定をまとめようと思います。