##予備知識
###ネットワーク管理(Network Management)
ネットワークシステムの状態を監視し、障害の防止や早期発見を行うこと。
稼働状況を一カ所に集めて、集中管理したら便利でしょう。
今回はネットワーク管理の中でも性能管理の話です。
###SNMP(Simple Network Management Protocol)
IPネットワーク上で、ネットワーク管理システムを構築するためのプロトコル。
SNMPマネージャ:監視する側(snmpwalkなど)
SNMPエージェント:監視される側(snmpdなど)
SNMPコミュニティ:SNMPマネージャとSNMPエージェントとの間で、同じコミュニティ名にすることで情報を共有することができる。
Simple Network Management Protocol - Wikipedia
###NET-SNMP
さまざまなUNIXプラットフォームで稼動するSNMP パッケージ。
LinuxでもMacOSでも使える。
snmpdやsnmpwalkはNET-SNMPのツールである。
Net-SNMP - Wikipedia, the free encyclopedia
###launchd
良く知らない。というか、初めて知った。
launchd - Wikipedia
##やりたいこと
- リモートで状態監視って便利だよね
- LinuxサーバーからMacの状態監視をしたい
- バグやシステムの不具合に悩まされたくないので、監視には枯れた実績のあるシステムがいい
- 監視には多くの稼働実績のあるSNMPを使う
前提条件
- Linuxサーバー側の設定は割愛
- LinuxサーバーがSNMPマネージャ、MacがSNMPエージェントという構成になる
- 監視のネットワーク環境は小規模なLANを想定(セキュリティ的に少し緩い)
- SNMPのバージョンはSNMPv2c を使用する
- SNMPで行うのは監視のみ、イベント通知の設定は行わない
- SNMPのコミュニティ名は、慣例に従い「public」としているが、コミュニティ名は本来、秘匿すべき情報である
- Macでsnmpd(SNMPエージェント)を動かすにはlaunchdを使う
- MacOSのバージョンは OS X El Capitan 10.11.4
設定
※NET-SNMPはすでインストールされていると仮定する。
起動ファイルを作成
sudo vi /Library/LaunchDaemons/org.net-snmp.snmpd.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>org.net-snmp.snmpd</string>
<key>OnDemand</key>
<false/>
<key>Program</key>
<string>/usr/sbin/snmpd</string>
<key>ProgramArguments</key>
<array>
<string>snmpd</string>
<string>-f</string>
</array>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
snmpd の設定
sudo vi /etc/snmp/snmpd.conf
LANからのアクセスを許可する
(中略)
com2sec local 192.168.1.0/24 public
(以下省略)
snmpdの起動と確認
snmpdの起動
sudo launchctl load -w /Library/LaunchDaemons/org.net-snmp.snmpd.plist
snmpdの停止
sudo launchctl unload -w /Library/LaunchDaemons/org.net-snmp.snmpd.plist
設定を変更したときは、launchctrl unload を実行してから再度 launchctrl load する必要がある。(これを知らなかったのでいろいろ悩んだ)
snmpdの起動を確認
ps aux |grep snmp
SNMPの接続テスト
ローカルからSNMPの接続を確認(Mac上で実行する)
snmpwalk -v 2c -c public localhost
外部からSNMPの接続を確認(Linuxサーバーからネットワーク越しに実行する)
snmpwalk -v 2c -c public MacのIPアドレス
SNMPエージェントの設定はここまで。
あとは外部のSNMPマネージャから呼び出して使う。
##おまけ
よし、次はSNMPマネージャの設定だ!と意気込んでいたら、
↓ここに、やろうとしていたことが全部書いてありましたとさ。
じゃんじゃん。