Virtualbox上のゲストOS(Oracle Enterprise Linux6.8)に、snmp機能を追加したいが、ゲストOSをインターネットにつなげてないので、OSのインストール用ISOイメージを使って追加した手順の覚書
パッケージ追加手順
ISOイメージマウント
- Virtualboxのゲストの設定から、光学デバイスにOSのISOファイルを設定
- 光学デバイスは機能の追加後空に戻す。(設定したままだと再起動時に起動メニューが出る)
- ゲストのConsoleにrootログイン
- ログインするとISOイメージ(DVD)が自動マウントされる
- マウントパスは「/media/OL6.8 x86_64 Disc 1 20160518」。空白があるのがちょいめんどい。
DVD用リポジトリ設定ファイル新規作成
# vi /etc/yum.repos.d/dvd.repo
とし下記を記載。同じフォルダにpublic-yum-ol6.repoがあるので参考にした
[dvd]
name=Oracle Linux 6 Update 8 installation media copy
baseurl="file:///media/OL6.8 x86_64 Disc 1 20160518"
gpgkey="file:///media/OL6.8 x86_64 Disc 1 20160518/RPM-GPG-KEY-oracle"
gpgcheck=1
enabled=0
- フォルダに空白があるので”で囲まないとエラーとなる
設定ファイルの確認
# yum --disablerepo=\* --enablerepo=dvd list
結果省略。パッケージが一覧がリストされ、net-snmpがあることを確認。
- デフォルトのInternet上のリポジトリを無効化し、作成したdvd.repoを有効化。
パッケージ追加
# yum --disablerepo=\* --enablerepo=dvd install net-snmp
読み込んだプラグイン:refresh-packagekit, security, ulninfo
インストール処理の設定をしています
:(略)
================================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
================================================================================
インストールしています:
net-snmp x86_64 1:5.5-57.0.1.el6 dvd 308 k
依存性関連でのインストールをします。:
lm_sensors-libs x86_64 3.1.1-17.el6 dvd 37 k
net-snmp-libs x86_64 1:5.5-57.0.1.el6 dvd 1.5 M
トランザクションの要約
================================================================================
インストール 3 パッケージ
総ダウンロード容量: 1.9 M
インストール済み容量: 6.3 M
これでいいですか? [y/N]y
:(略)
完了しました!
インストール確認と起動
# chkconfig --list snmpd
snmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig snmpd on
# chkconfig --list snmpd
snmpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service snmpd start
snmpd を起動中: [ OK ]
デフォルト設定の確認
/etc/snmp/snmpd.confの初期設定は下記の通り。#行は説明のため日本語
# セキュリティ定義
# セキュリティ名 アクセス可能IP範囲 コミュニティ名
com2sec notConfigUser default public
#notConfigUserはコミュニティ名publicでどこからでも(default)アクセス可
#コミュニティ名はユーザIDのようなもの
# グループ定義
# グループ名 モデル セキュリティ名(上で定義)
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
#グループnotCondigGroupは、コミュニティ名notConfigUserでアクセス時にv1とv2cに対応
#モデルはsnmpプロトコルのバージョンに対応。v1,v2c,usm(v3に相当)のいずれか。
# 取得可能な情報の範囲(ビュー)の定義
# ビュー名 設定タイプ MIB-OID マスク
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
#systemviewは.1.3.6.1.2.1.1以下と1.3.6.1.2.1.25.1.1以下にアクセス可能
#.1.3.6.1.2.1.1はsystem
#.1.3.6.1.2.1.25.1.1はHOST-RESOURCES-MIB::hrSystem
#設定タイプはincluded,excluded
# グループとビューを組み合わせた権限設定
# グループ名 Context モデル レベル Contextマッチの方法 読取ビュー 書込ビュー 通知
access notCongigGroup ”” any noauth exact systemview none none
#notCongigGroupではsystemviewの設定範囲を読取可能
#モデルanyはグループ名に設定した全モデル
#レベルはnoauth,auth,privのいずれか
snmpテスト
snmpコマンドパッケージ追加
確認用のsnmpwalkコマンドも追加
# yum --disablerepo=\* --enablerepo=dvd install net-snmp-utils
(結果略)
snmpwalkで許可された情報を取得
# snmpwalk -v 2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux (略) SMP Tue May 17 07:23:38 PDT 2016 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (147601) 0:24:36.01
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: (略)
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (3) 0:00:00.03
# snmpwalk -v 2c -c public localhost HOST-RESOURCES-MIB::hrSystem
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1030705) 2:51:47.05
HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (略)
- ここはあまり重要な情報がなかった
監視に必要な情報を追加
監視にはCPUやメモリ負荷等を知ることが必要。これらはUCD-SMTP-MIBに入っている。これらの読込を許可する
今回は変更が最小となるような設定とする。
MIBファイルは/usr/share/snmp/mibsにある。
# vi /etc/snmp/snmpd.conf
下記ビューを追加(.1.3.6.1.4.1.2021はUCD-SMTP-MIB全体)
view systemview included .1.3.6.1.4.1.2021
変更を反映するためサービス再起動
# service snmpd restart
追加した情報にアクセス可能か確認
# snmpwalk -v 2c -c public localhost UCD-SNMP-MIB::memory
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 4980732 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 4980732 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 4955328 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 2153392 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 7134124 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memShared.0 = INTEGER: 0 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 147124 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 1505768 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
[root@odax62s mibs]# snmpwalk -v 2c -c public localhost UCD-SNMP-MIB::systemStats
UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1
UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats
UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0 kB
UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 196 blocks/s
UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 14 blocks/s
UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 2373 interrupts/s
UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 5328 switches/s
UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 2
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 1
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 95
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 91552
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 51
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 18256
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 1173343
UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 7148
UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 0
UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 0
UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 3100450
UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 1710948
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 35527224
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 80863429
UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 534
UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 0
UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 0
[root@odax62s mibs]# snmpwalk -v 2c -c public localhost UCD-SNMP-MIB::laTable
UCD-SNMP-MIB::laIndex.1 = INTEGER: 1
UCD-SNMP-MIB::laIndex.2 = INTEGER: 2
UCD-SNMP-MIB::laIndex.3 = INTEGER: 3
UCD-SNMP-MIB::laNames.1 = STRING: Load-1
UCD-SNMP-MIB::laNames.2 = STRING: Load-5
UCD-SNMP-MIB::laNames.3 = STRING: Load-15
UCD-SNMP-MIB::laLoad.1 = STRING: 1.82
UCD-SNMP-MIB::laLoad.2 = STRING: 1.89
UCD-SNMP-MIB::laLoad.3 = STRING: 1.76
UCD-SNMP-MIB::laConfig.1 = STRING: 12.00
UCD-SNMP-MIB::laConfig.2 = STRING: 12.00
UCD-SNMP-MIB::laConfig.3 = STRING: 12.00
UCD-SNMP-MIB::laLoadInt.1 = INTEGER: 182
UCD-SNMP-MIB::laLoadInt.2 = INTEGER: 189
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 176
UCD-SNMP-MIB::laLoadFloat.1 = Opaque: Float: 1.820000
UCD-SNMP-MIB::laLoadFloat.2 = Opaque: Float: 1.890000
UCD-SNMP-MIB::laLoadFloat.3 = Opaque: Float: 1.760000
UCD-SNMP-MIB::laErrorFlag.1 = INTEGER: noError(0)
UCD-SNMP-MIB::laErrorFlag.2 = INTEGER: noError(0)
UCD-SNMP-MIB::laErrorFlag.3 = INTEGER: noError(0)
UCD-SNMP-MIB::laErrMessage.1 = STRING:
UCD-SNMP-MIB::laErrMessage.2 = STRING:
UCD-SNMP-MIB::laErrMessage.3 = STRING:
参考
RHELのDVD-ROMをyumのリポジトリとして登録
SNMPの基本的なこと
snmp
サーバ監視項目でよく使う SNMP の MIB オブジェクト ID まとめ
snmpとは
ucdavisサブツリー