SNMP(Simple Network Management Protocol)
Summary
TCP/IP ネットワーク上でネットワーク上の機器の情報を収集して、監視や制御を行うためのプロトコル
監視内容
- ネットワーク機器やサーバの稼働状況
- サービスの稼働状況
- システムリソース(システムパフォーマンス)
- ネットワークトラフィック
SNMP ではエージェント(管理対象の機器)とマネージャ(ネットワーク管理ステーション)間で次のようなメッセージをやり取りすることで機器の監視・制御
- get-request
- マネージャからエージェントへの参照要求
- get-response
- エージェントからマネージャへの参照応答
- set-request
- マネージャからエージェントへの設定要求
- trap
- エージェントからマネージャへのイベント通知
- get-request
MIB(情報管理ベース)
- 監視の定義体
- エージェントは MIB に規定されている情報を収集し、マネージャーに通知
install
# yum install net-snmp net-snmp-utils
SNMP Proxy
- 外部公開してないサーバへアクセスして情報を取得する時に利用できる
- 例 : 下記構成で、cacti からバックエンドサーバのリソースを取得したい
- cacti(192.168.0.10) => snmp-proxy(192.168.0.11) => backend-db(192.168.0.12)
- backend-db
net-snmp インストール
設定ファイル
# cat /etc/snmp/snmpd.conf com2sec notConfigUser default public group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 access notConfigGroup "" any noauth exact systemview none none syslocation Unknown (edit /etc/snmp/snmpd.conf) syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf) dontLogTCPWrappersConnects yes disk /
snmpd 起動
- snmp-proxy
net-snmp インストールして、proxy の設定を行う
# cat /etc/snmp/snmpd.conf com2sec notConfigUser default public group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 access notConfigGroup "" any noauth exact systemview none none syslocation Unknown (edit /etc/snmp/snmpd.conf) syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf) dontLogTCPWrappersConnects yes disk / # snmpd proxy com2sec -Cn backend-db notConfigUser default backend-public-db access notConfigGroup backend- any noauth prefix systemview none none proxy -Cn backend-db -v 2c -c public db .1.3
snmpd 起動
- /etc/hosts で db のホスト名でログイン出来るように設定する
- cacti から動作確認
snmp proxy 宛て
# snmpwalk -v 2c 192.168.0.11 -c public .1.3.6.1.2.1.1.1 SNMPv2-MIB::sysDescr.0 = STRING: Linux snmp-proxy 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64
backend-db 宛て
# snmpwalk -v 2c 192.168.0.11 -c backend-public-db .1.3.6.1.2.1.1.1 SNMPv2-MIB::sysDescr.0 = STRING: Linux db 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64
Cacti
SSH 経由で取得できるように設定を行う
多段 SSH 接続の利用
各サーバには cacti ユーザが存在し、公開鍵が設定してあることを前提
/etc/ssh/ssh_config
Host snmp-proxy User cacti IdentityFile /usr/share/cacti/.ssh/id_rsa HostName 192.168.0.11 Host db User cacti HostName 192.168.0.12 IdentityFile /usr/share/cacti/.ssh/id_rsa ProxyCommand nohup ssh -W %h:%p snmp-proxy
SSH接続
パス無しでログインできれば ok
# ssh cacti@snmp-proxy # ssh cacti@db