snmpd

Ads

SNMP とは

SNMP とはネットワークトラフィックやディスク容量やCPU負荷等の各種情報を管理するためのプロトコルです。 よく MRTG でグラフを作ったりするのに使います。

snmpd.conf を変更する

  • デフォルトの snmpd.conf ではコミュニティ名として大抵 public 等が指定されているが、snmpd を動かすならこれは必ず変更すべき。
    • snmp においてコミュニティ名はパスワードのような役目をする為である。

daemontools で起動する

/etc/snmp/snmpd.conf を変更して /etc/init.d/snmpd start で起動しても良いが、 ここでは daemontools で起動するようにする。

snmpd 用ユーザを作る

snmpd は snmpd プロセス用ユーザ、snmpd は multilog によるログ取り用ユーザ

useradd -s /dev/null -d /dev/null snmpd
useradd -s /dev/null -d /dev/null snmpdlog

サービスディレクトリ作成

mkdir /var/service/snmpd
mkdir /var/service/snmpd/log
chown snmplog.snmplog /var/service/snmpd/log

run スクリプト作成

  • /var/service/snmpd/run
    #!/bin/sh
    uid=`id -u snmpd`
    gid=`id -g snmpd`
    exec \
    env - \
    /usr/sbin/snmpd -fL -u $uid -g $gid -c snmpd.conf 127.0.0.1 \
    2>&1
    • snmpd.conf は /service/snmpd/snmpd.conf に置いておくことにした。
    • 今回は外部からアクセスできる必要は無いので、LISTEN する IP を 127.0.0.1 に指定する。
    • daemontools で使う為に -f オプションで fork しないようにして、-L オプションでログを標準出力に出すようにしている。
  • /var/service/snmpd/log/run
    #!/bin/sh
    exec setuidgid snmpdlog multilog t ./main

サービスを有効にする

ln -s /var/service/snmpd/ /service

snmpd.conf を指定して起動したらセグメンテーションフォルト

  • 以下のように snmpd.conf を指定して起動しようとしたときに、引数無しで起動した場合に使われる snmpd.conf が存在すると、セグメンテーションフォルトが発生して起動出来ない現象が発生する。
    snmpd -c snmpd.conf
  • これは既存の snmpd.conf を削除、または空ファイル *1 にしておくと回避できた。
    mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
    touch /etc/snmp/snmpd.conf

*1 削除ではなく空ファイルを置いておくのは rpm 等で snmpd をアップデートしたときに新しく snmpd.conf が作成されないようにする為。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-12-20 (水) 14:02:30 (4373d)