unboundとcacti

先日、unboundをインストールしたので、ついでにcactiでもデータ取得を行ってみました。
unboundのソースに付属しています。contribディレクトリ内にunbound_cacti.tar.gzファイルがあるのでこれを使います。
展開して、README.txtとscriptととなるunbound_cactiを見ながら設定します。

unboundの統計情報は、unbound-controlを使用して実施されます。
unbound-controlを利用するためunbound用の証明書を作成します。これは、unbound-control-setupコマンドで作成できます。以下4つの鍵および証明書が出力されます。

unbound_server.pem
unbound_server.key
unbound_control.pem
unbound_control.key

次にunbound.confを変更

server:   extended-statistics: yes
          statistics-cumulative: no
          statistics-interval: 0

remote-control:
  control-enable: yes
  control-interface: 127.0.0.1
  control-interface: ::1
  server-key-file: "/PATH/unbound_server.key"
  server-cert-file: "/PATH/unbound_server.pem"
  control-key-file: "/PATH/unbound_control.key"
  control-cert-file: "/PATH/unbound_control.pem"

snmpd.confに以下を追加。

extend  .1.3.6.1.3.1983.1.1 cache_hits /bin/cat /usr/local/etc/unbound/statistics/cache_hits
extend  .1.3.6.1.3.1983.1.2 memory_usage /bin/cat /usr/local/etc/unbound/statistics/memory_usage
extend  .1.3.6.1.3.1983.1.3 queues_by_type /bin/cat /usr/local/etc/unbound/statistics/queues_by_type
extend  .1.3.6.1.3.1983.1.4 answers_to_queries /bin/cat /usr/local/etc/unbound/statistics/answers_to_queries
extend  .1.3.6.1.3.1983.1.5 histogram /bin/cat /usr/local/etc/unbound/statistics/histogram
extend  .1.3.6.1.3.1983.1.6 queues_by_flags /bin/cat /usr/local/etc/unbound/statistics/queues_by_flags
extend  .1.3.6.1.3.1983.1.7 requestlist /bin/cat /usr/local/etc/unbound/statistics/requestlist

cronに下記を設定

*/5 * * * * /PATH/unbound_cacti

実際にunbound_cactiスクリプトを実行し、statisticsディレクトリにデータが書き込まれているか確認し、
最後にsnmpwalkで値が取得できるか確認します。

ここまできたら、後はcactiにテンプレートをimportします。テンプレートファイルは、
unbound-cacti/Host template (all in one)/ ディレクトリにあるcacti_host_template_unbound_dns.xmlになります。
cactiからConsole->Import Templatesを選択し、上記ファイルをimportします。テンプレート名は適当に設定。
あとは、deviceを作成し、host templateで先ほど名付けたテンプレート名”Unbound DNS”を選択してgraphを作成するだけになります。
数日間動作させて問題なく動作しているようです。

こんな感じでグラフ化されます。