安定感抜群のAS400ではありますが、自動的に監視して、異常時にはアラートを発砲できるようにしたいと考えました。情報が少なく、かなり苦戦しましたが、とりあえず監視ができるようになりましたので、その手順を記しておこうと思います。
> 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コマンドでできるようです。(ただし、試していません)
ZABBIX(追加)
> ADDCOMSNMP COM(ZABBIX) INTNETADR(('192.168.1.251' '255.255.255.0'))
コミュニティーが追加された。
①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マネージャーからの動作検証
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側での設定をまとめようと思います。