AsteriskをSNMPで管理

少し前進しました。
やはりコンパイルだけではできませんでした。

まず、snmpdを動作させる必要があります。
そして、Asteriskはsnmpdへの通信をAgentXを使用して行います。

snmpdの設定

/etc/snmp/snmpd.conf(一般的なディレクトリ)でsnmpdの設定をします。
そして、snmpd.confに下記の内容を追記します。

master agentx
agentXSocket /var/agentx/master
agentXPerms 0660 0550 nobody asterisk

※情報元 http://voxilla.com/2009/02/03/configuring-asterisk-snmp-support-1131 より

ここの設定内容については、他のサイトなどで調べてください。
設定内容については、今のところ理解してませんw > だめじゃん俺


次にsnmpdがAgentX使用できるように、また利用するマネージャなどから通信できるように、snmpdのスクリプトなどを見直してください。
ubuntu-serverなど変更が必要な場合があります。
そして、snmpdを起動しておいてください。

Asteriskの設定

次にAsteriskですが、基本的に設定は1箇所です。
/etc/asterisk/res_snmp.confを変更します。
2か所コメントアウトされている行がありますので、#を取り除き以下のよう設定が有効になるようにしてください。

[general]
subagent = yes
enabled = yes

そして、通常通り起動したらAsteriskがAgentxを使用して、snmpdに接続します。
AsteriskCLIで起動した場合は、AgentXが接続したかしていないかのメッセージが表示されます。

ブラウザなど

MIBブラウザ用の拡張MIBファイルがソースについてきています。
ソースディレクトリのdoc/中の

です。
このMIBファイルをsnmpwalkなどのMIBブラウザに読み込ませることで、OIDでは無くオブジェクト名称で見ることができるようになります。

以下はWindows端末にインストールしたTWSNMPにMIBファイルを読み込ませ実行したときのサンプルです。

IPアドレスやコミュニティ名はVM上のマシンの仮のものなので推測しても意味無いよ!)

snmpでChannelの状態などが見れるようになりました。

とりあえず今日はここまで。

追伸:

Asterisk関連のOIDは

Digiumが .1.3.6.1.4.1.22736
Asteriskが .1.3.6.1.4.1.22736.1

になります。